Restriktiv vs. Robust
Hat sich schon mal jemand von euch Gedanken über Restriktive Programmierung vs. Robuste Programmierung gemacht? Dahinter stecken keine Pattern oder sowas, sondern Charaktere von Entwicklern.
Hinter restriktiver Programmierung steht ein Charakter der aussagt: "Ich will diese schlechte Welt verbessern".
Hinter robuster Programmierung steht ein Charakter der aussagt: "Ich lebe mit dieser schlechten Welt und mache trotz Fehlern weiter".
Wenn ihr also eine Methode entwickelt, die einige Parameter bekommst, zu welcher Art von Entwicklern zählt ihr euch? Seit ihr Entwickler, die bei jeder noch so kleinen Ungereimtheit sofort eine Exception werfen (das wäre die restriktive Variante) oder nehmt ihr die Parameterwerte, analysiert sie und versucht trotzdem, egal was da kommt, das beste draus zu machen (das ist die robuste Variante)?
Natürlich kann dies nie pauschalisiert werden, und natürlich spielen auch die Anforderungen eine Rolle, aber dennoch kann man, so denke ich, seinen Charakter einer dieser beiden Varianten zuordnen. Ich persönlich bevorzuge die Robuste Variante, denn so kann meine Methode von mehreren Entwicklern genutzt werden, und in den meisten Fällen kommt trotzdem das erwartete Ergebnis heraus. Und nur selten ertönt ein Stöhnen und die Worte "Oh man, was is denn nun schon wieder mit der Scheiß Methode? Kann die nich einfach mal funktionieren??” hehe
Ein Paradebeispiel is übrigens ein Parameterwert vom Typ string. Alle meine Methoden, die einen string erhalten, stürzen niemals ab, wenn z.B. ein null kommt (Es sei denn es ist so gewollt oder sowas). Ein null interpretiere ich eigentlich immer einfach als Leerstring. Aber es gibt auch viele Entwickler, die dann ne ArgumentNullException werfen (oder es erst gar nicht prüfen und in eine NullReferenceException laufen)... Das ist in meinen Augen eine falsche Einstellung. So nach dem Motto: "Och nö, ich mag jetzt nicht nachdenken, ich werf einfach mal ne Exception, sollen die anderen mal drüber nachdenken, und wenn ich nich exakt genau das bekomme, was ich haben will, ja dann bin ich halt bockig..." hehe
Was meint ihr dazu? Schreibt mal eure Meinung dazu. Ich denke, in dieser Sache einige andere Sichtweisen könnte meine eigene Sichtweise stark erweitern…