🐱 Über den Autor

Udon Soba

Als japanischer Einzelentwickler entwickle ich Software aus der Perspektive eines Künstlers

Empfohlene Layouts

Overview-Voreinstellung

Overview – Komplexität und erweiterte Metriken hervorheben

CallGraph-Voreinstellung

CallGraph – Aufrufbeziehungen sichtbar machen

Category-Voreinstellung

Category – Kategorien-Bänder und Gruppierung

Erweiterte Metriken

Technische Schulden und Code-Smells

Übersicht: technische Schulden und Code-Smells

Detail-Liste der Probleme

Detail-Liste mit Priorität

Dokumente

Seitenleiste: Dokumente

Seitenleiste „Dokumente”

Sprachauswahl im Handbuch

Handbuch – Sprachauswahl

Auswahl-Zusammenfassung

Auswahl-Zusammenfassung Panel

Zeigt Nodes/Functions/Lines, Øcc/Ønest, Score-Summe, max. Tiefe

Letzte Aktualisierung: 29. August 2025
CodeGarden Icon

CodeGarden

JavaScript/TypeScript Code Visualizer

Einführung

CodeGarden ist eine Desktop-Anwendung, die JavaScript/TypeScript-Quellstrukturen durch "Sterne und Linien"-Visualisierung überblickt und analysiert. Funktionen und Blöcke werden als Knoten gezeichnet, während Hierarchien und Aufrufbeziehungen als Kanten dargestellt werden. Sie können schnell Einblicke in Design und Refactoring gewinnen, indem Sie zwischen mehreren Render-Mustern und visuellen Stilen wechseln.

Sprachunterstützung: Derzeit werden JavaScript (ES6+) und TypeScript vollständig unterstützt. Andere Sprachdateien können Syntax-Parsing-Fehler verursachen.

Schnellstart

  1. Starten Sie die App und klicken Sie auf Open File oben links oder ziehen Sie eine JavaScript/TypeScript-Quelldatei per Drag & Drop.
  2. Wählen Sie bei Bedarf Analyzer (Basic / CallGraph / MetricsExt / MultiLang / Category-Aware) und Render Pattern.
  3. Verwenden Sie Drag (Bewegung), Rad (Zoom) und Doppelklick (Auswahl & Code-Anzeige) auf der Leinwand zum Erkunden.
Unterstützte Dateiformate: JavaScript (.js), TypeScript (.ts), JSX (.jsx), TSX (.tsx) Dateien werden vollständig unterstützt.
Sterne = Knoten (Funktionen/Blöcke) / Linien = Hierarchie & Aufrufe Grundlegende Operationen ・Ziehen: Bewegen ・Mausrad: Vergrößern/Verkleinern ・Doppelklick: Stern auswählen & Code in separatem Fenster anzeigen ・Esc: Auswahl aufheben

Quellcode-Viewer-Funktion

Quellcode-Viewer - Funktionsdefinition

Quellcode-Viewer - Detaillierte Anzeige der Funktionsdefinition

Quellcode-Viewer - Fehlerbehandlung

Quellcode-Viewer - Anzeige des Fehlerbehandlungsteils

CodeGarden App-Bildschirm

Tatsächlicher CodeGarden-Anwendungsbildschirm - Linkes Steuerungspanel und rechte Code-Visualisierung

Verschiedene Anwendungsbildschirme

Category-Aware-Analyse

Category-Aware-Analyse

Pastel-Stil

Pastel-Stil

Grid/Depth-Muster

Grid/Depth-Muster

Bildschirmaufbau

📱 Tatsächliche Anwendungsbildschirme

Hauptbildschirm

CodeGarden Hauptbildschirm

Linkes Steuerungspanel und rechte Code-Visualisierung

Star Density-Funktion

Star Density-Funktion Details

Star Density-Schieberegler zur Anpassung der Knotendichte

Seitenleiste

  • Controls: Open File / Save JSON / Reset View / Analyzer / Render Pattern / Visual Style
  • Summary: Dateipfad, Zeilenzahl, Funktionsanzahl, maximale Tiefe
  • Selection Summary: Statistiken für ausgewählte Knotengruppe (Zeilenzahl, cc, nest, Score-Summe, maximale Tiefe, usw.)
  • Documents: Verschiedene Dokumente (XML-Spezifikation/Render-Pattern-Anleitung)
  • Language: Englisch / Japanisch / Koreanisch / Chinesisch / Deutsch / Hindi umschalten

