TGViewer
Аналитик на коне Аналитик на коне @equestrian_analyst · 179 subscribers
Post #111 173
#3.3 C4: диаграмма компонентов

Диаграмма компонентов раскрывает состав отдельного контейнера через набор компонентов.

Собственно, контейнер раскрывается через набор компонентов. Отдельная диаграмма создается для каждого контейнера (для которого вы хотите ее создать, для всех совершенно не обязательно).

Причем на диаграмме достаточно сохранить только первый уровень взаимодействий - выше 2 видео, как раз, чтобы показать: могут сохраниться и все элементы, а могут - почти никакие.

Как выделять компоненты - отдельная история для каждой кодовой базы. Немного писала об этом в исходном посте про компоненты.

Честно, нет у меня в голове пока готовой 100-ной инструкции, как аналитику выделить компоненты. Я могу это показать на примере сервисов, с которыми работала, но это будет частный случай частной кодовой базы... И объяснить еще нормально не могу, что там за блоки кода такие, я понимаю их назначение и могу читать код, но вот во все эти программистские абстракции не очень умею :D Я подумаю. Может быть, попробую записать для вас небольшое видео 🙂

Зачем нужна диаграмма? Отразить структуру кода внутри контейнеров, взаимодействия + технологические решения на уровне компонентов.

Элементы, присутствующие на диаграмме: программные системы, действующие лица, контейнеры.

Наличие технических деталей: Да. Указываем технологии для компонентов (но не для взаимодействий между ними).

Аудитория: Технические специалисты внутри вашей команды.

Рекомендуется ли к созданию автором модели: 50/50. Диаграмма может быстро устаревать, поэтому Саймон рекомендует к их подходу подходить осознанно, если есть необходимость.

А теперь немного про диаграммы контейнеров и компонентов у аналитиков

Сравнительно часто я натыкаюсь на диаграммы от аналитиков, где микросервисы отрисовывают на уровне компонентов. А на уровне контейнеров два квадратика - frontend и backend.

Микросервисы - самостоятельные единицы развертывания. Их уровень - уровень контейнеров!

Теперь по любимым архитектурам:

🟡монолитное приложение - на контейнерах действительно будет один или несколько квадратиков (если frontend отдельно, или есть мобилка), а вот на компонентах - внутренности этого монолита.

🟡(микро)сервисное приложение - сервисы уже на уровне контейнеров, как самостоятельные единицы развертывания, на компонентах - внутренности сервисов, если вам правда нужен этот уровень.

А то видела я статью на Хабре, где программист поправляет аналитика в комментариях, что он не понял C4, а там как раз не то с уровнями... Не дадим в нас усомниться 😅
  • 🤔 2
  • 👀 1
More from @equestrian_analyst
  1. Aug 18, 2026День почти закончился, но грех не запостить про... день рождения 🦄 Да, сегодня мне стукну…
  2. Aug 14, 2026Новая книга по C4: финальное summary, часть 2 Продолжение вчерашнего поста про новую книгу…
  3. Aug 13, 2026Новая книга по C4: финальное summary, часть 1 Дочитала новую книгу Брауна. Что могу сказат…
  4. Aug 5, 2026ИИ-агенты и автономность: кейс AISI с атакой на реальные проекты Я профукала момент, чтобы…
  5. Jul 14, 2026Post #141
  6. Jul 8, 2026И немного про ближайшее будущее Что я предполагаю тут постить в ближайшее время: ▶️Ожидает…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →