Друзья-архитекторы, программисты и к ним примкнувшие, а что вы думаете о модели C4 - хороший ли это подход? Хороший фундамент для создания "надъязыка" коммуникаций между командами, обсуждения архитектуры?
Мой личный опыт говорит, что существует не четыре, а три основных уровня, на которых происходит обсуждение продукта и архитектуры:
1) Бизнес-уровень: роли, сценарии, сценарии использования, истории, cjm и т.д.); это частично покрывается "контекстом", но не совсем: C1 кажется довольно высокоуровневым, но мы можем назвать это "контекстом"
2) Компонентный уровень: приложения, сервисы, хранилища. Именно здесь пользовательские сценарии представлены в виде набора запросов между развертываемыми компонентами (API - более детальное представление, но также начинается отсюда). Все обсуждения, связанные с "дизайном системы", зависимостями, масштабированием/производительностью/надежностью, стоимостью, нефункциональными требованиями - происходят на этом уровне. Это очень близко к "контейнеру" в C4, но, честно говоря, мне просто не нравится этот термин.
3) Модули, библиотеки - довольно очевидно, "код", то же самое, что и в C4; в дискуссиях обычно стоит избегать такого глубокого погружения, поскольку погружает в миллион деталий и жаргонизмов.
Так что я бы ожидал, что модель C4, если она претендует на стандарт, была бы C3.
Что думаете?
----
https://devhands.io/ru/ - образовательные треки по хайлоаду, системному дизайну, основам управления linux-серверами
https://t.me/feedmeetoo - интересные статьи, ссылки, презентации
Мой личный опыт говорит, что существует не четыре, а три основных уровня, на которых происходит обсуждение продукта и архитектуры:
1) Бизнес-уровень: роли, сценарии, сценарии использования, истории, cjm и т.д.); это частично покрывается "контекстом", но не совсем: C1 кажется довольно высокоуровневым, но мы можем назвать это "контекстом"
2) Компонентный уровень: приложения, сервисы, хранилища. Именно здесь пользовательские сценарии представлены в виде набора запросов между развертываемыми компонентами (API - более детальное представление, но также начинается отсюда). Все обсуждения, связанные с "дизайном системы", зависимостями, масштабированием/производительностью/надежностью, стоимостью, нефункциональными требованиями - происходят на этом уровне. Это очень близко к "контейнеру" в C4, но, честно говоря, мне просто не нравится этот термин.
3) Модули, библиотеки - довольно очевидно, "код", то же самое, что и в C4; в дискуссиях обычно стоит избегать такого глубокого погружения, поскольку погружает в миллион деталий и жаргонизмов.
Так что я бы ожидал, что модель C4, если она претендует на стандарт, была бы C3.
Что думаете?
----
https://devhands.io/ru/ - образовательные треки по хайлоаду, системному дизайну, основам управления linux-серверами
https://t.me/feedmeetoo - интересные статьи, ссылки, презентации