Merksätze Titel 4
Teil 4 der kleinen Serie über Merksätze

Hallo liebe Leserinnen, liebe Leser und alle, die sich sonst irgendwie hierher verirrt haben,

willkommen im vierten und letzten Teil der Serie „Merksätzen, die bleiben“. Diesmal geht's um Entwickler-Faustregeln.
Entwickler-Faustregeln sind kurze Erfahrungsregeln aus der Softwareentwicklung. Sie helfen dabei, Code verständlicher, wartbarer, sicherer und robuster zu schreiben.

Viele dieser Regeln sind keine starren Gesetze, sondern Orientierungshilfen. Je nach Projekt, Team und Situation kann eine Regel unterschiedlich wichtig sein.


Warum Entwickler-Faustregeln nützlich sein können

Softwareentwicklung besteht nicht nur daraus, Code zu schreiben. Es geht auch darum, Systeme zu verstehen, Änderungen sicher vorzunehmen, Fehler zu vermeiden, gute Namen zu finden, Abhängigkeiten zu beurteilen und langfristig wartbare Lösungen zu bauen.
Entwickler-Faustregeln sind nützlich, weil sie

  • Erfahrung in kurzen Sätzen bündeln,
  • typische Fehler sichtbar machen,
  • bessere Entscheidungen im Code fördern,
  • Gespräche im Team erleichtern,
  • Wartbarkeit und Sicherheit stärken,
  • an wichtige Grundprinzipien erinnern.

Ein Satz wie „Code wird öfter gelesen als geschrieben“ erinnert daran, dass Lesbarkeit kein Luxus ist. Sie ist eine Voraussetzung dafür, dass Software langfristig gepflegt werden kann.


Entwickler-Faustregeln für bessere Software
Nr.Entwickler-FaustregelBedeutung
1Code wird öfter gelesen als geschrieben.Lesbarkeit ist wichtiger als clevere Kürze.
2Schreibe Code für Menschen, nicht nur für Maschinen.Andere Menschen müssen den Code später verstehen und ändern können.
3Erst verstehen, dann ändern.Vor Änderungen sollte man den vorhandenen Code und seine Absicht verstehen.
4Make it work, make it right, make it fast.Erst funktional machen, dann sauber gestalten, dann optimieren.
5Miss zuerst, optimiere dann.Performance-Probleme sollten gemessen und nicht geraten werden.
6KISS: Keep it simple.Einfache Lösungen sind oft robuster und wartbarer.
7YAGNI: You aren't gonna need it.Baue nichts, was aktuell nicht wirklich benötigt wird.
8DRY: Don't repeat yourself.Wiederholungen vermeiden, aber nicht um jeden Preis.
9Falsche Abstraktionen sind teurer als Duplikate.Eine schlechte Vereinheitlichung kann später mehr Probleme machen als etwas Wiederholung.
10Abstraktion folgt Wiederholung, nicht Vorahnung.Erst abstrahieren, wenn ein Muster wirklich erkennbar ist.
11Benennung ist Design.Gute Namen machen Zuständigkeiten und Absichten sichtbar.
12Wenn du keinen guten Namen findest, ist das Design vielleicht unklar.Schwierige Benennung kann auf unklare Struktur hinweisen.
13Eine Funktion sollte eine Sache tun.Kleine, fokussierte Funktionen sind leichter zu testen und zu verstehen.
14Kommentare erklären warum, nicht was.Der Code zeigt, was passiert; Kommentare erklären Hintergründe und Entscheidungen.
15Jeder Hack wird irgendwann Infrastruktur.Provisorien bleiben oft länger bestehen als gedacht.
16Fail fast.Fehler sollten früh sichtbar werden, bevor sie später größeren Schaden anrichten.
17Explizit ist besser als implizit.Klare Abläufe sind oft sicherer als versteckte Magie.
18Globale Zustände sind globale Probleme.Global veränderliche Daten erschweren Debugging und Tests.
19Seiteneffekte gehören an den Rand.Kernlogik sollte möglichst klar, testbar und unabhängig bleiben.
20Traue keiner Eingabe.Alles, was von außen kommt, kann falsch, manipuliert oder unerwartet sein.
21Clientseitige Validierung ist Komfort, serverseitige Validierung ist Sicherheit.Prüfungen im Browser helfen, ersetzen aber nie Prüfungen auf dem Server.
22Fehlerfälle sind keine Sonderfälle.Fehlerbehandlung gehört zum normalen Design.
23Happy Path ist nur die halbe Wahrheit.Neben dem Idealfall müssen auch Randfälle und Fehler bedacht werden.
24Datenmodell schlägt Codeakrobatik.Ein gutes Datenmodell vereinfacht den gesamten Code.
25APIs sind Verträge.Schnittstellen sollten stabil, verständlich und verlässlich sein.
26Tests sind Sicherheitsnetze.Tests verhindern, dass alte Fehler unbemerkt zurückkommen.
27Ein Bug braucht zuerst einen Test.Ein reproduzierender Test schützt vor Wiederholung desselben Fehlers.
28Teste Verhalten, nicht Implementierung.Tests sollten prüfen, was Code leisten soll, nicht wie er intern gebaut ist.
29Was nicht automatisiert ist, wird vergessen.Wiederkehrende manuelle Schritte führen langfristig zu Fehlern.
30Secrets gehören nie ins Repository.Passwörter, Tokens und private Schlüssel dürfen nicht im Code-Repository landen.
31Logs sind die Stimme des Systems.Gute Logs erklären später, was passiert ist.
32Keine sensiblen Daten ins Log.Logs dürfen keine Passwörter, Tokens oder unnötigen personenbezogenen Daten enthalten.
33Reproduzierbar ist halb behoben.Ein Fehler, der zuverlässig nachstellbar ist, lässt sich leichter lösen.
34Zeit ist ein schwieriger Datentyp.Zeitzonen, Sommerzeit und Kalenderregeln machen Datumslogik komplex.
35Speichere Zeit in UTC, zeige lokal an.Intern UTC verwenden, in der Oberfläche lokal formatieren.
36Geld ist kein Float.Geldbeträge sollten nicht mit ungenauen Fließkommazahlen berechnet werden.
37Unicode ist kein Sonderfall.Software sollte Umlaute, Emojis und internationale Zeichen korrekt verarbeiten.
38Cache macht schnell, Cache macht falsch.Caches verbessern Performance, können aber veraltete Daten liefern.
39Retry ohne Grenzen ist ein Angriff auf dich selbst.Wiederholungsversuche brauchen Limits und Pausen.
40Timeouts sind Pflicht.Externe Aufrufe dürfen nicht unbegrenzt hängen bleiben.
41N+1 ist der stille Performance-Killer.Viele kleine Datenbankabfragen in Schleifen können Systeme stark verlangsamen.
42Migrationen sind Code.Datenbankänderungen müssen versioniert, getestet und nachvollziehbar sein.
43Sicherheit ist kein Plugin.Sicherheit muss von Anfang an mitgedacht werden.
44Security by obscurity ist keine Sicherheit.Verstecken ersetzt keine echte Absicherung.
45Selbstgebaute Kryptografie ist fast immer kaputt.Für Kryptografie sollte man bewährte Bibliotheken und Standards verwenden.
46Dependencies sind fremder Code in deinem Haus.Abhängigkeiten bringen Nutzen, aber auch Risiken und Wartungsaufwand.
47Kleine Pull Requests sind freundliche Pull Requests.Kleine Änderungen sind leichter zu prüfen und sicherer zusammenzuführen.
48Code Review prüft Denken, nicht Ego.Reviews dienen Qualität und Lernen, nicht persönlicher Bewertung.
49Wenn du es nicht erklären kannst, ist es noch nicht einfach genug.Verständlichkeit ist ein guter Test für Designqualität.
50Was du nicht beobachten kannst, kannst du schlecht betreiben.Monitoring, Logs und Metriken gehören zu produktionsreifer Software.



