Defenzívne
programovanie
najmä v PHP
Finagle's Law of Dynamic Negatives
• ... hovorí, že:
• Anything that can go wrong, will—at the worst possible
moment.
Definícia
• Defensive programming is a form of defensive design intended to
ensure the continuing function of a piece of software under
unforeseen circumstances.
Výhody/očakávania
• Minimalizácia (expost) chybovosti
• Odolnosť nepredvídaným zmenám
• Vhodné správanie aj napriek nevhodným vstupom/používaniu
Zásady
• budem daný proces opakovať?
• aj v prípade jednorázového ho budem opakovať keď sa bude ladiť,
ako si to ľahko zreplikujem?
• ako overím, že všetko je v poriadku?
• Generická hláška? Že skript prebehol? Aj keď nič nezmenil? Čo
zmenil a nezmenil?
• ako pracujem s výnimkami/návratovými stavmi? ošetrujem všetko
alebo programujem v dobrej vôli? Komu/kam príde chybová hláška?
Využitie
• Všade :)
• Integrálne pri komunikácii s tretími stranami:
• importy/exporty
• jednorazové/synchronizačné
Prax - exportno/importný systém
Prax - exportno/importný systém
Ďalšie čítanie
• https://en.wikipedia.org/wiki/Defensive_programming
• http://www.sitepoint.com/defensive-programming-in-php/

Defensive programming