Комментарии 38
В draw.io тоже можно писать на PlantUml такие диаграммы
Следующий этап http://mermaid.live вместо plantumUML (мермэйд например нативно в github mardown поддерживается) что сильно упрощает хранение документации в одном месте
Спасибо! Почитаю.
В статье я тоже кратко упомянул, что к проекту можно подключить Git
GitLab поддерживает PlantUML.
Прям в md-файле можно написать```plantuml
Bob -> Alice : hello
Alice -> Bob : hi
```
Кроме того ЕМНИП в PlantUML асортимент разных диаграм больше чем в Mermaid. Не знаю Mermaid, поэтому не могу судить как сейчас обстоит ситуация. Когда давно стоял выбор между разными системами, именно количесвто разных диаграмм перевесил чашу весов в сторону PlantUML.
Ровно эта же проблема прямо сейчас вызывает у нас с коллегой боль) Спасибо за решение, обязательно попробуем!
Постоянно использую https://sequencediagram.org:
Не требует доп софта. Работает в браузере
Тектом описывается диаграмма
Можно шарить диаграммы обычной ссылкой
text-to-diagram.com - тут можно сравнить разные инструменты для отрисовки диаграмм
Отказался от диаграмм последовательностей в пользу BPMN.
BPMN для описания интеграций?
Какие преимущества для себя нашли в таком подходе?
Описываете в формате "Отправка сообщения" -> "Получение сообщения" + отдельные пулы для систем?
В такой схеме скрываете части БП, которые не участвуют в интеграции?
Использую для описания сценариев, в которых участвует несколько сервисов, а сам сценарий содержит несколько путей выполнения.
Главное преимущество BPMN: хорошая читаемость даже в сложных сценариях. Диаграммы последовательностей становятся нечитаемой после первого же блока с условиями.
Отправки сообщений обычно не использую, а просто рисую стрелочки с подписями. Для систем отдельные пулы.
Части БП обычно не скрываю, но могут отобразить их как подпроцесс.
А что можно было бы использовать для описания кодом диаграмм бизнес-процессов? Где несколько акторов (swim lanes), блоки условий и вот это вот всё?
Сколько минут уйдёт чтоб написать код "свою первую схему" ?
В обычном редакторе за 5-15 минут такую же схему можно нарисовать.
Обычный редактор (yEd) тоже сохраняет в текстовом виде например формат .graphml
Изменять можно прям текст, в том числе массово много файлов если надо.
У нас тож есть поклонник Mermaid (PlantumUML), но я так и не понял преимущества.
Я программист и тоже иногда использую plantuml, но есть у него огромный минус (для меня) - нельзя сместить элемент так как мне нужно
Graphviz также есть в homebrew, поэтому, если лень возиться с портами можно поставить через `brew install graphviz`
Ну и без sudo
puml очень просто генерить. Например, из всяких реестров при помощи vba. И это прекрасно)
Из текста диаграмма это хорошо. А обратная задача? Мне не хватало, и решил сделать: diagramhacker.ru
не понятно как этим инструментом пользоваться
Нужно загрузить в него диаграмму в формате drawio (кнопка "Открыть"), и он выведет: в левой панели саму диаграмму, в средней таблицу объектов (вершины графа диаграммы пока, ребра не выводятся), а в правой - описание в формате markdown.
Для справки сделал тестовую диаграмму, в которой описал идею сервиса в виде диаграммы - она загружается по умолчанию. Редактировать саму диаграмму в сервисе нельзя, только атрибуты объектов.
Можно менять сортировку, добавлять атрибуты, в атрибутах хранить дополнительную информацию, которая может выводиться в описание.
Был такой инструмент - bpwin, в нем можно было делать модели в IDEF0, и по моделям генерировать документацию. Сейчас этого не хватает, особенно если учесть, что нотаций разных много, и часто требуется описание диаграммы в документ вставлять. А поскольку формат drawio - это xml, то я подумал, что в нем можно это делать, тем более что он позволяет дополнять диаграмму пользовательскими атрибутами, которые доступны по Ctrl+M из самого drawio. Можно нарисовать диаграмму в drawio, загрузить в сервис, дополнить ее нужными атрибутами (по кнопке (+) в средней панели можно добавить любые атрибуты ко все объектам диаграммы сразу), настроить вывод, и можно сказать, что документ готов. В таблице на средней панели можно отредактировать значения атрибутов, или сохранить диаграмму и отредактировать их непосредственно в drawio (выделить объект, нажать Ctrl+M и заполнить значения для атрибутов объекта).
Пока не все виды фигур отображаются корректно (убился с рендерингом), но основные фигуры работают.
Спасибо огромное за статью! Открыли глаза на очень крутой инструмент!
Попробовал в деле, почитал мануал.
Заметил такой момент
activate и deactivate используются чтобы обозначить активацию участника.
Линия существования появляется в момент активации участника.
activate и deactivate применяются к предыдущему сообщению.
Т.е. в вашем примере должно быть вот так?
Client -> UI: Запрос 1
activate Client
UI -> Back: Запрос от клиента
activate UI
Добрый день! Да в мануале так написано.
Просто в примере из Мануала нет активации пользователя при взаимодействии с системой.
Я активирую пользователя ДО момента отправки запроса, т.е. пользователь для отправки запроса должен быть активирован.
Сервис получающий запрос, должен быть активирован ДО получения направленного ему запроса, соответственно так и формируется логика.
Сервис получающий сообщение должен быть активирован сразу после того, как система отправитель направила запрос.
Ваш кусок кода в примере может выглядеть так:
activate Client
' клиент создан, чтобы отправить запрос
Client -> UI: Запрос 1
activate UI
' UI создан, чтобы получить запрос
UI -> Back: Запрос от клиента
activate Back
' Back создан, чтобы получить запрос
У меня так и построен запрос, просто переносы не как в мануале, мне так удобней.
Если без комментариев по тексту (для наглядности), то запрос такой:
activate Client
Client -> UI: Запрос 1
activate UI
UI -> Back: Запрос от клиента
activate Back
Спасибо за статью! Я написал большой промпт чтобы научить Gemini писать код для этиз диаграмм в plantum. Он переводит мои тексты в диаграмму. Если будете так делать, обязательно вставляйте в промпт примеры работающего кода, иначе будут постоянные ошибки синтаксиса. У ChatGPT такой проблемы не заметил. При этом визуально сгенерированная диаграмма почему-то различается у разных ИИ, хотя оба используют plantum.
Пишу диаграммы последовательностей текстом (кодом). Вы тоже можете