Wozu gibt es sowohl offensives als auch defensives Programmieren in Java?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

das kommt darauf an ,

defensive programmierung fängt fehler ab und reguliert sie so das ein programmabstuzt möglichst nicht auftritt , offensive programmierung ist eher das gegenteil , die fehler werden erst im nachinein gefixed . und checks bzw default werte werden erst gar nicht bedacht .

ich finde offensive propgammierung zeigt wo wir angekommen sind , das problem wird erst beim user und seiner anwendung sichtbar , dafür wird halt schnell code generiert . der user ist quasi das error händling und man wartet auf feedback und kümmert sich dann um das problem , wenn es rentabel ist.

einziger vorteil von offensive ist, das der fehler sichtbar wird und entsprechende fehlermeldung ausgegeben wird , nachteil die fehlermeldung wird sichtbar und der user kann damit wissen erlangen das er nicht haben sollte.

offensive wäre in alpha und beta versionen ok , defensive sollte es aber in der produktionsversion sein . leider lässt das immer mehr zu wünschen übrig durch die komplexität und nutzung von frameworks , keiner überblickt mehr das zusammenspiel .

das endet dann in einem satelliten den man auf reise schickt und dann für paar millionen euro im weltall verschwindet .

defensive wäre z.b. testsuites zu nutzen , maxima minima , den DAU user und eventuelle andere hardware/software umgebungen vorher zu bedenken .

aber auch defensive vorgehensweise hat so seine probleme, gerade wenn etwas so nciht läuft wie es soll und dann doch eine fehlerbehandlung gemacht wird obwohl eigentlich ein fehler error abbruch gebraucht wird .

offensive wäre davon auszugehen das das enviroment schon gewissen spezifikationen entspricht und der user keine fehler macht bzw machen will .

eine offensive webapp ist eigentlich schon per definition des webusers zum tode verurteilt . mit glück gibts ein fehler , abbruch und einem verprellten kunden , mit pech ein einfallstor und übernahme des servers oder gar eine gratis lieferung mit gutschrift der 3000 euro teuren smartwatch (wobei letzteres auch bei defensiver verarbeitung vorkommen kann eben weil kein fehler geworfen wurde .).

hier ein paar erklärungen dazu

https://programmingduck.com/articles/defensive-programming