Декларативное построение диаграмм

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

Прошу обратить внимание на такой инструмент, как D2 (Declarative Diagramming) Terrastruct, Inc.

Написан на языке Go. Найден по следам активности уважаемого мной nhooyr, разработчика библиотеки для работы с websocket.

На первый вгляд выглядит многообещающе:

ПримерПример

Как отмечают создатели:

Визуальные элементы — это наиболее эффективный способ для всех членов команды поделиться ментальной моделью программных систем своего проекта. Это мультипликатор производительности. Но даже гениальные инженеры не могут их вытащить. Почему?  В их головах все ясно, но инструменты построения диаграмм больше похожи на инструменты проектирования, чем на инструменты разработки.

Процесс создания диаграммы есть написание кода:

Создание диаграммыСоздание диаграммы

Возможности:

  • Преобразование текста в диаграмму (элементарный синтаксис)

  • Автоформатирование и D2 tour по примеру Go

  • Расширения для Vim и vscode

  • Иконки и изображения

  • Стили отрисовки — по умолчанию dagre и elk, отдельно еще есть tala

  • Цветовые темы

  • Импорт в диаграмму кода, LAΤΕΧ (формул), SQL-таблиц, UML и markdown

  • Локальное применение через CLI

  • Импорт в программы на Go как библиотеки для генерации диаграмм

  • Экспорт в svg и png

Очень круто выглядят диаграммы последовательности (кто видел, как выглядят в RFC, оценит):

Диаграммы последовательностиДиаграммы последовательности

В наличии интерактивная «песочница» с примерами:

80abd3e55a78266920e28f5999f491b1.png6c4fa0b54120b111f30576a2b70b6ac3.png

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

b3fb4234dff62355573212cca5df7c4a.png

P.S.

Инструмент понравился, надоели WYSIWYG-редакторы для отрисовки диаграмм.

Повторно отмечу D2-tour.

Всем спасибо за внимание, удачи и спокойствия!

© Habrahabr.ru