Webový zápisník | JAZBY.net
Vítejte na mém webu!

Výjimky přicházejí draho a přinášejí spoustu komplikací, aneb když se něco musí dělat jinak než je zvykem.

Teď jistě přemýšlíte, co tím básník chtěl říci. V podstatě nic a všechno. Myslím, že titulek říká vše, ale samozřejmě že to osvětlím. Již delší dobu sleduji, jak se v projektech které programuji, navrhuji a sestavuji pro zákazníky, objevují výjimky. Aplikace se krásně navrhne a krásně pracuje, ale po předání zákazníkovy se člověk dozví, že tohle by vlastně chtělo jinak a pro tamtoho člověka že je třeba omezit přístup, případně že tamten člověk tam nesmí mít vůbec přístup. Tohle je jedna kategorie výjimek. Ta je docela nevinná, akorát přidává práci programátorovi. Musí zbytečně opět dělat na něčem, co již dávno měl hotové. Horší skupinou výjimek jsou ty, které vyžadují manuální zásah do jinak zautomatizovaného procesu. Jako příklad uvedu export dat. Mám jednu aplikaci, kde by se export mohl provádět pouze tím, že

uživatel obsluhující aplikaci klikne na tlačítko exportovat a vše již proběhne samo. Data se vytáhnou z databáze, zabalí se do archívů, vygenerují se předávací protokoly a vše se odešle na sdílené úložiště, kde data odebere zákazník, případně zpracovatel. Bohužel, ale zákazník používá 10let staré programy do kterých se nedá exportovat automaticky a tak nejde celý proces zautomatizovat. Uživatel klikne na „Exportovat“ a poté musí například manuálně vytvořit předávací protokol. Dál již proces opět běží automaticky. Problém je, že jakýkoliv uživatelský zásah vyžaduje zaškolení a nese sebou značnou míru chybovosti. Přeci jenom člověk je tvor omylný a snadno se v něčem přehlídne. Je nutno tedy potom ještě programovat kontroly, které zjistí, zda uživatel provedl to, co měl. To je stále ještě snadné, akorát již daný proces vyžaduje zaškolení uživatele a následné kontroly uživatele. Nejvíc mě děsí poslední kategorie výjimek, která by teoreticky neměla nastat nikdy a přitom je tak rozšířená. Navážu na předchozí příklad export dat. Dejme tomu, že data, která exportujeme, mají několik skupin. Každá skupina se má předat ve zvláštním balíku (předávací protokol). Provádějí se tedy s nimi naprosto stejné úkoly. Jenže dodatečně přibude skupina, kde je třeba „jenom“ něco změnit. Například při načítání dat najednou není dodána validace, takže u všech předchozích skupin je možno zkontrolovat, že data, která posílám, jsou skutečná. Pouze u jedné to nejde. Zbytečně tím vzniká chybovost a následná administrace (chyby se najdou až u zpracovatele, ten nám data vrátí a je nutno je opravit). Je to tedy práce, kterou nám již nikdo nezaplatí a přitom ji nemůžeme ovlivnit. Ztrácíme tím tedy čas a unikají nám již peníze.

Tenhle příklad nebyl naštěstí ještě tak hrozný, uvedu nyní jiný. Dejme tomu, že při exportu se posílá informační email o tom, že export je hotový a data předána. To jde samozřejmě poslat automaticky a nemusíme tím tedy obtěžovat uživatele. Zákazník si ale potom vymyslí jeden produkt, který se exportuje současně s ostatními daty, ale pouze u tohoto produktu chce poslat informační email o tom, že se daná skupina načetla, případně v jakých souborech toto bude. Bohužel programově to nejde poznat, jelikož je to skupina dat, která se načítá běžně, ale pouze omezenou dobu se použije na něco jiného. Uživatel tedy musí pamatovat na to, že je nutno po exportu ještě něco udělat. Je jasné, že na to časem zapomene. Nebo že zapomene na to, že do toho emailu musí doplnit jeden řádeček, který si musí ručně zjistit a ručně jej vepsat. V drtivé většině případů se na tuto akci začne zapomínat a vznikají problémy. Nehledě na to jak to zdržuje. Vznikají pokuty za prodlevu, případně za špatný export atp. A obrana?