Glossar wichtiger Begriffe
Begriffeinfache Erklärung
Code ReviewPrüfung von Code durch andere Entwicklerinnen und Entwickler.
DependencyEine externe Bibliothek oder Software, die ein Projekt verwendet.
DRYPrinzip, Wiederholungen im Code zu vermeiden, wenn sie unnötig sind.
KISSPrinzip, Lösungen möglichst einfach zu halten.
MigrationStrukturierte Änderung an einer Datenbank.
MonitoringBeobachtung eines Systems mit Messwerten, Logs und Alarmen.
Pull RequestVorschlag, Codeänderungen in ein Projekt zu übernehmen.
RetryErneuter Versuch einer fehlgeschlagenen Operation.
TimeoutMaximale Wartezeit für eine Operation, bevor sie abgebrochen wird.
YAGNIPrinzip, nichts zu bauen, was aktuell nicht benötigt wird.



Kurzes Fazit

Entwickler-Faustregeln helfen, bessere Entscheidungen beim Programmieren zu treffen. Sie erinnern daran, dass gute Software nicht nur funktionieren, sondern auch verständlich, sicher und wartbar sein sollte.

Dieser Teil sammelt praktische Erfahrungsregeln für die Softwareentwicklung und eignet sich als Nachschlagewerk, Diskussionsgrundlage und Erinnerung an bewährte Prinzipien. Damit ist die kleine Serie „Merksätze, die bleiben" auch schon komplett – von klassischen Eselsbrücken über den Alltag und die IT bis hin zur Softwareentwicklung.

Über den Autor
Sven Owsianowski aka Wattblicker
Sven Owsianowski aka Wattblicker
Softwareentwickler, Autor & Dozent (Informatik)
Seit fast 30 Jahren baue ich Software, die aus echten Alltagsproblemen klare Lösungen macht – angefangen bei Bobaro, weiter über den QR‑Code Creator bis hin zu ICE Notfallinfo. Ich mag Technik, die verständlich bleibt, sicher funktioniert und Menschen wirklich hilft. Besonders ziehen mich KI, IT‑Sicherheit und digitale Werkzeuge an, die nicht nur clever sind, sondern nützlich. Auf wattblicker.de schreibe ich über Technik, die Freude macht statt Kopfzerbrechen.