Creating Software with Modern Diagramming Techniques - Ashley Peacock & Stefan Hofer - GOTO Club (Рубрика Architecture)
Во время прогулки с собакой решил послушать выпуск подкаста конференции GOTO и выбрал обсуждение книги про рисование диаграмм "Creating Software with Modern Diagramming Techniques". Иронично, что это аудиовыпуск, в котором нет ни одного изображения не то, что диаграмм, но и участников выпуска:) Но меня это не смутило, так как я рисовал много диаграмм и пользовался всеми упоминаемыми инструментами сам. Эшли написал книгу "Creating Software with Modern Diagramming Techniques" для того, чтобы рассказать новому поколению разработчиков о том, что было хайпом порядка 20 лет назад, когда визуальным CASE средствам моделирования пророчили те же лавры, что сейчас пророчат Copilot в написании кода:) Идея была в том, чтобы нарисовать диаграммы, а из них должен был получиться рабочий код. Это конечно не случилось, но по дороге к этому средства моделирования усложнились до того, что их перестали использовать сами разработчики. Зато их начали использовать архитекторы всех сортов:)
Но вернемся к интервью с автором и основным тезисам
- Эшли написал книгу не просто про диаграммы as a Code, а про использование этого подхода вместе с инструментом Mermaid
- Эшли преимущественно использует 3 вида диаграмм: sequence diagram прямиком из UML, C4 Model от Саймона Брауна (подробнее в моем разборе его выступления), модель предметной области
- Sequence диаграмма используется для моделирования взаимодействия систем или людей
- C4 Model используется для моделирования архитектуры на разном уровне абстракции: context, container, component, code
- Модель предметной области - это просто вариация на тему старой доброй ER диаграммы и она используется для описания проблемной области, в которой работает софт
- Вообще, есть и другие инструменты для построения диаграмм из кода — Plantuml - хороший инструмент для построения диаграмм, движок которого написан на Java, а не javascript как Mermaid — Structurizr - хороший инструмент для моделирования в нотации C4 Model от автора концепции. Этот инструмент не позволяет рисовать условно произвольные диаграммы
- По мнению автора книги Mermaid выигрывает у Plantuml, так как Mermaid сделан на js, а значит может исполняться и на чайнике, а также он встроен в GitHub и Gitlab. У Structurizr же Mermaid выигрывает широтой поддержки разных диаграмм
- И немного про фичи Mermaid — Поддерживает широкий спектр типов диаграмм, от формально определенных языков моделирования до моделирования в свободной форме — Определяет язык разметки для описания диаграмм в виде кода и имеет инструменты для создания реальных визуальных диаграмм. — Имеет хорошую документацию и живой редактор для создания диаграмм. — Обеспечивает обратную совместимость и постоянно добавляет новые типы диаграмм.
- Общие плюсы diagram as a code в том, что диаграмма описывает простым текстом, а значит ее легко положить в систему контроля версий, а также видеть изменения между версиями
- Автор отмечает, что сейчас можно использовать LLM для того, чтобы создать диаграммы по простому описанию - LLM просто генерит код в нотации Mermaid для построения диаграммы
- Ну и в конце разговора автор говорит, что возможно мы увидим возрождение архитектуры, основанной на моделях, или разработки, основанной на моделях, с новыми инструментами и искусственным интеллектом.
#Architecture #Vosualisation #Software #SystemDesign