defensive programming
TRANSCRIPT
![Page 1: Defensive programming](https://reader034.vdocument.in/reader034/viewer/2022052317/55cdc7c8bb61eb4b758b46f0/html5/thumbnails/1.jpg)
Defenzívne programovanie
najmä v PHP
![Page 2: Defensive programming](https://reader034.vdocument.in/reader034/viewer/2022052317/55cdc7c8bb61eb4b758b46f0/html5/thumbnails/2.jpg)
Finagle's Law of Dynamic Negatives
• ... hovorí, že:
• Anything that can go wrong, will—at the worst possible moment.
![Page 3: Defensive programming](https://reader034.vdocument.in/reader034/viewer/2022052317/55cdc7c8bb61eb4b758b46f0/html5/thumbnails/3.jpg)
Definícia
• Defensive programming is a form of defensive design intended to ensure the continuing function of a piece of software under unforeseen circumstances.
![Page 4: Defensive programming](https://reader034.vdocument.in/reader034/viewer/2022052317/55cdc7c8bb61eb4b758b46f0/html5/thumbnails/4.jpg)
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
![Page 5: Defensive programming](https://reader034.vdocument.in/reader034/viewer/2022052317/55cdc7c8bb61eb4b758b46f0/html5/thumbnails/5.jpg)
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?
![Page 6: Defensive programming](https://reader034.vdocument.in/reader034/viewer/2022052317/55cdc7c8bb61eb4b758b46f0/html5/thumbnails/6.jpg)
Využitie
• Všade :)
• Integrálne pri komunikácii s tretími stranami:
• importy/exporty
• jednorazové/synchronizačné
![Page 7: Defensive programming](https://reader034.vdocument.in/reader034/viewer/2022052317/55cdc7c8bb61eb4b758b46f0/html5/thumbnails/7.jpg)
Prax - exportno/importný systém
![Page 8: Defensive programming](https://reader034.vdocument.in/reader034/viewer/2022052317/55cdc7c8bb61eb4b758b46f0/html5/thumbnails/8.jpg)
Prax - exportno/importný systém
![Page 9: Defensive programming](https://reader034.vdocument.in/reader034/viewer/2022052317/55cdc7c8bb61eb4b758b46f0/html5/thumbnails/9.jpg)
Ďalšie čítanie
• https://en.wikipedia.org/wiki/Defensive_programming
• http://www.sitepoint.com/defensive-programming-in-php/