C4-модель
C4 — это метод визуализации архитектуры системы через четыре уровня детализации (все начинаются на «C», отсюда и название).
1️⃣Контекст (Context) Смотрим на систему с высоты птичьего полёта:
- Что это за система?
- Кто её использует?
- С какими внешними сервисами она взаимодействует?
Пример: Интернет-магазин взаимодействует с клиентами, платёжными системами и службами доставки.
2️⃣Контейнеры (Containers) Теперь посмотрим на систему ближе: из каких крупных частей состоит система? Контейнеры — это отдельные приложения, сервисы или хранилища данных.
Пример: В интернет-магазине могут быть:
- Веб-сайт
- Мобильное приложение
- API-сервер
- База данных
3️⃣Компоненты (Components) Ещё детальнее: из чего состоят контейнеры? Компоненты — это логические блоки внутри контейнера.
Пример: Веб-сайт интернет-магазина может включать:
-Систему авторизации -Каталог товаров -Корзину покупок -Платёжный модуль
4. Код (Code) Самый низкий уровень — реализация компонентов в коде.
Какие классы, функции, модули используются?
Как они взаимодействуют?
Пример: Компонент «Корзина покупок» может состоять из: -Класса Cart -Методов addItem(), removeItem(), checkout()
Зачем это нужно? C4 помогает: ✅ Чётко объяснить архитектуру (от общего к частному) ✅ Увидеть границы системы (что внутри, что снаружи) ✅ Общаться с разными аудиториями (бизнес, разработчики, DevOps)
Моя любимая часть С4 Сколько диаграмм в модели с4? Многие думают что 4, но их 7)
Полезные материалы:
- Вот тут есть чеклист проверки своей с4 https://bv-dev.ru/начни-с-начала/
- Вот тут можно послушать как я рассказываю подробнее https://rutube.ru/video/6898265cb67b9012b5d7efe6a328bae9/ (есть на всех платформах, если нужно скажите на какую нужна ссылка скину)