Inhalt
- Ziel dieses Dokuments
- Demo-Szenario (inhaltlich bewusst einfach)
- Demo-Kontext kurz erklärt
- Erklärung zum Flowchart (Strukturdiagramm)
- Erklärung zum Sequence Diagram (Ablaufdiagramm)
- Warum ein gemeinsames Demo-Szenario sinnvoll ist
- Typische Fehler beim Bibliothekenvergleich
- Hinweis zum inhaltlichen Scope
- Zusätzliches Diagramm: Knoten in eine verkettete Liste einfügen
- Zusätzliches Diagramm: ER-Modell fuer einen einfachen Webshop
- Interaktive Grafik mit Plotly.js
- Alternative mit Vega-Lite (JSON)
- Alternative mit mehr Layout-Kontrolle: Cytoscape.js
- Alternative mit AntV G6
- Alternative mit ECharts
Diagramm-Bibliotheken im Vergleich
Ziel dieses Dokuments
In diesem Dokument steht der Vergleich unterschiedlicher Diagramm-Bibliotheken im Vordergrund.
Das fachliche Beispiel (MVC + verkettete Liste) dient nur als gemeinsamer Testfall, damit Unterschiede bei Layout, Syntax und Interaktivität sichtbar werden.
Verglichen werden insbesondere:
- Ausdrucksstärke der Syntax
- Kontrolle über Positionierung/Layout
- Interaktivität (Zoom, Hover, Drag)
- Aufwand für Einbindung und Wartung
- Eignung für statische Doku vs. App-UI
Demo-Szenario (inhaltlich bewusst einfach)
--- title: MVC-Framework --- flowchart TD User([User]) Controller[Controller] Model[Model] View[View] User -- "Request" --> Controller Controller -- "Request Data" --> Model Model -- "Response Data" --> Controller Controller -- "Send Data" --> View View -- "Response" --> User %% Styling to better match the visual positions in the image linkStyle 0 stroke-width:1px,fill:none,stroke:black; linkStyle 1 stroke-width:1px,fill:none,stroke:black; linkStyle 2 stroke-width:1px,fill:none,stroke:black; linkStyle 3 stroke-width:1px,fill:none,stroke:black; linkStyle 4 stroke-width:1px,fill:none,stroke:black;
MVC steht für Model, View, Controller und ist hier nur das gemeinsame Beispielszenario für die Bibliotheksvergleiche.
Model: verwaltet Daten und Geschäftslogik.View: stellt Daten für Benutzer:innen dar.Controller: verarbeitet Requests und koordiniert Model und View.
Die inhaltliche Tiefe ist absichtlich reduziert, damit der Fokus auf der Visualisierung bleibt.
Demo-Kontext kurz erklärt
Model
Das Model enthält die Fachlogik der Anwendung, z. B.:
- Regeln (Validierung, Berechnungen, Zustände)
- Zugriff auf Datenbank oder andere Datenquellen
- Datenobjekte (z. B.
User,Produkt,Bestellung)
Wichtig: Das Model kennt keine Benutzeroberfläche. Es arbeitet daten- und regelorientiert.
View
Die View zeigt Informationen an und sorgt für eine verständliche Ausgabe:
- HTML-Seiten im Web
- JSON-Antworten für APIs
- Formulare, Tabellen, Statusmeldungen
Die View sollte möglichst wenig Logik enthalten. Fachregeln gehören ins Model.
Controller
Der Controller ist die Schnittstelle zwischen Benutzeranfrage und Anwendung:
- nimmt HTTP-Requests entgegen
- validiert Eingaben (oder stößt Validierung an)
- ruft passende Model-Methoden auf
- wählt die richtige View und übergibt Daten
Der Controller trifft Ablaufentscheidungen, speichert aber keine Fachlogik dauerhaft.
Erklärung zum Flowchart (Strukturdiagramm)
--- Title: MVC-Framework --- flowchart TD U([🖥️ User / Browser]) -->|1. HTTP Request| C(Controller) C -->|Validiert Input & steuert Ablauf| M(Model) M -->|Lädt/Speichert Daten| D[(Datenbank)] D --> M M -->|Business-Daten| C C -->|Wählt View + übergibt Daten| V(View) V -->|HTML/JSON Response| U classDef userClass fill:#5499C7,stroke:none; class U userClass; classDef dbClass fill:#f0f0f0,stroke:#999999; class D dbClass;
Das Flowchart zeigt die statische Sicht auf MVC:
- Der
User/Browsersendet eine Anfrage an denController. - Der
Controllerverwendet dasModel, um Daten zu lesen oder zu ändern. - Das
Modelkommuniziert mit derDatenbank. - Das Ergebnis geht zurück zum
Controller. - Der
Controllerübergibt Daten an dieView. - Die
Viewerzeugt die Antwort für den Browser.
Merksatz: Controller steuert, Model rechnet, View zeigt.
Erklärung zum Sequence Diagram (Ablaufdiagramm)
Das Sequence Diagram zeigt die dynamische Sicht, also die zeitliche Reihenfolge derselben Schritte.
- Jeder Pfeil ist eine konkrete Nachricht zwischen Komponenten.
autonumbernummeriert die Schritte automatisch.- Die Rückgaben (
-->>) zeigen, wann Ergebnisse zurückkommen.
Für Schüler:innen wichtig: Dieses Diagramm hilft beim Debuggen, weil man genau sieht, wer wann mit wem kommuniziert.
Warum ein gemeinsames Demo-Szenario sinnvoll ist
- Alle Bibliotheken visualisieren denselben Ablauf und sind dadurch direkt vergleichbar.
- Unterschiede in Lesbarkeit, Layoutkontrolle und Setup-Aufwand werden klarer.
- Entscheidungen für künftige Projekte lassen sich auf Basis desselben Beispiels treffen.
Typische Fehler beim Bibliothekenvergleich
- Unterschiedliche Beispieldaten pro Library verwenden (kein fairer Vergleich)
- Ein Tool mit Auto-Layout mit einem manuell platzierten Layout vergleichen
- Performance ohne gleiche Datenmenge vergleichen
- Setup-Aufwand (CDN, Bundle, Rendering) in der Bewertung ignorieren
Praxisregel: Gleicher Use Case, gleiche Daten, gleiche Zielgröße ergibt den fairsten Vergleich.
Hinweis zum inhaltlichen Scope
Die folgenden Inhalte sind keine vollständige MVC-Lerneinheit, sondern technische Beispielvisualisierungen für den Vergleich der Bibliotheken.
Zusätzliches Diagramm: Knoten in eine verkettete Liste einfügen
Kurz erklärt:
- Neuer Knoten
Xwird erstellt. X.nextzeigt auf den bisherigen Nachfolger vonB(alsoC).B.nextwird aufXumgebogen.
Wichtig: Genau diese Reihenfolge verhindert, dass der Rest der Liste verloren geht.
Zusätzliches Diagramm: ER-Modell fuer einen einfachen Webshop
Das ER-Diagramm bildet den Kern eines einfachen Shop-Backends ab:
- Ein
Kundekann mehrereBestellungenundAdressenhaben. - Eine
Bestellungbesteht aus mehrerenBestellpositionen. - Jede
Bestellpositionverweist auf genau einProdukt. - Produkte sind in
Kategorieneingeordnet. - Eine
Bestellungkann optional eineZahlunghaben.
Interaktive Grafik mit Plotly.js
Neben Mermaid kann auch Plotly.js eingebunden werden. Hier erfolgt die Beschreibung des Diagramms als JSON.
Alternative mit Vega-Lite (JSON)
Vega-Lite ist deklarativ: Das Diagramm wird vollständig als JSON-Spec beschrieben.
Alternative mit mehr Layout-Kontrolle: Cytoscape.js
Bei Cytoscape.js kannst du Positionen, Knotenstile und Kanten sehr gezielt steuern.
Vergleich: Cytoscape.js mit Auto-Layout
Hier wird dieselbe Struktur mit automatischem Layout (breadthfirst) erzeugt.
Alternative mit AntV G6
AntV G6 eignet sich gut, wenn du Nodes, Kanten, Labels und Interaktion sehr fein steuern willst.
Alternative mit ECharts
ECharts ist stark für interaktive Datenvisualisierung und unterstützt auch Graph-Diagramme.
- Diagramm-Bibliotheken im Vergleich