Leinwand

  • Knoten und Kanten werden auf weißem Sternenhimmel-Hintergrund gezeichnet.
  • Bei Auswahl werden Beschriftungen und Meta-Informationen (cc/nest/lines/score) angezeigt.
  • Ausgewählte Unterbäume werden schwach hervorgehoben, wodurch das Ganze leichter zu verfolgen ist.

Bedienung und Steuerung

Datei-Operationen

  • Open File: Öffnet JS/TS-Dateien zur Analyse.
  • Drag & Drop: Funktioniert auch durch Ziehen und Ablegen im linken Bereich.
  • Save JSON: Speichert aktuelle Analyseergebnisse als JSON.

Ansichts-Operationen

  • Reset View: Setzt die Kamera auf Zentrum und 1:1-Maßstab zurück.
  • Esc: Auswahl aufheben. Doppelklick: Unterbaum-Auswahl & Code-Anzeige.

Knotendichte-Anpassung

  • Star Density: Kann die Dichte der Sterne (Knoten) anpassen.
  • Dense: Sterne verdichten, um viele Informationen in begrenztem Raum anzuzeigen.
  • Normal: Standarddichte für Balance zwischen Übersichtlichkeit und Informationsmenge.
  • Sparse: Sterne verteilen, um jeden Knoten größer anzuzeigen und Details leichter zu überprüfen.
Star Density-Funktion

Star Density-Schieberegler zur dynamischen Anpassung der Knotendichte

Analyse und Rendering

  • Analyzer:
    • Basic: Struktur und Komplexität (cc/nest, usw.). Führt grundlegende AST-Analyse durch, berechnet Hierarchiestruktur und Komplexität (zyklomatische Komplexität, Verschachtelungstiefe) für Funktionen, Klassen und Blöcke. Leichteste und schnellste Analyse. Enthält auch Spracherkennung und Kategoriebestimmung.
    • CallGraph: Funktionsaufruf-Beziehungen. Analysiert Aufrufbeziehungen zwischen Funktionen und konstruiert Abhängigkeitsgraphen. Liefert Metriken wie In-Degree/Out-Degree, Fan-In/Fan-Out für Funktionen. Generiert sowohl Hierarchie- als auch Aufruf-Kanten.
    • MetricsExt: Detaillierte Metriken wie Anweisungen und Verzweigungen. Berechnet detaillierte Metriken wie Anweisungsanzahl, Verzweigungsanzahl, Schleifenzahl, Return-Anweisungsanzahl, Exception-Behandlungsanzahl, Switch-Anweisungsanzahl usw. Konvertiert Code-Qualitätsindikatoren in numerische Form. Erkennt auch sprachspezifische Syntax-Elemente.
    • MultiLang: Führt TypeScript-Unterstützungsanalyse durch, erkennt ordnungsgemäß TypeScript-spezifische Syntax-Elemente (Interfaces, Generics, Decorators, Enums, Type Aliases usw.). Unterstützt Sprachmerkmale von JavaScript und TypeScript.
    • Category-Aware: Führt kategoriebewusste intelligente Analyse durch, liefert Analyseergebnisse unter Berücksichtigung der Knotenwichtigkeit und -beziehungen. Enthält automatische Berechnung von Kategoriestatistiken und JavaScript/TypeScript-spezifische Kategoriezuordnung.
  • Render Pattern: v1..v10 Anordnung (später beschrieben).
  • Visual Style: v1..v4 Farbe, Form und Linien-Darstellung (später beschrieben).
  • Layout-Insights: Zeigt nach jeder Änderung automatisch das aktuelle Render-Pattern, den gewählten Analyzer und die Dichte im Seitenbereich – ideal für schnelle Statuskontrollen oder Abstimmungen im Team.
  • Layout-Presets: Drei Presets (Overview / CallGraph / Category) setzen Analyzer, Render-Pattern, Visual Style und Dichte mit einem Klick. Wenn bereits eine Datei geöffnet ist, wird sofort die passende Analyse erneut ausgeführt.
  • Erweiterte Metriken: Übersichtskarten für technische Schulden und Code-Smells plus Detail-Listen (Deckungsgleich mit dem Quality Report) zeigen Hotspots und Ursachen auf einen Blick.
  • Call-Graph-Panel: Wird eingeblendet, sobald CallGraph-Daten vorliegen, und listet bis zu 20 Aufrufbeziehungen (Funktion, Aufrufer, Zeile) tabellarisch für eine schnelle Abhängigkeitsanalyse.

