Как стать автором
Обновить

Как рисовать Sequence без боли и страданий в PlantUML

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров7.6K
Всего голосов 28: ↑28 и ↓0+34
Комментарии35

Комментарии 35

А я думал, PlantUML — это must have для любого аналитика :) Оказывается и лиды могут его не знать :)

Казалось бы, но нет) я тоже была удивлена

Но они, в основном, что-то когда-то пробовали порисовать и по какой-то причине решили перестать рисовать

Пипец куда шагнул прогресс.

Это я о том что GhatGPT рисует вполне себе неплохие диаграммы исходя из словесно поставленной задачи.

...хотя, чтобы корректно поставить задачу ИИ надо уже иметь бэкграунд аналитика. Но все равно очень круто.

Ну в моем случае можно было еще точнее задачу описать и результат был бы прям хорошим

Но так да, я часто обращаюсь к ChatGPT и добиваться от него чего-то внятного опыт аналитика очень помогает)

Недостаток PlantUML в том, что Sequence это практически единственное, что он рисует хорошо. Причина в том что в PlantUML крайне скудные средства управления размещением элементов (layouts) и в Sequence размещение весьма простое, а схему почти любого другого типа он может безнадёжно слажать.

Поэтому я использую PlantUML исключительно для Sequence. Для всего остального он мне не нравится)

У меня наоборот - это единственное что мне не нравиться в PlantUML, а остальным пользуюсь регулярно )))))

Ну так тоже бывает)

Я рисую ERD в Miro и некоторые смотрят на меня как на идиотку))

Если вдруг вы серьезно решили быть системным аналитиком на UML, это я всесторонне одобряю, и очень рекомендую не использовать непонятные программные продукты третьих лиц, а начать осваивать Rational Rose от разработчиков Unified Modeling Language - Rational Software, которых сейчас купило IBM.

Звучит очень серьезно)

Спасибо за рекомендацию, я изучу вопрос

Плюсую за вежливый и красивый ответ. :)

Спасибо :)

В нынешних реалиях не UML-ем единым - С4 model является разумным компромиссом - и PlantUML его поддерживает.

Лично у меня к PlantUML, кроме проблем с layouts, претензия скорее в том, что в нем легко рисовать диаграммы, но достаточно трудно вести модели

Ну опять же повторюсь, что использую только для Sequence именно по этой причине

Потому что остальное, как по мне, и выглядит не очень, и делать неудобно

PlantUML для С4 плох. Есть более выразительная альтернатива с размещением по экрану - Structurizr. И его форк где все вместе - https://gitlab.com/plgrnd/aac

Ну, тут немного разные цели. Хотя тот же PlantUML интегрируется в JAVA IDE как UML, но используют его для графики.

Об этом я не знала даже, есть и такие смельчаки)

А если для документирования использовать ASCIIDOCTOR с дюжиной плагинов, включая PlantUML, то совсем прекрасно.

ASCIIDOCTOR никогда даже не встречала, изучу, что за зверь)

Как же конфлюенс используете, если он теперь под санкциями?

Под санкциями не конфлюенс, а Россия, не путайте.

Пока пользуемся

Не знаю, надолго ли

Есть ещё https://mermaid.js.org/syntax/sequenceDiagram.html он будет посвежее, поддерживается искаропки gitlab'ом. И одна из киллерфич, что он генерирует DOM с копипастабельными текстами, а не картинку.
Но и минусов хватает: меньше фич (нельзя сбрасывать автонамберы, или делать в одну линию стрелочки), куча плагинов под конфлюенс сомнительного производства. Ну и возможны какие-нибудь XSS дыры https://securitylab.github.com/advisories/GHSL-2021-1058_GHSL-2021-1060_mermaid_js/ из-за того же DOM'а

Да, у mermaid неоспоримое достоинство по сравнению с plantuml, что его поддерживают gitlab и github в markdown без дополнительных приседаний с рендерингом в картинки. А по фичам, форматированию и отрисовке plantuml конечно сильно выигрывает.

Я про это знаю)

Возможно, как Confluence отрубят, придется рассмотреть вариант с mermaid и гитом

Лучше принести plantuml в гитлаб ;)

Я как раз думала об этом, собираю инфу, чтобы команде показать

Может и перенесем)

Да, я его упоминала в статье

У них есть свои преимущества и недостатки, но пока ведем документацию в Confluence, Plant выигрывает

Plantuml можно рендкрить в svg, оттуда текст можно копировать

Хорошая статья, доступно и структурировано объяснено использование.

Для plantuml есть так же плагины в sublime text, obsidian

Спасибо :)

Спасибо, показано понятно и доступно.

Но есть проблемы таких простых примеров. И я не понимаю, как аналитики их решают.
Если вернуться в реальность, то покупатель обычно платит или в технологическом окне баристы, или уже по получению кофе. Потому что если вы хотите, чтобы в следующий раз покупатель пришёл к вам, то вы сначала запустите небыстрый процесс приготовления кофе, а не процесс оплаты.
Теперь самое весёлое - попробуйте показать эти три альтернативные оплаты на диаграмме. Ну хотя бы две. Я даже не прошу быть ещё ближе к реальности, когда обычно есть ещё участник в виде отдельного (мобильного) платёжного терминала, который вынесен к покупателю.
Вот за это не люблю Sequence. Читабельно только для самых простых сценариев, и не дай бог там альтернативы, затрагивающие процесс всего сценарий. Про негативные сценарии тут вообще лучше забыть

Я не так давно нарисовала Sequence по регистрации, который состоит из 81 стрелки сообщений)

Там есть и alt, и opt. Участников 5 - пользователь, фронт, API и два микросервиса. Выглядит впечатляюще))

alt и opt я разнесла чуть дальше друг от друга и можно пользоваться вот этой штукой |||, чтобы стало читабельнее.

И еще я разделила диаграмму на 3 шага регистрации и отделила это все конструкцией ==N шаг регистрации==.

В целом, вышло не прям плохо.

А alt можно делать хоть со 100 ветками else, благо язык позволяет)

Еще, как вариант, разделить это все безобразие и использовать ref (типа ссылка на другую диаграмму или на другой отдельный процесс). Я так не делаю, но вот такой вариант тоже возможен.

Спасибо, отличная статья!

Добавить ещё команды return и autoactivate, и будет совсем красиво

Не знала про эти команды, изучу)

Спасибо :)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий