Создание механизма управления архитектурными шаблонами для моделей в Structurizr DSL
Большинство современных ИТ-компаний практикуют "продуктовую разработку" - подход при котором программное обеспечение создается автономными командами созданными вокруг конкретной функции бизнеса. Таких команд может быть достаточно много (например, в Билайн больше 200, в МТС - больше 400). Примером таких приложений может быть "Личный кабинет клиента", "Система управления маркетинговыми программами", "Система работы с дебиторами" ....
Для упрощения разработки продуктов компании вырабатывает типовые шаблоны и практики создания таких продуктов, которые учитывают типовые интеграции (например с системами аутентификации/авторизации, платформами мониторинга ....), типовые стратегии размещения продуктов в ЦОД компании, типовые способы организации сервисов приложений и т.д. Это позволяет продуктовым командам избежать ошибок, связанным с незнанием ландшафта/правил компании и ускорить проектирование.
- Разработать простой декларативный язык описания архитектурных шаблонов
- Разработать интерпретатор/транслятор который будет анализировать модель архитектуры в Structurizr DSL, и встраивать шаблоны в модель
- Решать обратную задачу - находя шаблоны в программе на Structurizr DSL
Программа должна быть написана на языке Java, для того что бы ее можно было интегрировать в Language server плагина к Visual Studio Code.
- Трехзвенная архитектура
- Микросервисная архитектура
- Паттерн Revers Proxy
- Паттерн Load Balancer
- Паттерн Transactional Outbox