🧩 Модель С4
Начнём, пожалуй, потихоньку к архитектурным вопросам накидывать!
Сначала поговорим про модель С4: на мой взгляд эта модель довольно удачно позволяет декомпозировать архитектуру программного продукта и концептуально удачно подходит для работы с агентскими системами.
Суть подхода C4 - в декомпозиции архитектуры на 4 уровня:
# L1: System ©ontext : Контекст системы - уровень взаимодействия системы как чёрного ящика с внешним миром. На этот уровень попадает product.md из меморибанка, описывающий в том числе что за продукт и для кого.
# L2: ©ontainers : контейнеры - крупные строительные блоки, из которых состоит система - подсистемы. Например, frontend, api.
# L3 : ©omponents : компоненты - логические единицы внутри контейнера, например auth controller.
# L4 : ©ode : код - самый детальный уровень, сам код или детальный документ планирования реализации (диаграммы классов, ERD).
Как я использую данный подход в планировании :
- На L1 у меня product.md мемори банка + эпики. Я специализирую эпики (EP-) как единицы доставки пользовательской ценности, из совокупности эпиков и рождается product.
- на L2 : работаем с сущностью подсистемы (systems) - со своими контрактами; реализуются специальными техническими эпиками (TE-).
- на L3 : фичи и концепции, фича - конктерный компонент, реализуемый внутри подсистемы, а концепции мы в duo файлах фиксируем, с архитектурными паттернами и решениями.
- на L4 : план реализации, implementation plan для каждой фичи, получается в результате многоэтапной стадии планирования. Используется как подробная и детальная инструкция для агента.
Чего нету в подходах C4 : нет моделирования данных, нет описания динамического поведения (Sequence Diagrams например).
Также важно оставаться в рамках разделения на Problem Space и Solution Space:
- Problem Space - описывает ЧТО система должна делать, спеки системы
- Solution Space - описывает КАК это реализовано.
‼️ Как вы понимаете - мы сейчас говорили про Solution Space. На мой взгляд, модель C4 хорошо структурирует Solution Space - довольно просто, элегантно, концептуально, логично, но ограничения подхода надо понимать!
❓Какую роль играет C4? Это подход к архитектурному моделированию который используется?
Нет. Это "концептуальный взгляд" на систему документации в Solution space. Этот взгляд помогает понимать роль разных артефактов в системе, и какое значение они имеют. Само по себе проектирование системы прямо на C4 не завязано, это не методика как проектировать. Но смыслы, которые стоят за теми или иными артефактами системы, понимание таких концепций проясняет, как проясняет и соотношение, edpre друг с другом, взаимодействие этих понятий.
#post
@deksden_notes
Post #55
426
- 🔥 6
- 👍 3
- ❤ 2