Skip to content

Anti-Patterns & technische Schulden

Bekannte Limitierungen der Ist-Architektur mit Workaround und Soll-Vorschlag.

AP-01 Stereotyp-Casing { #ap-01-stereotyp-casing }

Status: ⚠️ Teilweise
Ebene: Molekül / Stereotyp

Problem: Inkonsistente Schreibweise:

Kontext Ist Soll (kanonisch)
Sequence Participant <<External>> <<external>>
Use Case <<External>> <<external>>
Class, agent, database, card <<external>> <<external>>

Workaround (Autor): <<external>> verwenden; in Sequence ggf. beide Varianten testen.

Soll (Maintainer): Alle skinparam-Stereotyp-Keys auf <<external>> vereinheitlichen (Minor-Release).

Implementierung: doubleslash-gen2.puml Z. 399–402, 460–462, 535–537, 555–557, 580, 645–646

AP-02 Hardcoded style blocks { #ap-02-hardcoded-style-bloecke }

Status: ⚠️ Teilweise
Ebene: Organismus
Geltung: Mindmap, WBS (teilweise Gantt closed)

Problem: <style> kann keine $-Variablen referenzieren → Light-only-Hex-Werte:

  • #D7E9F4, #515151, #00A5E1, white, black, #8A9DB3

Workaround (Autor): Für Dark-Mode eigenes <style>-Override nach Include; oder Light-Mode erzwingen.

Soll (Maintainer): Separate mindmap-dark.puml / conditional style files; oder PlantUML-Feature abwarten.

Implementierung: doubleslash-gen2.puml Z. 718–795, 854–857

AP-03 colors.puml nicht eingebunden { #ap-03-colorspuml-nicht-eingebunden }

Status: 📋 geplant
Ebene: Atom

Problem: doubleslash/colors.puml definiert erweiterte CI-Farben ($DS_CYAN, $DS_GREEN, …), wird aber nicht von Gen2 included.

Workaround: Nur Tokens aus doubleslash-gen2.puml verwenden.

Soll (Maintainer): colors.puml in Gen2 einbinden oder Duplikate entfernen.

AP-04 Globale Layout-Pragmas { #ap-04-globale-layout-pragmas }

Status: ⚠️ Teilweise
Ebene: Organismus (querwirkend)

Problem: !pragma layout smetana und skinparam Linetype ortho gelten global, nicht nur für System-Diagramme.

Workaround (Autor): skinparam Linetype polyline lokal setzen wenn nötig.

Soll (Maintainer): Pragmas in puml-theme-gen2-system.puml verschieben (Minor, ggf. visuelle Regression).

Implementierung: doubleslash-gen2.puml Z. 706–707

AP-05 Rectangle-Override-Konflikt { #ap-05-rectangle-override-konflikt }

Status: ⚠️ Teilweise
Ebene: Bundle-Override vs. Use Case

Problem: Use-Case-Systemgrenzen (!startsub rectangle: BorderThickness 0) kollidieren mit System-Bundle (blaue Borders, Thickness 1).

Workaround: Use-Case-Diagramme ohne System-Bundle; nur doubleslash-gen2.puml.

Soll (Maintainer): System-Bundle scoped auf C4-Stereotypen, nicht globales Rectangle.

AP-06: Legacy Root-Themes

Status: ✅ dokumentiert (Deprecation)
Ebene: Template

Problem: puml-theme-doubleslash-*.puml im Repo-Root leiten auf Gen2 um, sind aber deprecated.

Workaround: Migration zu Gen2-URLs — siehe Theme usage.

Soll: Major-Release entfernt Redirects; SemVer in Versionierung.

AP-07: Sequence TitleFontColor

Status: ⚠️ Workaround aktiv
Ebene: Organismus

Problem: Sequence-Titel übernimmt globale TitleFontColor nicht zuverlässig.

Workaround: Explizites TitleFontColor $FGCOLOR in !startsub sequence.

Implementierung: doubleslash-gen2.puml Z. 365–366

AP-08: Inline-Farben in Golden Samples

Status: 📋 Beispiel-Schuld
Ebene: Page

Problem: piprocess.puml nutzt <color:red> in Bedingungen.

Workaround: Nicht als Style-Vorbild kopieren.

Soll: Golden Sample bereinigen in separatem PR.