Loading AI tools
Programmierstil, der Anwendungen schafft, die wenig voraussetzen, um adäquat zu funktionieren Aus Wikipedia, der freien Enzyklopädie
Unter defensivem Programmieren wird eine Programmierung von Computersystemen verstanden, die möglichst viele Voraussetzungen selbst überprüft, bevor der eigentliche Selbstzweck erfüllt wird. Ein Programmierer ist mit verschiedenen bekannten und unbekannten Aspekten bezüglich Benutzer-Eingabe, verschiedener Betriebssysteme und -Versionen konfrontiert. Die so defensiv programmierten Applikationen sind misstrauisch gegenüber allen Eingaben und Voraussetzungen und verhalten sich gegenüber Verstößen robust. Durch das Voraussehen möglichst vieler Umstände laufen sie weiter oder brechen in einem geordneten Prozess ab.
Ein Alternativansatz zur defensiven Programmierung ist Design by contract. Dabei stellt diejenige Komponente, welche die Dienstleistung einer anderen Komponente in Anspruch nimmt, lediglich auf der Basis eines Vertrages eine Reihe von Vorbedingungen sicher und verlässt sich auf Nachbedingungen, die für die Dienstleistung im Vertrag definiert wurden. Bei defensiver Programmierung wären hingegen die Vorbedingungen unklar, während die Nachbedingungen von der in Anspruch nehmenden Komponente überprüft werden müssten.
Ein System muss sich nicht einem einzigen Konzept verschreiben. Grundsätzlich lässt es sich so aufteilen, dass Einwirkungen von außen (Benutzereingaben, Datenimport, API) defensiv zu handhaben sind, während das bei inneren Abläufen nicht erforderlich ist.
Der Programmierer hat – je nach Programmiersprache – verschiedene weitere Möglichkeiten des Exception Handlings, der Behandlung von Ausnahmen. Diese Möglichkeiten werden jedoch nicht mehr unter dem Begriff defensive Programmierung zusammengefasst, sondern es geht darum, beliebig auftretende, nicht vorhersehbare Fehler abzufangen. Gerade konträr zur defensiven Programmierung verhält sich beispielsweise die in Visual Basic beliebte Anweisung On Error Resume Next
(umgangssprachlich aus unbekannter Quelle auch OERNy genannt, auf Deutsch „mach einfach weiter“). Der Vorteil dabei ist, dass die Applikation nicht abstürzt, dies allerdings mit unabsehbaren Folgen, das heißt, das Resultat kann unter Umständen völlig inkorrekt sein.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.