Render-Muster (v1..v13)

Nachfolgend eine Zusammenfassung der wichtigsten Punkte. Details finden Sie in der App unter "Render Pattern Spec".

Grundlegende Muster

v1 Radial

Optimal für Gesamtüberblick. Kompaktes Skelett.

v2 Konzentrische Kreise

Ordnet Ebenen nach Tiefe an, gut für Vergleiche.

v3 Ring + Mikro-Jitter

Bricht Überlappungen leicht auf für verbesserte Sichtbarkeit.

v4 Spirale

Überblick über Wachstumsmuster und Dichte-Atmosphäre.

v5 Um Eltern gruppiert

Zeigt verwandte Elemente in der Nähe an.

Erweiterte Muster

v6 Gitter

Ordnet nach Tiefe an. Gut zum Überprüfen von Verzerrungen.

v7 Sonnenstrahl

Breitet sich basierend auf Gewicht aus (Zeilenzahl/Nachkommenanzahl).

v8 Tiefen-Ringe (Reihenfolge beibehalten)

Überblick ohne Geschwister-Beziehungen zu zerstören.

v9 Kategorie-Bänder + Diffusion

Trennt Funktionen/Blöcke während Überlappungen unterdrückt werden.

v10 Aufruf-fokussiert

Kreisförmige Anordnung + einfache Kraft für CallGraph.

Hochmoderne Muster

v11 TypeScript-Optimiert

Spezialisiertes Layout für TypeScript-Dateien, optimiert für komplexe Typstrukturen und Interfaces.

v12 Kategorie-verstärkt

Wichtigkeit-basierte Bandanordnung, Untergruppierung. Automatische Anordnung basierend auf Kategoriehäufigkeit.

v13 Erweiterte Goldene Winkel

TypeScript/JavaScript-optimierte Goldene-Winkel-Anordnung. Kategoriebasierte Radiusanpassung inklusive optimiertes Layout.

Visuelle Stile (v1..v4)

Überblick

  • v1: Basis (kühles Farbschema).
  • v2: Warm Sunset (warme Farben + Halo/Sonnenstrahl).
  • v3: High Contrast (lebendige Knoten / monochrome Neon-gestrichelte Kanten).
  • v4: Pastell (weiche aquarellartige Darstellung).
Hinweis: Das Zeichnen wird automatisch basierend auf Zoom und Knotenanzahl optimiert (Sichtbarkeit bleibt erhalten).

Legende

Funktionen (z.B. v1)
Bedingungen/Verzweigungen (z.B. v2)
Schleifen (z.B. v3)
Switch/andere (z.B. v4)

Tatsächliche Stilbeispiele

Style v3 (High Contrast)

Style v3 (High Contrast) - Lebendige Knoten, Neon-gestrichelte Kanten

Style v4 (Pastel)

Style v4 (Pastel) - Weiche aquarellartige Darstellung

Zusammenfassung/Auswahl-Zusammenfassung

Zusammenfassungs-Panel

  • File: Pfad der analysierten Datei
  • Lines: Gesamte Zeilenzahl
  • Functions: Funktionsanzahl
  • Max depth: Maximale Tiefe des Baums
  • Language: Erkannte Programmiersprache
  • Categories: Funktion, Klasse, Kontrollfluss-Aufschlüsselung

Auswahl-Zusammenfassung

  • Nodes / Blocks / Functions
  • Total lines und eindeutige Zeilenzahl ohne Duplikate
  • Avg nest: Durchschnittliche Verschachtelungstiefe der ausgewählten Knoten (zeigt Code-Komplexität an)
  • Category breakdown: Detaillierte Aufschlüsselung nach Funktion, Klasse, Kontrollfluss
  • Duplicate removal algorithm: Entfernt automatisch doppelte Codeblöcke für genaue Metriken
  • Avg cc (durchschnittliche zyklomatische Komplexität), Avg nest
  • Score sum (zusammengesetzter Index für Sichtbarkeit), Max depth

Analyse-Daten XML (Zusammenfassung)

Intern konvertiert die App Analyseergebnisse in ein einheitliches Format (XML v2) und rekonstruiert sie während des Renderings.

summary

  • totalLines, filePath, functionCount, maxDepth, deadCodeCount

