Ich möchte hier meine Design-Prinzipien vorstellen, mit denen ich meine Software entwickle. Sie sorgen meiner Meinung nach dafür, das Software leichter zu warten und weiterzuentwickeln ist.
Lesbarkeit und Verständlichkeit
Ich habe oft Code lesen müssen, der von einem Entwickler so geschrieben wurde, dass er für andere, nicht direkt Beteiligte, nur schwer zu lesen war. Um das zu vermeiden, halte ich mich stets an folgende Prinzipien:
Vertrauen in die Laufzeit
Eine ungetestete Funktion ist eine technische Schuld, die mit Zinsen zurück gezahlt werden muss.
Nicht selten wird Code nicht getestet. Meist ist es der Glaube an eine Zeitersparnis. Klar benötigt der Aufbau von guten Tests Zeit, oft sind es noch einmal 50-100% auf die eigentliche Entwicklungszeit. Diese Zeitersparnis zahlt der Entwickler oder das Team aber unzählige Male zurück. Sei es bei Abstürzen zur Laufzeit, Hotfixes, um den Code doch noch irgendwie schnell zum Laufen zu bekommen oder in debugging Kaskarden.
Eine Anwendung für alle Umgebungen
Die Konfiguration von Anwendungen ist ein wichtiger Bestandteil jeder Applikation. Sämtliche Variablen, die nicht zur Anzeige für den Operator oder Anwender bestimmt sind, gehören in eine zentrale Konfigurationsdatei. Vermeiden Sie jegliche Annahmen über die Zielumgebung. So bleibt die Anwendung kompatibel mit der Zukunft.
Stabilität durch Pinning, Sicherheit durch Upgrades