MLTimeGraph

Kapitel 1: Zwei Wege zum selben Diagramm

MLTimeGraph gibt es zweimal. Einmal als TypeScript-Bibliothek, die im Browser zeichnet, und einmal als Go-Bibliothek, die SVG auf dem Server zeichnet — kein DOM, kein Browser, kein Headless-Irgendwas.

Das ist keine doppelte Arbeit. Es ist die Antwort auf zwei verschiedene Fragen.

Wenn der Server zeichnet

Ein Bericht, der als PDF herausgeht. Eine E-Mail mit den Messwerten des Tages. Ein Dashboard in einer Umgebung, in der JavaScript nicht erlaubt ist. Ein Bild, das in zehn Jahren noch genauso aussehen soll.

In all diesen Fällen ist das Diagramm eine Datei, kein Programm. Die Go-Seite liefert genau das: einen SVG-String, erzeugt aus einer JSON-Beschreibung, in Millisekunden, ohne dass irgendwo ein Browser startet.

Ein Tag Messwerte, gezeichnet von der Go-Bibliothek. Diese Datei ist alles — kein Skript, kein Fetch, keine Runtime.

Wenn der Browser zeichnet

In dem Moment, in dem jemand in die Daten schauen will. Zoomen, verschieben, einen Wert unter dem Cursor ablesen, zwei Bereiche vergleichen. Ein Bild kann das nicht, und der Versuch führt zu Bildern, die du anklickst und die weitere Bilder laden.

Die Demo unten läuft wirklich — bewege den Mauszeiger über die Kurve, ziehe einen Bereich auf, scrolle zum Zoomen.

Werte ablesen im Browser — dieselbe Bibliothek
Werte ablesen im Browser — dieselbe Bibliothek — lebende Demo öffnen

Warum beides dasselbe Diagramm ist

Die Go-Seite ist eine Portierung der TypeScript-Variante, kein separates Projekt mit ähnlichem Ergebnis. Dieselben Achsenberechnungen, dieselbe Zeitformatierung, dieselben Schwellenwerte. Eine Konfiguration, die im Browser ein bestimmtes Bild erzeugt, erzeugt auf dem Server dasselbe Bild.

In der Praxis: Du kannst eine Ansicht interaktiv entwerfen und sie dann serverseitig ausliefern, ohne sie ein zweites Mal zu beschreiben.

Die Versionen der beiden Hälften werden bewusst synchron gehalten — ml-time-graph auf npm und das Go-Modul-Tag go-time-graph/vX.Y.Z tragen dieselbe Nummer, damit „dasselbe Release“ eine überprüfbare Aussage bleibt.

Vom selben Autor

Lizenz: CC BY-NC 4.0