15. April 2026Archiviert
Orthogonal arbeiten: Wer alles anfasst, macht alles kaputt
In der Theorie klingt Orthogonalität simpel: Zwei Dinge sind orthogonal, wenn Änderungen am einen das andere nicht beeinflussen. In der Praxis der Softwareentwicklung ist das oft das erste Prinzip, das für "schnelle Ergebnisse" geopfert wird. Das Ergebnis ist dann kein Werkzeug, sondern ein Knäuel aus Abhängigkeiten.
Die Illusion der Abkürzung
Häufig wird Code so geschrieben, dass er "praktisch" ist – ein globaler Zustand hier, eine kleine Querbeziehung da. Man spart sich im Moment drei Zeilen Code oder eine saubere Schnittstelle. Aber sobald man an Komponente A schraubt, fliegt einem Komponente B um die Ohren, die eigentlich gar nichts damit zu tun haben sollte. Das ist das Gegenteil von orthogonalem Arbeiten.
Wer orthogonal arbeitet, akzeptiert den initialen Mehraufwand für klare Trennungen. Das Ziel ist, dass ein Feature oder ein Bugfix eine lokale Angelegenheit bleibt.
Beispiele aus der Praxis
Ein gutes System zeigt diese Trennung in seiner Architektur:
- Rendering vs. Picking: Wie in meiner aktuellen Engine umgesetzt, sollte das Sichtbare vom Auswertbaren getrennt sein. Ein eigener Picking-Pass sorgt dafür, dass die grafische Finesse keine Auswirkung auf die Treffsicherheit der Maus hat.
- Shader-Logik: Statt für jedes Backend manuell zu frickeln, nutzt man einen zentralen Pfad und moderne Shader-Compiler. Die Host-Seite bleibt von der GPU-Logik (GLSL) komplett getrennt.
- Zustand und UI: Hintergrundarbeit gehört in eigene Threads, damit die UI nicht stottert. Sobald sich die Berechnung in den UI-Takt frisst, ist die Orthogonalität verloren.
Warum das wichtig ist
Wenn man nicht orthogonal arbeitet, steigt die kognitive Last exponentiell an. Man kann sich nicht mehr auf eine Sache konzentrieren, sondern muss das gesamte System im Kopf behalten, um keine Lawine an Fehlern auszulösen.
Orthogonalität bedeutet Respekt vor der eigenen Zeit und der Zeit derer, die den Code später lesen müssen. Es geht darum, Verantwortung für die Folgen einer Änderung zu übernehmen. Wer behauptet, "schnell fertig" zu sein, indem er alles mit allem verheiratet, lügt sich selbst in die Tasche. Echte Effizienz entsteht durch Unabhängigkeit.
🖼️ Galerie
Screenshots und visuelle Einblicke in die aktuelle Entwicklung der Engine und UI.
🚀 Freelancer & Mitgründer gesucht
Pragmatisch und produktnah: Softwareprodukte entwickeln, die reale Probleme lösen.
📰 Aktuelle Beiträge
Zurück zur Startseite mit den neuesten Projekten und Gedanken.
🗄️ Artikel-Archiv
Ältere Beiträge und Notizen, die zur Dokumentation erhalten bleiben.