С
logo
Сурен Хоренян | Программирование

Зачем PlantUML, когда есть С4?

PlantUML

Если ‎вы‏ ‎хоть ‎чуть-чуть ‎в ‎сфере ‎ИТ,‏ ‎вы ‎точно‏ ‎встречали‏ ‎PlantUML ‎диаграммы. ‎Это‏ ‎такие ‎схемки‏ ‎с ‎пошаговым ‎описанием ‎действий‏ ‎в‏ ‎системе, ‎или‏ ‎описанием ‎структуры‏ ‎проекта ‎(сервисы, ‎базы, ‎и ‎тд).‏ ‎Визуализация‏ ‎это, ‎конечно,‏ ‎прекрасно, ‎но‏ ‎хорошая ‎визуализация ‎ещё ‎лучше. ‎А‏ ‎PlantUML‏ ‎предоставляет‏ ‎хорошую ‎визуализацию‏ ‎только ‎для‏ ‎одного ‎уровня‏ ‎абстракции.


С4

В‏ ‎проекте ‎всегда‏ ‎можно ‎выделить ‎несколько ‎уровней ‎абстракции,‏ ‎и ‎именно‏ ‎про‏ ‎это ‎модель ‎C4.‏ ‎Четверка ‎в‏ ‎названии ‎означает ‎уровни:

1. Диаграмма ‎системы‏ ‎—‏ ‎что ‎приносит‏ ‎пользу ‎пользователю.‏ ‎Система ‎состоит ‎из ‎контейнеров.

2. Диаграмма ‎контейнера‏ ‎—‏ ‎наши ‎программистские‏ ‎сущности: ‎базы‏ ‎данных, ‎s3, ‎отдельные ‎приложения ‎и‏ ‎микросервисы,‏ ‎это‏ ‎всё ‎контейнеры.‏ ‎И ‎каждый‏ ‎контейнер ‎состоит‏ ‎из‏ ‎компонентов.

3. Диаграмма ‎компонента‏ ‎— ‎это ‎модули ‎ПО. ‎Например,‏ ‎микросервис ‎состоит‏ ‎из‏ ‎нескольких ‎компонентов: ‎СУБД,‏ ‎контейнер ‎с‏ ‎приложением, ‎веб-сервер.

4. Диаграмма ‎кода ‎—‏ ‎каждый‏ ‎компонент ‎как-то‏ ‎напрограммирован. ‎Вот‏ ‎тут ‎можно ‎сделать ‎описание ‎модулей‏ ‎и‏ ‎классов ‎(опускаться‏ ‎до ‎этого‏ ‎уровня ‎обычно ‎не ‎нужно).


Кто ‎кого?

Ещё‏ ‎есть‏ ‎правило,‏ ‎что ‎нужно‏ ‎указывать ‎направленность‏ ‎взаимодействия. ‎Например,‏ ‎код‏ ‎ходит ‎в‏ ‎базу ‎данных. ‎Да, ‎тут ‎сразу‏ ‎понятно, ‎кто‏ ‎к‏ ‎кому ‎обращается, ‎ведь‏ ‎БД ‎сама‏ ‎не ‎ходит ‎к ‎приложению.

Если‏ ‎взаимодействие‏ ‎с ‎API,‏ ‎то ‎указывать‏ ‎направленность ‎очень ‎важно: ‎мы ‎можем‏ ‎запрашивать‏ ‎данные ‎с‏ ‎внешнего ‎ресурса,‏ ‎а ‎также ‎ресурс ‎может ‎уведомлять‏ ‎наше‏ ‎приложение‏ ‎о ‎новом‏ ‎событии. ‎И‏ ‎при ‎указании‏ ‎направленности‏ ‎мы ‎ещё‏ ‎и ‎подписываем ‎стрелочку, ‎уточняем, ‎что‏ ‎именно ‎тут‏ ‎происходит.

А‏ ‎самый ‎кайф ‎C4,‏ ‎что ‎никому‏ ‎не ‎нужно ‎приближение ‎дальше‏ ‎второго‏ ‎уровня, ‎изредка‏ ‎третьего.

PlantUML ‎всё‏ ‎ещё ‎актуален ‎для ‎Sequence ‎диаграмм‏ ‎—‏ ‎схем ‎с‏ ‎последовательностью ‎действий,‏ ‎например ‎«пользователь ‎запросил ‎А, ‎система‏ ‎вытащила‏ ‎данные‏ ‎из ‎B,‏ ‎перепроверила ‎через‏ ‎C ‎и‏ ‎отдала‏ ‎пользователю». ‎А‏ ‎вот ‎если ‎структура ‎системы ‎описана‏ ‎по ‎C4,‏ ‎то‏ ‎это ‎гораздо ‎понятнее.


Кстати,‏ ‎что ‎PlantUML,‏ ‎что ‎C4 ‎рисовать ‎руками‏ ‎не‏ ‎нужно, ‎используйте‏ ‎для ‎этого‏ ‎текстовый ‎формат: ‎его ‎легко ‎версионировать‏ ‎и‏ ‎распространять. ‎Есть‏ ‎свои ‎языки‏ ‎для ‎этого, ‎а ‎также ‎реализации‏ ‎на‏ ‎привычных‏ ‎нам ‎Python,‏ ‎JS ‎и‏ ‎тд.


Предыдущий Следующий
Все посты проекта
0 комментариев

Статистика

Метки

Подарить подписку

Будет создан код, который позволит адресату получить бесплатный для него доступ на определённый уровень подписки.

Оплата за этого пользователя будет списываться с вашей карты вплоть до отмены подписки. Код может быть показан на экране или отправлен по почте вместе с инструкцией.

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

Разово будет списана указанная сумма и зачислена на баланс пользователя, воспользовавшегося данным промокодом.

Добавить карту
0/2048