Skip to content

Репозиторий с описанием стандартов разработки кафедры

Notifications You must be signed in to change notification settings

iu5git/Standards

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Стандарты разработки

Репозиторий с описанием стандартов разработки и обучения кафедры ИУ5

Требования и стандарты для разработки систем кафедры v0.2

Общие положения

  1. Разработка ведется в закрытом контуре Университета. Для доступа к ресурсам необходимо использование OpenVpn. Инструкция

  2. Код проекта хранится в репозитории bmstu.codes(в открытом доступе) в категории кафедральных сервисов

  3. Вся документация по проекту должна вестись во внутренней Вики (за vpn, доступ по учетке Университета). К Вики старницам прикручен движок draw.io, так что диагарммы можно рисовать прямо там. Регистрация и вход в Вики по oauth: image

  4. Там же рамположены трекеры проектов

  5. Для получения доступов к коду и сервисам: 7.1. Обратитесь к администраторам

5.1.1. Администратор даст вам права на репозитарий

5.1.2. Создаст проект в Вики

5.1.3. Даст вам роль на проекте

5.2. После получения доступа к Вики, вы можете заводить следующие задачи в созданном проекте:

5.2.1. Создание базы данных для проекта - лучше не держать отдельный сервер баз данных для каждого проекта, а хостить несколько проектов на одном

5.2.2. Разворачивание проекта в средах - завести задачку на админимстратора.

5.2.2.1. Разворачивание происходит последовательно на тестовом и на продакшн серверах

5.2.2.2. Если в процессе разворачивания возникнут ошибки, связанные с кодом, администратор вернет вам задачу с комментариями что надо поправить.

Требования к проектированию систем

  1. Макет интерфейса в Figma для компонентов MUI. Инструкция по Figma. Шаблон с компонентами ИУ5/ГУИМЦ
  2. Даталогическая ER диаграмма для базы данных PostgreSQL
  3. Описание методов и полей веб-сервисов в процессе проектирования системы. Совместное обсуждение бекендом и фронтендом форм по макету Figma и составление списка методов
  4. Минимизация нагрузки на сервер. Сервер только для хранения данных, вычисления нужно переносить на клиент.
  5. По причине минимальной нагрузки на сервер требуется использовать ONNX runtime для моделей нейронных сетей. И деплой моделей на клиенте
  6. При проектировании необходимо соблюдать правило: 1 репозиторий - 1 контейнер - 1 сервис
  7. Документирование проекта диаграммами UML. В первую очередь развертывание
  8. В документации к проекту требования по нагрузке и количеству пользователей

Требования к процессу разработки

  1. Использование SSO и Redis для авторизации
  2. Unit тесты для ключевого функционала приложения, особенно для алгоритмов расчетов
  3. Документирование веб-сервисов после реализации в swagger.
  4. Для развертывания обязательно наличие проекта в gitlab bmstu.codes
  5. Для всех репозиториев должны быть указаны требуемые пакеты (см подробное описание к стеку)
  6. Для развертывания новых сервисов в инфрастуктуре кафедры обращаться к Каневу Антону

Требования к стеку технологий

Фронтенд. Подробное описание

  1. React
  2. Менеджер состояний Redux
  3. Визуальные компоненты MUI
  4. Nginx

Бекенд, веб-сервисы

  1. Первый вариант. Django Rest Framework. Подробное описание
  • DRF используется в сервисах с ML
  1. Второй вариант. Golang. Подробное описание
  • Golang используется в нагруженных сервисах

Хранилище. Подробное описание

  • Реляционная СУБД PostgreSQL
  • Резидентная БД Redis для сессий, кеширования данных
  • Объектное хранилище S3 Ceph
  • Очередь Apache Kafka

Авторизация

Использование SSO Электронного Университета, пример Для бекенда Django есть встраиваемая библиотека

Инфраструктура и развертывание. Подробное описание

  1. ОС Ubuntu 20.04
  2. Мониторинг Prometheus + Grafana
  3. Пайплайны развертывания CI в GitLab bmstu.codes
  4. Контейнеры docker compose в настоящее время, Kubernetes в 2023
  5. Ansible
  6. Nginx
  7. Для деплоя необходимо соблюдать правило: 1 репозиторий - 1 контейнер - 1 сервис

Стандарты ПО для использования в учебном процессе

Требования к Linux студентов и компьютеров университета

  1. Ubuntu 20.04 + docker
  2. Python 3.9
  3. IDE PyCharm, WebStorm, Visual Studio Code (приоритет)
  4. Anaconda
  5. RStudio
  6. СУБД PostgreSQL

About

Репозиторий с описанием стандартов разработки кафедры

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published