Ответ
C4 Model — это методология для визуализации и документирования архитектуры программного обеспечения через четыре уровня детализации (абстракции). Она помогает обсуждать систему с разными аудиториями — от бизнес-заказчиков до разработчиков.
Четыре уровня модели C4:
- Контекст (System Context): Высокоуровневая диаграмма, показывающая систему в целом, её взаимодействие с пользователями и другими внешними системами.
- Контейнеры (Containers): Диаграмма, раскрывающая, из каких крупных исполняемых блоков (веб-приложение, мобильное приложение, база данных, микросервис) состоит система и как они взаимодействуют.
- Компоненты (Components): Диаграмма, детализирующая ключевые модули или компоненты внутри одного контейнера и связи между ними.
- Код (Code): Детальная диаграмма (например, UML), показывающая конкретные классы, интерфейсы и их отношения внутри компонента. Этот уровень используется реже и обычно генерируется автоматически.
Пример для интернет-магазина:
- Контекст: Покупатель взаимодействует с системой «Интернет-магазин», которая, в свою очередь, использует внешний «Платежный шлюз».
- Контейнеры: Веб-приложение (Frontend), API-сервис (Backend), База данных PostgreSQL, Кэш Redis.
- Компоненты (внутри API-сервиса):
OrderService,PaymentProcessor,UserRepository.
Преимущества подхода:
- Простота и ясность: Каждая диаграмма фокусируется на конкретных вопросах.
- Масштабируемость: Позволяет «зумировать» от общей картины к деталям реализации.
- Универсальный язык: Облегчает коммуникацию между разработчиками, архитекторами и заинтересованными лицами.