node

  • Attribute: id, kind, category, name
  • loc: start, end, lines
  • complexity: cyclomatic, nestingDepth
  • layout: depth, angle, radius
  • metrics (erweitert): Beliebige numerische Attribute einschließlich Anweisungsanzahl, Verzweigungsanzahl, Schleifenzahl, Return-Anzahl, Exception-Anzahl, Switch-Anzahl
  • language: Erkannte Programmiersprache (JavaScript/TypeScript)
  • category: Knotenkategorie (Funktion, Klasse, Kontrollfluss usw.)

edge

  • Attribute: id, kind (hierarchy / call), from, to

Details finden Sie in der App unter "XML Spec (XML_FORMAT.md)".

Datenformat und interne Verarbeitung

Internes Datenformat

Die Anwendung verwendet intern das XML v2-Format für Datenaustausch und Persistierung. Dieses Format liefert umfassende Informationen über Codestruktur, Metriken und Beziehungen.

Technische Spezifikationen

  • XML v2 Standard: Einheitliches Format für alle Analyseergebnisse
  • Datenpersistierung: Analyseergebnisse können gespeichert und geladen werden
  • Export-Optionen: JSON-Format für externe Nutzung, XML für interne Spezifikationen
  • Versionskompatibilität: Rückwärtskompatibel mit vorherigen Formaten
Hinweis: Datenpersistierung ist derzeit auf Session-Speicher beschränkt. Für dauerhafte Speicherung verwenden Sie die Export-Funktionen.

Leistung und Tipps

  • Bei sehr großen Knotenanzahlen verwenden Sie v6 (Gitter) oder v9 (Kategorie-Bänder) für den Überblick → zoomen Sie in interessante Bereiche.
  • Stile v2~v4 enthalten Dekorationen. Sie werden automatisch basierend auf Zoom und Knotenanzahl optimiert.
  • Bei vielen Aufruflinien macht das Umschalten auf etwas anderes als v10 es einfacher zu sehen.
  • Für TypeScript-Dateien verwenden Sie v11 oder v13 für optimale Leistung und Layout.

Fehlerbehebung

  • Nichts wird angezeigt: Quelle hat wenig Struktur / Parsing fehlgeschlagen. Versuchen Sie es mit einer anderen Datei.
  • Langsam: Dekorationen werden während der Gesamtanzeige optimiert. Wechseln Sie zu v6 oder v9 und zoomen Sie hinein, um Details zu überprüfen.
  • Zentrum verschiebt sich (v6): Neueste Version korrigiert Gitter, um es auf Ursprung zu zentrieren.
  • Unvollständige TypeScript-Analyse: Verwenden Sie MultiLang oder Category-Aware Analyzer für bessere TypeScript-Unterstützung.
  • Langsames Rendering bei großen Dateien: Verwenden Sie v12 (Leistungsorientiert) Muster für bessere Leistung.

FAQ

Q. Was ist Score?

Es ist ein Sichtbarkeitsindex, der Zeilenzahl, Komplexität usw. integriert. Größere Werte werden als prominente Knoten gezeichnet und werden zu Fokus-Kandidaten.

Q. Sollte ich XML oder JSON verwenden?

JSON ist praktisch für die Wiederverwendung von Analysen außerhalb der App. XML ist das interne Standardformat, gut zum Überprüfen von Spezifikationen.

Q. Welches Muster soll ich wählen?

Beginnen Sie mit v1/v9 für den Überblick → wenn Dichte oder Beziehungen besorgniserregend sind, versuchen Sie v10 → für detaillierte Vergleiche verwenden Sie v2/v6. Für TypeScript-Dateien bieten v11/v13 optimierte Layouts.

Analyzer-Details

Basic Analyzer

Führt grundlegende AST-Analyse durch, berechnet Hierarchiestruktur und Komplexität (zyklomatische Komplexität, Verschachtelungstiefe) für Funktionen, Klassen und Blöcke. Leichteste und schnellste Analyse. Enthält auch Spracherkennung und Kategoriebestimmung.

CallGraph Analyzer

Analysiert Aufrufbeziehungen zwischen Funktionen und konstruiert Abhängigkeitsgraphen. Liefert Metriken wie In-Degree/Out-Degree, Fan-In/Fan-Out für Funktionen. Generiert sowohl Hierarchie- als auch Aufruf-Kanten.

MetricsExt Analyzer

