Comments 38
А я думал, PlantUML — это must have для любого аналитика :) Оказывается и лиды могут его не знать :)
Пипец куда шагнул прогресс.
Это я о том что GhatGPT рисует вполне себе неплохие диаграммы исходя из словесно поставленной задачи.
...хотя, чтобы корректно поставить задачу ИИ надо уже иметь бэкграунд аналитика. Но все равно очень круто.
Недостаток PlantUML в том, что Sequence это практически единственное, что он рисует хорошо. Причина в том что в PlantUML крайне скудные средства управления размещением элементов (layouts) и в Sequence размещение весьма простое, а схему почти любого другого типа он может безнадёжно слажать.
Если вдруг вы серьезно решили быть системным аналитиком на 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, то совсем прекрасно.
Как же конфлюенс используете, если он теперь под санкциями?
Есть ещё 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, Plant выигрывает
Plantuml можно рендкрить в svg, оттуда текст можно копировать
Хорошая статья, доступно и структурировано объяснено использование.
Для plantuml есть так же плагины в sublime text, obsidian
Спасибо, показано понятно и доступно.
Но есть проблемы таких простых примеров. И я не понимаю, как аналитики их решают.
Если вернуться в реальность, то покупатель обычно платит или в технологическом окне баристы, или уже по получению кофе. Потому что если вы хотите, чтобы в следующий раз покупатель пришёл к вам, то вы сначала запустите небыстрый процесс приготовления кофе, а не процесс оплаты.
Теперь самое весёлое - попробуйте показать эти три альтернативные оплаты на диаграмме. Ну хотя бы две. Я даже не прошу быть ещё ближе к реальности, когда обычно есть ещё участник в виде отдельного (мобильного) платёжного терминала, который вынесен к покупателю.
Вот за это не люблю Sequence. Читабельно только для самых простых сценариев, и не дай бог там альтернативы, затрагивающие процесс всего сценарий. Про негативные сценарии тут вообще лучше забыть
Я не так давно нарисовала Sequence по регистрации, который состоит из 81 стрелки сообщений)
Там есть и alt, и opt. Участников 5 - пользователь, фронт, API и два микросервиса. Выглядит впечатляюще))
alt и opt я разнесла чуть дальше друг от друга и можно пользоваться вот этой штукой |||, чтобы стало читабельнее.
И еще я разделила диаграмму на 3 шага регистрации и отделила это все конструкцией ==N шаг регистрации==.
В целом, вышло не прям плохо.
А alt можно делать хоть со 100 ветками else, благо язык позволяет)
Еще, как вариант, разделить это все безобразие и использовать ref (типа ссылка на другую диаграмму или на другой отдельный процесс). Я так не делаю, но вот такой вариант тоже возможен.
Спасибо, отличная статья!
Добавить ещё команды return и autoactivate, и будет совсем красиво
те самые плашечки, которые обозначают экземпляры выполнения операции
они называются линиями жизни (life lines)
Как рисовать Sequence без боли и страданий в PlantUML