Не UML-диаграммы на PlantUML. Обзор с примерами
Привет Хабр! Меня зовут Татьяна Ошуркова, я разработчик, аналитик и автор телеграм-канала IT Talks. Назначением инструмента PlantUML принято считать построение UML-диаграмм. Но на самом деле у него намного больше возможностей и типов диаграмм, которые можно создать.
В этой статья я расскажу о нескольких диаграммах, которые не относятся к UML, но могут быть построены с помощью PlantUML.
Диаграмма сущностей-связей (ER Diagram)
ER-диаграммы используются для проектирования и визуализации структур баз данных. В PlantUML это можно сделать с помощью встроенных возможностей.
Мне кажется очень быстрым и удобным построением ER-диаграмм таким образом, так как отрисовка графики вручную занимает немало времени. На PlantUML достаточно скопировать наименование полей и их типов из базы данных, дополнив их простым оформлением.
@startuml
entity "User" {
* user_id : NUMBER
--
username : VARCHAR
email : VARCHAR
password : VARCHAR
}
entity "Order" {
* order_id : NUMBER
--
user_id : NUMBER
order_date : DATE
total : DECIMAL
}
entity "Product" {
* product_id : NUMBER
--
name : VARCHAR
price : DECIMAL
}
User ||--o{ Order
Order ||--o{ Product
@enduml
Диаграмма регулярных выражений (RegExp)
Диаграммы регулярных выражений помогают визуализировать и отлаживать шаблоны для работы со строками, что особенно полезно для составления сложных регулярных выражений.
@startregexp
^([A-Za-z0-9]+)\.([A-Za-z]{2,4})$
@endregexp
Этот пример иллюстрирует регулярное выражение для валидации доменных имен, например, «example.com» или «site.org». Разберем его по частям:
^
— начало строки.([A-Za-z0-9]+)
— одна или более букв (верхний и нижний регистр) или цифр, которые составляют первую часть домена.\.
— точка (специальный символ, поэтому требуется экранирование).([A-Za-z]{2,4})
— от 2 до 4 букв (например, «com», «org», «net»).$
— конец строки.
Очень удобная функция PlantUML, так как позволяет быстро построить схематичное отображение значений регулярного выражения.
PlantUML использует упрощенную версию регулярных выражений, и не все возможности стандартных регулярных выражений поддерживаются. Например, такие конструкции как обратные ссылки (например, \1
для обращения к первым группам) или жадные и не жадные квантификаторы (например, .*?
) могут не поддерживаться.
Ментальные карты (Mindmap)
Mindmap — это диаграмма для визуализации идей и процессов, которая позволяет структурировать информацию, упрощая планирование, принятие решений и мозговые штурмы.
@startmindmap
* План разработки
** Анализ
*** Сбор требований
*** Обсуждение с заказчиком
** Разработка
*** Дизайн интерфейса
*** Написание кода
** Тестирование
*** Модульное тестирование
*** Интеграционное тестирование
** Выпуск
*** Подготовка релиза
*** Документация
@endmindmap
Как и для многих диаграмм на PlantUML здесь хочется отметить простую реализацию и отсутствие затратов времени на создание графика вручную. Несмотря на то, что сейчас существует множество инструментов для работы с mindmap, PlantUML здесь не уступает в удобстве работы.
JSON-диаграмма
JSON (JavaScript Object Notation) — это формат данных, который часто используется для обмена информацией между сервером и клиентом, а также для хранения данных в приложениях.
Преимущества работы PlantUML с json заключается в том, что можно поместить любой, даже очень сложный по структуре json, между ключевыми словами startjson
и endjson
и получить наглядную структурную схему.
@startjson
{
"user": {
"id": 1234,
"name": "John Doe",
"email": "john.doe@example.com",
"roles": ["admin", "user"],
"preferences": {
"theme": "dark",
"notifications": true,
"language": "en"
}
},
"settings": {
"privacy": "high",
"security": "enabled"
},
"subscriptions": [
{
"service": "Premium Plan",
"start_date": "2024-01-01",
"status": "active"
},
{
"service": "Basic Plan",
"start_date": "2023-06-15",
"status": "inactive"
}
]
}
@endjson
YAML-диаграмма
YAML (YAML Ain’t Markup Language) — это формат данных, используемый для хранения и передачи данных. Он часто применяется в конфигурационных файлах.
Аналогично JSON-диаграмме необходимо поместить содержимое yaml между ключевыми словами startyaml
и endyaml
для создания структурной схемы файла.
@startyaml
project:
name: "My project"
version: "1.0"
description: "A description of the project"
dependencies:
- name: "Service A"
version: "2.3"
config:
timeout: 300
retries: 5
- name: "Service B"
version: "1.0"
config:
timeout: 100
retries: 3
settings:
logging: true
debug: false
apiEndpoint: "https://api.myproject.com/v1"
@endyaml
Подведем итоги
В этой статье мы рассмотрели разнообразные способы визуализации данных с использованием PlantUML, включая диаграммы типов Mindmap, JSON, YAML, ER (Entity-Relationship) и регулярных выражений (RegExp). Каждый из этих форматов имеет свои особенности и применения. С помощью диаграмм в PlantUML можно легко представить сложные структуры данных и взаимосвязи.
ER-диаграммы дают четкое представление о сущностях и их отношениях, что критически важно для проектирования баз данных и систем.
RegExp-диаграммы визуализируют сложные регулярные выражения, делая их более понятными и удобными для анализа и обучения.
Mindmap позволяет наглядно представлять идеи и их взаимосвязи, что полезно для планирования, мозговых штурмов и объяснения концепций.
JSON и YAML используются для структурированных данных, и их визуализация помогает лучше понять иерархии и зависимости между элементами конфигураций или данных.
В завершение делюсь расширением для Visual Studio Code, которое использую для генерации диаграмм.
Удачи в работе с PlantUML!
IT Talks | Ошуркова Татьяна
t.me