Berechnet detaillierte Metriken wie Anweisungsanzahl, Verzweigungsanzahl, Schleifenzahl, Return-Anweisungsanzahl, Exception-Behandlungsanzahl, Switch-Anweisungsanzahl usw. Konvertiert Code-Qualitätsindikatoren in numerische Form. Erkennt auch sprachspezifische Syntax-Elemente.

MultiLang Analyzer

Führt TypeScript-Unterstützungsanalyse durch, erkennt ordnungsgemäß TypeScript-spezifische Syntax-Elemente (Interfaces, Generics, Decorators, Enums, Type Aliases usw.). Unterstützt Sprachmerkmale von JavaScript und TypeScript.

Category-Aware Analyzer

Führt kategoriebewusste intelligente Analyse durch, liefert Analyseergebnisse unter Berücksichtigung der Knotenwichtigkeit und -beziehungen. Enthält automatische Berechnung von Kategoriestatistiken und JavaScript/TypeScript-spezifische Kategoriezuordnung.

Qualitäts-Score-System

Technische Schulden (Technical Debt)

Berechnet technische Schulden basierend auf Komplexität, Verschachtelungstiefe, Funktionslänge und Parameteranzahl. Die Gesamtsumme wächst mit dem analysierten Code und wird automatisch in die Stufen info / minor / major / critical eingeteilt, um Prioritäten zu setzen.

  • info: 0,00–1,99 — Beobachtung und Tracking
  • minor: 2,00–4,99 — mittelfristige Verbesserungsaufgaben
  • major: 5,00–9,99 — sollte zeitnah adressiert werden
  • critical: ab 10,00 — erfordert sofortiges Handeln

Code-Smells

Folgende Code-Smells werden automatisch erkannt:

  • Lange Funktionen: 50+ Zeilen (S138)
  • Komplexe Funktionen: Zyklomatische Komplexität 10+ (S1541)
  • Tiefe Verschachtelung: Verschachtelungstiefe 5+ (S134)
  • Zu viele Parameter: 5+ (S107)
  • Magic Numbers: Hartcodierte Zahlen (S109)
  • Unbenutzte Variablen: Definiert aber nicht verwendet (S1481)

Wartbarkeits-Index (Maintainability Index)

Wartbarkeits-Index 0-100 basierend auf Halstead Volume, Komplexität, Funktionslänge, Funktionsanzahl und Kategorievielfalt. Höhere Werte bedeuten bessere Wartbarkeit.

Weitere Metriken

  • Code-Duplikationsrate: Funktionsname und zeilenbasierte Duplikatserkennung
  • Kopplung: Stärke der Abhängigkeiten zwischen Modulen
  • Kohäsion: Stärke der Beziehungen innerhalb von Modulen
  • Sicherheits-Score: Erkennung gefährlicher Funktionsnamen und Muster

Tatsächliche Qualitätsbericht-Bildschirme

Qualitätsbericht-Bildschirm

Qualitätsbericht-Bildschirm - Detaillierte Code-Qualitätsanalyse mit Verbesserungsvorschlägen

Sprachunterstützung

Vollständig unterstützte Sprachen

JavaScript (ES6+)

  • Grundlegende Syntax: Funktionen, Klassen, Objekte, Arrays
  • ES6+ Features: Arrow-Funktionen, Klassen, Module, Template-Literale
  • JSX-Unterstützung: Vollständige Unterstützung für JSX-Syntax wie React
  • Erweiterte Features: asynchrone Verarbeitung (async/await), Decorators, dynamische Imports

TypeScript

  • Typsystem: Interfaces, Enums, Generics, Type Aliases
  • Erweiterte Syntax: Decorators, Namespaces, Module-Erweiterungen
  • JavaScript-Kompatibilität: Erbt alle JavaScript-Features
  • Typsicherheit: Compile-Zeit-Typ-Überprüfung und Fehlererkennung
Hinweis: Derzeit werden nur JavaScript/TypeScript vollständig unterstützt. Andere Sprachdateien können Syntax-Parsing-Fehler verursachen.

Derzeit unterstützte sprachspezifische Features

  • JavaScript: ES6+ Features, dynamische Typisierung, prototypbasierte Vererbung, asynchrone Verarbeitung, Arrow-Funktionen, Spread/Rest-Operatoren, Destructuring-Assignment
  • TypeScript: statische Typisierung, erweitertes Typsystem, Interfaces, Generics, Decorators, asynchrone Verarbeitung, TS-spezifische Syntax, Typ-Annotationen

