Fail-fast nebo Fail-tolerant?

Zdá se mi (soudě dle mne samotného), že heslo “fail-fast” bylo a je po léta základní mantrou všech (Java?) vývojářů. Tento přístup má pro programátora pří vývoji aplikace řadu nesporných výhod:

  • chyby jsou detekovány rychle a je levnější je opravit
  • příčina selhání je jasně viditelná a zdroj pádu většinou přestavuje zdroj vlastní chyby
  • chyby nejsou zanedbávány – každá musí být opravena aby systém fungoval

Díky těmto výhodám se tahle technika velmi oblíbenou a intuitivně ji nasazujeme a používáme všude. Stejně tak i všichni okolo nás – od autorů aplikačních serverů, webových frameworků, až po tvůrce jednoúčelových knihoven.

Odvrácenou stránkou této techniky je, že se jí těžko zbavuje ve chvílích, kdy o ni nestojíme. Nikdy si totiž nemůžeme být jisti odkud nám co vyskočí a v jakém stavu daná věc po vyvolání chyby zůstane. Na první pohled by se mohlo zdát, že toto bude pouze problém vývojářů fail-tolerant SW, ale já si myslím, že to je problém nás všech, který více-méně ignorujeme.

Diskuzní příspěvky
Zatím zde nejsou žádné zprávy