Используем PlantUML не по назначению: рисуем маппинг данных с помощью диаграммы класса
Когда у вас docs as code, хочется, чтобы все было прямо по «докс экс кодовски», в частности, чтобы диаграммы и схемы тоже рисовались кодом.
Ниже — пример того, как можно изображать маппинг данных с помощью диаграммы классов. Достаточно использовать несколько ухищрений и «костылей», чтобы получать довольно неплохие результаты.
Вот так выглядит код (если нужны пояснения, обращайтесь):
@startuml hide circle left to right direction class Structure_1 { field_1 -- field_2 -- field_3 } class Structure_2 { field_1 -- field_2 -- field_3 } package transform <<Rectangle>> #yellow { } package "addition data" <<Rectangle>> #purple { } package "data transform" <<Rectangle>> #blue { } Structure_1::1 -down[#white]-> transform Structure_1::1 -down-> transform Structure_1::1 -down[#white]-> transform transform -down-> Structure_2::1 Structure_1::2 -> Structure_2::2 Structure_1::3 -down-> "data transform" "data transform" -down-> Structure_2::3 "addition data" -down->
А так — результат (маппинг данных):

Какие нюансы нужно учесть:
1. Активно «играйте» связями: они помогают двигать объекты на диаграмме.
2. Используйте невидимые элементы и связи.
Сначала это кажется сложно. Но позже, когда освоишь ухищрения и «костыли», рисовать настоящие шедевры. И тогда у час будет полнейший docs as code.
Похожее можно рисовать и в graphviz, но там синтаксис потяжелее будет. Как? Могу показать.