S
SberHealth ИТ
@sberhealthIT1.2K подп.
221просмотров
18.4%от подписчиков
27 марта 2026 г.
📷 ФотоScore: 243
Цветовая палитра классов в PlantUML Лев Лейман, ведущий бэкенд-разработчик, продолжает делитсья лайфхаками по работе со схемами в PlantUML 😍 Сегодня поговорим о приёмах, которые помогут наглядно показать по схеме, что изменится в коде. Передаём слово Льву: «Снова немного про схемы классов в PlantUML. На этот раз поиграемся с цветами. Прежде чем браться за разработку более-менее крупной фичи, мы предварительно планируем изменения в кодовой базе. Это помогает декомпозировать задачи и точнее оценивать их, но сейчас не об этом. В схеме описывается, что и как меняется, связи между классами. Для большей наглядности и удобства мы помечаем вид изменения у класса через шаблоны. Пример: set namespaceSeparator / !pragma useIntermediatePackages false class /Sberhealth/Application/OrderService<<New>> class /Sberhealth/Application/UserService<<Mod>> class /Sberhealth/Application/ExternalUserService<<Del>> class /Sberhealth/Application/UserDto<<Gen>> Эти отметки (New, Mod, Del, Gen) помогают понять, будет ли класс добавлен, изменён, удалён или сгенерирован в ходе разработки (да, часть кода иногда может быть сгенерирована, например, по схеме OpenAPI, и это полезно отразить). Сами по себе они теряются. Как сделать их заметнее? Добавить им цвет 🤔 Цвет можно настроить для каждого шаблона, например, зелёным выделить то, что отмечено как New, и вот схема обретает совсем другой вид. set namespaceSeparator / !pragma useIntermediatePackages false skinparam class { BorderColor<<New>> Green BorderThickness<<New>> 2 BorderColor<<Mod>> DodgerBlue BorderThickness<<Mod>> 2 BorderColor<<Del>> Red BorderThickness<<Del>> 2 BorderColor<<Gen>> Violet BorderThickness<<Gen>> 2 } class /Sberhealth/Application/OrderService<<New>> class /Sberhealth/Application/UserService<<Mod>> class /Sberhealth/Application/ExternalUserService<<Del>> class /Sberhealth/Application/UserDto<<Gen>> Теперь схема легко читается даже в метре от монитора и понятен общий масштаб будущих изменений — как много нового появится или сколько же всего будет удалено. Такую цветовую схему мы используем у себя. Но можно пойти дальше и добавить, ну скажем, градиент... 🤪 set namespaceSeparator / !pragma useIntermediatePackages false skinparam class { BorderColor<<New>> Green BorderThickness<<New>> 2 BackgroundColor<<New>> LightGreen/Green BorderColor<<Mod>> DodgerBlue BorderThickness<<Mod>> 2 BackgroundColor<<Mod>> LightBlue-Blue BorderColor<<Del>> Red BorderThickness<<Del>> 2 BackgroundColor<<Del>> Pink&#092;Red BorderColor<<Gen>> Violet BorderThickness<<Gen>> 2 BackgroundColor<<Gen>> Gold|Violet } class /Sberhealth/Application/OrderService<<New>> class /Sberhealth/Application/UserService<<Mod>> class /Sberhealth/Application/ExternalUserService<<Del>> class /Sberhealth/Application/UserDto<<Gen>> Хорошо, что текст не может мигать или двигаться 😁 трюк выполнен профессионалами, не повторяйте этого С этим нужно быть осторожным, в порыве творчества текст может оказаться нечитаемым, это как-никак схема. Да и на дворе уже не нулевые. Вот ещё один полезный приём работы с PlantUML в копилку. Используйте, и ваша схема останется простой, но при этом по ней сразу будет виден масштаб изменений. Пишите в комментариях который час.»
221
просмотров
3235
символов
Да
эмодзи
Да
медиа

Другие посты @sberhealthIT

Все посты канала →
Цветовая палитра классов в PlantUML Лев Лейман, ведущий бэке — @sberhealthIT | PostSniper