Qualitätssicherung und Testergebnisse

📊 Testergebnisse Überblick

✅ Testergebnisse

  • Test Suites: 28 alle erfolgreich
  • Test Cases: 825 alle erfolgreich
  • Ausführungszeit: 5.858 Sekunden
  • Snapshots: 0

📈 Test Coverage

  • Statements: 66.74%
  • Branches: 61.81%
  • Functions: 72.98%
  • Lines: 70.44%

🔧 Test-Umgebung und Bibliotheken

🧪 Test-Frameworks

  • Jest: Haupt-Test-Framework (v30.0.5)
  • Babel Jest: Test-Unterstützung für ES6+ Syntax
  • Jest Environment JSDOM: Browser-Umgebungssimulation
  • @types/jest: TypeScript-Typ-Definitionen Unterstützung

⚙️ Entwicklungs·Test-Umgebung

  • Node.js: JavaScript-Laufzeitumgebung
  • Electron: Desktop-App-Framework (v38.1.2)
  • Cross-env: Umgebungsvariablen Cross-Platform-Unterstützung
  • Playwright: E2E-Testing Browser-Automatisierung (v1.54.2)
💡 Test-Umgebung Features: Umfassende Test-Umgebung mit Jest als Zentrum aufgebaut. Unit-Tests, Integration-Tests und E2E-Tests werden angemessen getrennt, wobei für jeden optimierte Tools verwendet werden.

🔍 Test-Typen und -Inhalte

🧪 Test-Typen

  • Unit-Tests: bestätigen einzelne Funktionen eine nach der anderen
  • Integration-Tests: bestätigen kollaboratives Arbeiten mehrerer Funktionen
  • E2E-Tests: bestätigen ordnungsgemäßes Arbeiten der gesamten App
  • Coverage-Tests: bestätigen Code-Test-Umfang

📋 Haupt-Test-Inhalte

  • Syntax-Parsing: JavaScript/TypeScript-Syntax-Parsing und AST-Konstruktion
  • Metriken-Berechnung: Komplexität, Zeilenzahl, Verschachtelungstiefe Berechnung
  • Rendering-Engine: Grafik-Zeichnung, Farb-Management, Text-Rendering
  • Interaktion: Maus-Operationen, Auswahl-Funktionen, Zoom-Funktionen

📊 Detaillierte Testergebnisse-Ansicht

📋 Neueste Test-Ausführungsergebnisse

✓ Test Suites: 28 bestanden, 28 gesamt
✓ Tests: 825 bestanden, 825 gesamt
✓ Snapshots: 0 gesamt
⏱️ Zeit: 5.858 s

📊 Test Coverage Details:
✓ Gesamt: 66.74% Statements, 61.81% Branches
✓ Functions: 72.98% (181/248)
✓ Lines: 70.44% (2086/2961)
📁 Haupt-Module:
• Core Analysis: 71.92% Statements
• Export Module: 91.12% Statements
• Renderer Engine: 63.79% Statements
✅ Testergebnisse Zuverlässigkeit: Alle 825 Test-Cases erfolgreich, Ausführungszeit auch schnell bei 5.858 Sekunden. Hochwertige Coverage-Tests der Hauptfunktionen (Analyse·Export·Rendering), stabiler Betrieb garantiert.

🧪 E2E-Tests detaillierte Ansicht

🚀 Electron-Integration-Tests (9 Tests)

  • App-Start: Haupt-Prozess·Renderer-Prozess normaler Start bestätigt
  • IPC-Kommunikation-Tests: Inter-Prozess-Kommunikation Aktion bestätigt und Fehlerbehandlung
  • Fenster-Management: Hauptfenster Anzeige·Verstecken·Größenänderung
  • Dateisystem: Datei-Lesen·Speichern Aktion bestätigt
  • Menü-Operationen: App-Menü Aktion bestätigt

🔧 Funktions-Integration-Tests (32 Tests)

  • Datei-Analyse-Pipeline: Datei-Lesen→Analyse→Anzeige kontinuierlicher Fluss
  • Analyzer-Umschaltung: Basic/CallGraph/MetricsExt/MultiLang Aktion bestätigt
  • Render-Patterns: v1~v13 Anzeige-Patterns Aktion bestätigt
  • Visuelle Stile: v1~v4 Stil-Anwendung Aktion bestätigt
  • Einstellungen-Management: Benutzer-Einstellungen Speichern·Lesen·Anwenden