Stát za tím člověkem a hlídat ho. Přitom kdyby výjimky tohoto typu nebyly, žádný problém by nenastal. Mám z jedné aplikace vyzkoušené, že dokud v ní nebyly integrovány výjimky tohoto typu, export trval 1,5 minuty a nenastávali žádné chyby. Nyní je tam vynuceno asi 6 výjimek, s tím že se ještě konají takzvaně „jenom někdy“ a export trvá 8 minut a ještě k tomu je export každou chvilku špatně udělaný. Jenže stížnosti už nejdou na hlavu toho, kdo to exportuje, ale na hlavu toho, kdo s tím v podstatě nemá nic společného. Nehledě na to, že poté nastává situace, že proces export zvládne jen pár lidí, kteří vědí o celé problematice a pokud někdo z nich onemocní, nebo nemůže být přítomen, nemá kdo jej provést, protože tomu vlastně nikdo nerozumí. A školení trvá na tento export asi tak dva dny. O kolik peněz a času se tedy výjimkami připravujeme? Kolik problému si jimi přiděláváme? Kolik starostí a pozornosti a kontrol je třeba navíc, aby vše bylo v pořádku? Výjimky jsou prostě drahé. Víc k tomu nemám co dodat. Snažím se proti nim bojovat, ale je to těžké. Zákazníci si velice rádi vymýšlí naprosté kraviny a ubohý programátor to šéfům nevysvětlí, jelikož ty to bohužel nechápou.

Příklady použité v tomto článku jsou z jednoho skutečného projektu a časy a popsané problémy opravdu vznikají. Kvůli ochraně údajů ale nemůžu být konkrétní. To snad je jasné. Budu rád za komentáře a příspěvky s vašimi zkušenosti ohledně výjimek, aneb když se něco musí dělat jinak.

««« Předchozí text: Valentýna bych zrušíl, aneb Nemám rád dnešní proamerický svět Následující text: Něco málo o jednom bláznovi aneb nový autor na tomto blogu »»»

autor: Honzííík | Neděle 24. 02. 2008, 21.43 | tisk | Ze života "hmyzu" , selekce | 0 komentářů | 295x

Komentáře k textu

Rss komentářů tohoto textu - Formulář pro nový komentář

K textu nebyl napsán žádný komentář.

Přidej komentář!

  Gravatar povolen.



Kliknutím vložíš: Vloďż˝ smajla :-) Vloďż˝ smajla :-( Vloďż˝ smajla ;-) Vloďż˝ smajla :-D Vloďż˝ smajla 8-O Vloďż˝ smajla 8-) Vloďż˝ smajla :-? Vloďż˝ smajla :-x Vloďż˝ smajla :-P Vloďż˝ smajla :-|
Příspěvěk je formátován Texy! syntaxí. Není povoleno HTML, odkazy se převádějí automaticky. Pokud se komentář nezobrazí, neprošel bezpečnostní kontrolou a já jej musím schválit přes administraci. Nevkládej jej prosím znovu.
Jsem robot?

Stručně o mně

Autor
Ahoj, je mi 22 let, na netu vystupuji pod přezdívkou JAZBY, moje povolání je ... php programátor, zajímám se o počítače, baví mě tvorba stránek, bydlím v Praze a tady si krátím svůj dlouhý čas tím že si tady bloguji. Zajímá-li tě to, přeji příjemnou zábavu.

Nové komentáře

JjpZNaDBrCcnPdRvaa oGQapLKcPjXvAXNCSS milena
Online 5 lidí

Vydané články

PHP seriál
ALBION Group