Используем 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, но там синтаксис потяжелее будет. Как? Могу показать.