🎨 Renderer detaillierte Tests (14 Tests)

  • Rendering-Engine: Canvas-Zeichnung·Grafik-Zeichnung·Text-Rendering
  • Interaktion: Maus-Operationen·Tastatur-Operationen·Touch-Operationen
  • Layout-Berechnung: Knoten-Layout·Kanten-Zeichnung·Zoom·Pan
  • Zustands-Management: Auswahl-Zustand·Ansicht-Zustand·Animation-Zustand
  • Leistung: große Knoten-Zeichnung·Speicherverbrauch·Zeichnungs-Geschwindigkeit

📊 Datenverarbeitungs-Tests (16 Tests)

  • XML-Export: Analyseergebnisse XML-Format Ausgabe·Datenintegrität bestätigt
  • Metriken-Berechnung: Komplexität·Zeilenzahl·Verschachtelungstiefe Genauigkeit
  • Kategorie-Klassifizierung: Funktionen·Klassen·Kontrollfluss automatische Identifikation
  • Abhängigkeits-Analyse: Funktionsaufrufe·Vererbungsbeziehungen·Modul-Abhängigkeiten
  • Fehlerbehandlung: ungültige Eingaben·Exception-Behandlung·Wiederherstellung
✅ E2E-Tests Erfolg: Alle 825 Test-Cases erfolgreich, App-gesamter Betrieb umfassend verifiziert. Besonders Hauptfunktionen (Analyse·Rendering·Export) hochwertige Tests, praktisches Niveau Qualitätssicherung erreicht.

🔄 Qualitätsverbesserungs-Herausforderungen

📋 Qualitätsmanagement-Mechanismen

  • Umfassende Tests: bestätigen bestehende Funktionen Aktion auch beim Hinzufügen neuer Features
  • Automatisierte Tests: regelmäßige Aktion bestätigt Qualität aufrechterhalten
  • Benutzer-Feedback: Verbesserungen basierend auf tatsächlichen Nutzungssituationen
  • Kontinuierliche Verbesserung: Stabilität und Zuverlässigkeit Verbesserung fortsetzen

🎯 Qualitätsverbesserungs-Ziele

  • Zuverlässigkeits-Verbesserung: kontinuierlich stabilen Betrieb der Hauptfunktionen garantieren
  • Benutzer-Erfahrung: Benutzerfreundlichkeit und Bedienbarkeit verbessern
  • Leistung: Verarbeitungsgeschwindigkeit und Reaktionsfähigkeit optimieren
  • Kompatibilität: Betrieb in verschiedenen Umgebungen garantieren

⚠️ Qualitätssicherungs-Beschränkungen

🔍 Perfektions-Garantie

Wichtige Punkte: Coverage-Raten oder Testergebnisse sind einer der Qualitätsindikatoren, aber können aus folgenden Gründen keine Perfektion garantieren:

  • Test-Beschränkungen: realistisch schwierig, alle Ausführungspfade oder Edge-Cases vollständig zu decken
  • Umgebungs-Abhängigkeit: schwierig, Betrieb in verschiedenen OS, Browsern, Geräten vollständig zu garantieren
  • Benutzer-Operationen-Vielfalt: schwierig, unerwartete Benutzer-Operations-Muster vollständig vorherzusagen
  • Externe Abhängigkeiten: schwierig, vollständig auf Third-Party-Bibliotheken oder System-Umgebungsänderungen zu reagieren

✅ Best-Effort-Tests

Qualitätsverbesserungs-Herausforderungen: Können keine Perfektion garantieren, aber führen Best-Effort-umfassende Tests durch folgende Methoden durch:

  • Multi-Schicht-Test-Strategie: umfassende Verifikation durch Unit·Integration·E2E-Tests Kombination
  • Hauptfunktionen-Fokus-Tests: garantieren hohe Coverage der Kernfunktionen (Analyse·Rendering·Export)
  • Edge-Cases-Berücksichtigung: Tests abnormaler Eingaben·Fehlerzustände·Grenzbedingungen
  • Kontinuierliche Verbesserung: kontinuierlich Tests basierend auf Testergebnisse-Analyse verstärken
  • Praktikabilitäts-Fokus: Fokus-Tests auf Probleme, die in tatsächlichen Nutzungsszenarien auftreten können
