Robustheit: Der Grad, in dem ein System bei ungültigen Eingaben oder stressigen Umgebungsbedingungen weiter funktioniert. (Code Complete 2, S. 464)
Die wichtige Frage hierbei ist, wie wichtig Robustheit für Sie ist. Wenn Sie Facebook sind, ist es sehr wichtig, dass Ihre Website weiterhin funktioniert, wenn jemand Sonderzeichen in die Eingabe eingibt, und dass Ihr Server nicht ausfällt, wenn 100 Millionen Benutzer gleichzeitig angemeldet sind. Wenn Sie ein Skript schreiben, um eine allgemeine Operation auszuführen, die nur Sie ausführen, ist Ihnen das egal. Dazwischen gibt es viele Levels. Ein Urteil darüber zu fällen, wie viel Robustheit Sie benötigen, ist eine der wichtigen Fähigkeiten, die ein Entwickler erlernen sollte.
Das Prinzip von YAGNI gilt für das Hinzufügen von Funktionen, die ein Programm möglicherweise benötigt. Dieses Prinzip gilt jedoch nicht für die Robustheit. Programmierer neigen dazu, die Wahrscheinlichkeit zu überschätzen, dass eine bestimmte zukünftige Erweiterung benötigt wird (insbesondere wenn es eine coole ist), aber sie unterschätzen die Wahrscheinlichkeit, dass etwas schief geht. Wenn sich herausstellt, dass eine ausgelassene Funktion später benötigt wird, kann der Programmierer sie später schreiben. Wenn sich herausstellt, dass eine ausgelassene Fehlerprüfung erforderlich ist, kann der Schaden verursacht werden.
Daher ist es eigentlich besser, sich auf die Suche nach ungewöhnlichen Fehlerzuständen zu begeben. Aber es gibt ein Gleichgewicht. Einige der Dinge, die in dieser Bilanz berücksichtigt werden müssen:
- Wie oft kann dieser Fehler auftreten?
- Was kostet es, wenn dieser Fehler auftritt?
- Ist dies für den internen oder externen Gebrauch?
Vergessen Sie nicht, dass die Benutzer versuchen können und werden, Ihr Programm auf unerwartete Weise zu verwenden. Es ist besser, wenn etwas Vorhersehbares passiert, wenn sie es tun.
Verwenden Sie als letzte Verteidigungslinie die Zusicherung oder das Herunterfahren. Wenn etwas passiert, mit dem Sie nicht umgehen können, fahren Sie das Programm herunter. Das ist normalerweise besser, als dem Programm zu erlauben, etwas Unvorhersehbares zu tun.