Web-Entwicklung

Digitale Werkzeuge bauen: Von der Idee zur fertigen Web-AppBuilding Digital Tools: From Idea to Finished Web App

Ein gutes Werkzeug entsteht nicht am Reissbrett, sondern aus einem konkreten Ärgernis. map.patchy.ch, mein interaktiver Routenplaner, ist genau so entstanden — und hat mir unterwegs mehr über sauberes Programmieren beigebracht als jedes Tutorial.

Warum eine eigene Karte?

Bestehende Karten-Apps geben grobe Vorschläge, aber ich wollte eine Strecke exakt selbst zeichnen und vermessen. Für die Schweizer Kartendaten habe ich die geo.admin-API eingebunden — die offizielle Geodaten-Schnittstelle des Bundes. Das klingt simpel, bis man merkt, dass Kartenkacheln, Projektion und Koordinatensystem genau zusammenpassen müssen. Stimmt eine Umrechnung nicht, liegt der eingezeichnete Pfad plötzlich ein paar Meter neben dem echten Weg.

Wo es mathematisch wehtut

Der lehrreichste Teil war die Distanzberechnung. Rechnet man mit Fliesskommazahlen, bekommt man selten runde Ergebnisse: Aus einer sauberen Strecke wird schnell eine Länge wie 666,67 statt 666,7, weil der Computer Brüche wie 2000 geteilt durch 3 nur annähern kann. Solche winzigen Ungenauigkeiten summieren sich über viele Segmente. Ich musste bewusst runden, Rundungsfehler an einer einzigen Stelle einfangen und Werte konsistent formatieren, damit dieselbe Strecke immer dasselbe Ergebnis liefert — und nicht bei jedem Neuladen minimal anders.

Logik, die nicht rät

Diese Genauigkeit kenne ich aus C. Wenn dort ein Zustand über einen festen Wert läuft — sagen wir eine Schwelle von 275 — entscheidet ein einziges Zeichen über das Verhalten: ob die Bedingung „grösser" oder „grösser oder gleich" prüft. Genau dieselbe Disziplin habe ich bei struktogramm.patchy.ch gebraucht, meinem Editor für Nassi-Shneiderman-Diagramme. Struktogramme bilden Programmlogik ab; wenn Verzweigungen und Schleifen im Editor nicht exakt der echten Logik entsprechen, ist das Diagramm nicht nur hässlich, sondern schlicht falsch.

Klein, aber vollständig

Beide Werkzeuge folgen demselben Prinzip: eine Aufgabe, dafür richtig. Lieber ein Tool, das das Zeichnen, Vermessen und Exportieren einer Strecke vollständig beherrscht, als zehn halbe Funktionen. Alles läuft möglichst direkt im Browser, ohne schweren Unterbau, und lädt sofort. Was ich nicht brauche, baue ich bewusst nicht ein.

Was solche Projekte so wertvoll macht, ist der direkte Praxisbezug: Ich stelle keine erfundene Aufgabe nach, sondern löse ein Problem, das mich selbst stört. Wenn die Streckenlänge in map.patchy.ch nach dem Neuladen plötzlich um einen Meter abweicht, merke ich das sofort — weil ich das Tool selbst benutze. Diese Rückmeldung aus dem eigenen Alltag ist ehrlicher als jede Note und hat mich mehr über sauberes Programmieren gelehrt als jedes Lehrbuch.

Aus diesen Projekten habe ich gelernt, dass der Unterschied zwischen „läuft irgendwie" und „läuft verlässlich" fast immer in den Details steckt: in der einen Zahl, der einen Bedingung, dem einen Randfall. Weitere Projekte findest du auf meiner Projekte-Seite.

Kontakt aufnehmen