Pull to refresh

Comments 8

Недавно открыл для себя mermaid как доступный способ кодом "рисовать" диаграммы. Поддерживаются различные виды, в том числе в бете поддреживаются С4 диаграммы. Автоматически рендерится в схемы на гитлабе, обсидиане. В вскод тоже работает, как минимум с установкой расширения (точно не помню). Т.е. можно без каких-либо отдельных инструментов вести ту же документацию сразу в гит-репозиториях в маркдауне и при этом не надо тащить картинками схемы - все изменения будут фиксироваться, как и изменения другого текста.

В Visio нет наборов элементов для рисования C4

Нужны шаблоны, как для miro. По отзывам коллег-аналитиков его тоже используют, поэтому включила. Уточнила в статье, благодарю за комментарий!

Самое интересное начинается дальше, когда начинает появляется необходимость контроля версий, деление на слои, модули и их внутренние связи и согласованность

Тогда на помощь приходят системы для управления корпоративной архитектуры, такие как iserver и leanix и другие

Описание диаграмм кодом это пока очень грустно, так как autolayout пока что умеет работать с 4-5 квадратами и 8-10 стрелками. Когда их становится больше, а их всегда больше в реальных диаграммах реальных систем, то ты сначала вынужден тратить кучу времени на написание кода (это всегда дольше, чем в графическом редакторе из готового набора элементов drag'n'drop'ом вытянуть квадратик или стрелочку), а потом еще в 10 раз больше времени на то, чтобы потом все расставить так, чтобы это было хоть сколько-нибудь читаемо.

Также в вашем примере с GetDelivery на С2 и С3 все перемешалось в кучу. Поизучайте, что есть Container и что есть Component и как эти абстракции вкладываются друг в друга на диаграммах. Половина ваших компонент на уровне С3 это на самом деле контейнеры с уровня С2 (если не все вообще). Просто попробуйте запихнуть это в тот же structurizr, поймете о чем я😉

Уровень C4 использую как Cases, особенно для обозначения слайсов и вообще динамики развития архитектуры.

В защиту PlantUML скажу, что регулярно выходят для него обновления. Я использую в связке с VSCode. Регулярно обновляю и пока проблем не замечал, даже с «весомыми» диаграммами👌🚀

Диаграмма контекста в примере с GetDelivery некорректна: база данных, очередь и балансировщик должны быть отдельными контейнерами. Впрочем, балансировщик автор нотации вообще рекомендует указывать на отдельной диаграмме развёртывания.

Sign up to leave a comment.

Articles