Sonntag, 3. Februar 2013

Big Ball of Mud


Von wegen das Leben schreibt die besten Geschichten. Für mich steht fest: das Leben schreibt Spaghetticode. 

Man denkt alles läuft in geordneten Bahnen und die nächsten Verzweigungen sind klar, aber dann kommt auf einmal eine Sprunganweisung ins Nichts daher und man hat keine Ahnung, wo man landet. 

Wegwerfen und komplett neu schreiben rät der geschulte Informatiker, doch leider geht das bei Leben nicht so leicht, da beim Deployment auf eine strikte Trennung von Produktiv- und Entwicklungssystem verzichtet wurde. Und auch wenn man versucht alles sinnvoll in Modulen zu strukturieren, irgendeine globale Variable zerschießt einem doch wieder die ganze Architektur. 

private List<Feelings> relationship(); ist da ein schönes Beispiel. Die Funktion arbeitet zentral mit den globale definierten Objekten you und me. Nun hat aber you die dumme Angewohnheit, sich völlig unberechenbar zu verhalten (und auch auf den Zustand von me sollte man sich nie verlassen). In der originalen Version von relationship() finden sich jedoch keinerlei Sicherungsmechanismen, die etwaige Ausnahmen sinnvoll behandeln können. Hier wird dringend empfohlen, auf null-pointer zu prüfen und von Try-Catch-Konstrukten regen Gebrauch zu machen. Doch auch damit ist man nicht vor unerwarteten Fehlern in relationship() gefeit, daher sollte auch deren Aufruf stets unter kontrollierten Bedingungen erfolgen, will man fatale Ausnahmesituationen vermeiden. 


Keine Kommentare:

Kommentar veröffentlichen