Skip to content

Latest commit

 

History

History
29 lines (18 loc) · 2.84 KB

technical-task.md

File metadata and controls

29 lines (18 loc) · 2.84 KB

ВКР МАИ Бакалавриат

Название

Создание механизма управления архитектурными шаблонами для моделей в Structurizr DSL

Контекст

Большинство современных ИТ-компаний практикуют "продуктовую разработку" - подход при котором программное обеспечение создается автономными командами созданными вокруг конкретной функции бизнеса. Таких команд может быть достаточно много (например, в Билайн больше 200, в МТС - больше 400). Примером таких приложений может быть "Личный кабинет клиента", "Система управления маркетинговыми программами", "Система работы с дебиторами" ....

Для упрощения разработки продуктов компании вырабатывает типовые шаблоны и практики создания таких продуктов, которые учитывают типовые интеграции (например с системами аутентификации/авторизации, платформами мониторинга ....), типовые стратегии размещения продуктов в ЦОД компании, типовые способы организации сервисов приложений и т.д. Это позволяет продуктовым командам избежать ошибок, связанным с незнанием ландшафта/правил компании и ускорить проектирование.

Постановка задачи

  1. Разработать простой декларативный язык описания архитектурных шаблонов
  2. Разработать интерпретатор/транслятор который будет анализировать модель архитектуры в Structurizr DSL, и встраивать шаблоны в модель
  3. Решать обратную задачу - находя шаблоны в программе на Structurizr DSL

Ограничение

Программа должна быть написана на языке Java, для того что бы ее можно было интегрировать в Language server плагина к Visual Studio Code.

Примеры шаблонов

  1. Трехзвенная архитектура
  2. Микросервисная архитектура
  3. Паттерн Revers Proxy
  4. Паттерн Load Balancer
  5. Паттерн Transactional Outbox