Co je defenzivní programování?
Defenzivní programování je vytvoření kódu pro počítačový software, jehož cílem je předcházet problémovým problémům dříve, než k nim dojde, a učinit produkt stabilnějším. Základní myšlenkou tohoto přístupu je vytvoření programu, který je schopen správně pracovat i prostřednictvím nepředvídaných procesů nebo při neočekávaných záznamech uživatelů. Defenzivní programování se často spoléhá na poněkud paradoxní kombinaci eliminace zbytečného kódu a zároveň zajišťuje dostatečné množství generované pro zvládnutí všech možných uživatelských akcí. Pro tento proces je také důležité rozsáhlé testování, stejně jako tvorba softwaru, který lze snadno auditovat a kontrolovat.
V mnoha ohledech je koncept defenzivního programování velmi podobný konceptu defenzivního řízení, protože problémy jsou zvažovány dříve, než nastanou. Jedním z běžných způsobů, jak to provést, je vytvoření kódu, který má řešit jakýkoli možný scénář. Programátoři se obvykle pokoušejí určit způsoby, jakými uživatelé pravděpodobně vstoupí na vstup, nebo se pokusí použít software, který může být mimo očekávané parametry. Použití defenzivního programování je založeno na základu samotného kódu, který je navržen tak, aby byl schopen zpracovat podivný vstup bez selhání nebo výskytu chyby.
Zdánlivě na rozdíl od tohoto prvku defenzivního programování však musí být dobře napsaný kód prostý zbytečných záznamů. Čím více řádků kódu je součástí programu, tím více příležitostí pro zavedení chyb je možné. Defenzivní programovací postupy obvykle podporují vývojáře, aby eliminovali nepotřebné kódy a zjednodušovali programy, kdykoli je to možné. Proto je třeba najít rovnováhu mezi programováním, které odpovídá za neočekávané scénáře a kódem, který obsahuje příliš mnoho zbytečného obsahu, aniž by poskytoval výhodu.
Testování je jedním z nejdůležitějších aspektů defenzivního programování. I přes velké úsilí vynaložené na zajištění dokonalého kódu jsou vývojáři téměř vždy chybí nebo si vytvoří kód s neočekávanými výsledky. Důkladné testování profesionálními testery umožňuje vývojáři mít stovky hodin používání produktu k nalezení chyb před vydáním softwaru.
Samotný kód, který je vytvořen v obranném programování, je také životně důležitým aspektem tohoto procesu. Nejenže by měla být co nejefektivnější, ale měla by být také prezentována jasným a stručným způsobem. Audity často používá vývojář ke kontrole vytvořeného kódu. To umožňuje ostatním programátorům vidět práci, která byla vykonána, a čitelný kód je důležitý, aby to bylo realistickou součástí vývoje.