🎯 Realistische Qualitätsziele: Nicht Perfektion, sondern praktisches Niveau Qualitätssicherung. Fokus auf Hauptfunktionen-Stabilität, Benutzer-Erfahrung, Leistung, Qualitätsverbesserung durch kontinuierliche Verbesserung herausfordern.

🔮 Qualitätssicherung kontinuierliche Herausforderungen

Diese Anwendung fordert kontinuierlich Qualitätssicherung heraus, um Benutzern zuverlässige Dienste zu bieten. 825 Test-Cases umfassende Verifikation, Hauptfunktionen hochwertige Garantie, Fokus auf tatsächliche Nutzungsszenarien-Stabilität.

💡 Für Benutzer: Nicht Qualitätssicherungs-Perfektion verfolgen, sondern praktisches Niveau Zuverlässigkeit und Stabilität bieten. Kontinuierlich Anwendungen bereitstellen, die in der täglichen Nutzung mit Seelenfrieden verwendet werden können.

Verwendete OSS und Lizenzen

Hauptabhängigkeiten

🚀 Kern-Frameworks

  • Electron: Desktop-App-Framework (v38.1.2) - MIT Lizenz
  • Node.js: JavaScript-Laufzeitumgebung - MIT Lizenz
  • @babel/parser: JavaScript/TypeScript-Parser - MIT Lizenz

🎨 UI-Bibliotheken

  • monaco-editor: Code-Editor (VS Code-Engine) - MIT Lizenz
  • p5: Creative-Coding-Bibliothek - LGPL-2.1-or-later
  • marked: Markdown-Parser - MIT Lizenz
✅ Lizenz-Kompatibilität: Alle Hauptabhängigkeiten sind MIT-Lizenz oder LGPL-2.1-or-later, kostenlos für kommerzielle Nutzung und Modifikation. Keine Lizenzkonflikte.

Entwicklungstools

🧪 Test-Frameworks

  • Jest: Test-Framework (v30.0.5) - MIT Lizenz
  • @types/jest: TypeScript-Definitionen - MIT Lizenz
  • Playwright: E2E-Testing (v1.54.2) - Apache-2.0 Lizenz

⚙️ Build-Tools

  • Babel: JavaScript-Compiler - MIT Lizenz
  • Cross-env: Umgebungsvariablen - MIT Lizenz
  • Electron-builder: App-Packaging - MIT Lizenz

Lizenz-Details

📋 Lizenz-Zusammenfassung

✓ MIT Lizenz: 85% der Abhängigkeiten
✓ LGPL-2.1-or-later: 10% der Abhängigkeiten
✓ Apache-2.0: 5% der Abhängigkeiten

📊 Haupt-Lizenz-Typen:
• MIT: Am permissivsten, kommerzielle Nutzung kostenlos
• LGPL-2.1-or-later: Copyleft, aber Linking kostenlos
• Apache-2.0: Patent-Schutz inbegriffen
Aktueller Abhängigkeits- und Lizenzüberblick (Stand: September 2025)

Wesentliche npm-Pakete für Runtime, Analyse sowie Build- und Test-Tooling. MIT dominiert, Playwright ist unter Apache License 2.0 lizenziert, p5.js unter LGPL-2.1-or-later.

Kategorie Paket Lizenz
Runtime Electron 38.1.2 MIT
monaco-editor 0.49.0 MIT
marked 12.0.2 MIT
p5 2.0.4 LGPL-2.1-or-later
Analyse @babel/parser 7.28.3 MIT
Babel-Toolchain (core / preset-env / plugin) MIT
Build & Tests electron-builder 26.0.12 MIT
cross-env 7.0.3 MIT
jest / babel-jest / @types/jest 30.x MIT
@playwright/test 1.54.2 / playwright 1.54.2 Apache License 2.0
Assets png2icons 2.0.1 MIT

Weitere Details in package.json sowie im Skript analyze-dependencies.js.

OSS-Beitrag

Diese Anwendung nutzt die Vorteile von Open-Source-Software voll aus. Durch die Verwendung von Community-entwickelten hochwertigen Bibliotheken verbessert sie die Entwicklungseffizienz und garantiert Zuverlässigkeit.

🌍 Open-Source-Geist: Wir würdigen die Beiträge der OSS-Community und planen, in Zukunft auch unsere eigenen Verbesserungen der Community beizutragen.