64 lines
5.7 KiB
Markdown
64 lines
5.7 KiB
Markdown
## Рецензия
|
||
|
||
### Слабые места
|
||
|
||
1. **Масштабируемость**: при монолитной архитектуре масштабирование может представлять проблему в случае роста количества пользователей и функционала. Рекомендуется разделение проекта на несколько микросервисов для улучшения масштабируемости.
|
||
2. **Консистентность**: при отсутствии базы данных может возникнуть проблема с консистентностью данных, если не обеспечить транзакционную изоляцию. Рекомендуется использование базы данных для хранения состояния и контроля версий данных.
|
||
3. **Выносливость**: при монолитной архитектуре в случае сбоя одного компонента может возникнуть полный отказ системы. Рекомендуется использование микросервисов для улучшения выносливости и автоматизации восстановления.
|
||
4. **Наблюдение**: при отсутствии базы данных может возникнуть проблема с наблюдением за работой системы, если не обеспечить логгирование событий и метрик. Рекомендуется использование мониторинга для наблюдения за работой системы.
|
||
5. **Удержание**: при отсутствии базы данных может возникнуть проблема с удержанием состояния между сеансами пользователя. Рекомендуется использование куки или токенов для хранения состояния.
|
||
|
||
### Рекомендованные ADRs
|
||
|
||
1. **ADR-001: База данных** — описание выбора базы данных и её настройка.
|
||
2. **ADR-002: Микросервисы** — описание разделения проекта на несколько микросервисов для улучшения масштабируемости, выносливости и удержания состояния.
|
||
3. **ADR-003: Логгирование** — описание логгирования событий и метрик для наблюдения за работой системы.
|
||
4. **ADR-004: Авторизация** — описание внедрения авторизации для обеспечения безопасности.
|
||
5. **ADR-005: Мониторинг** — описание мониторинга для наблюдения за работой системы.
|
||
|
||
### Диаграммы
|
||
|
||
1. Диаграмма концептуального архитектура (Architecture Diagram)
|
||
2. Диаграмма классов (Class Diagram)
|
||
3. Диаграмма компонентов (Component Diagram)
|
||
4. Диаграмма взаимодействия (Interaction Diagram)
|
||
5. Диаграмма состояний (State Diagram)
|
||
6. Диаграмма последовательности событий (Sequence Diagram)
|
||
7. Диаграмма конфигурации (Configuration Diagram)
|
||
8. Диаграмма деплоя (Deployment Diagram)
|
||
|
||
## Предложенная архитектура
|
||
|
||
### Архитектурные неизменяемые свойства
|
||
|
||
1. **Данные хранения**: использование базы данных для хранения состояния и контроля версий данных.
|
||
2. **Масштабируемость**: разделение проекта на несколько микросервисов для улучшения масштабируемости, выносливости и удержания состояния.
|
||
3. **Наблюдение**: использование мониторинга для наблюдения за работой системы.
|
||
4. **Авторизация**: внедрение авторизации для обеспечения безопасности.
|
||
5. **Логгирование**: логгирование событий и метрик для наблюдения за работой системы.
|
||
6. **Выносливость**: использование микросервисов для улучшения выносливости и автоматизации восстановления.
|
||
7. **Удержание**: использование куки или токенов для хранения состояния между сеансами пользователя.
|
||
|
||
### Концептуальный архитектурный диаграмм
|
||

|
||
|
||
### Классы
|
||

|
||
|
||
### Компоненты
|
||

|
||
|
||
### Взаимодействие
|
||

|
||
|
||
### Состояния
|
||

|
||
|
||
### Последовательность событий
|
||

|
||
|
||
### Конфигурация
|
||

|
||
|
||
### Деплой
|
||
 |