www.rozumim.cz

Můj kód nefunguje a mně to nevadí

Protože vím, že půjde opravit.

Kolik z toho, co naprogramujete, musí fungovat?

Všechno. Proč bychom to jinak dělali? Za co nás platí?!

Můj odhad je 25%. Hlavně pokud děláte tzv. informační systémy. Neříkám, že ten zbytek, 3/4 Vaší práce, nefunguje. Říkám jen, že fungovat nemusí. Nikdo nezemře, nikde nezačne hořet, vlaky se nesrazí.

  • Co se stane, když uživatel nebude moci dnes zaškrtnout ten checkbox?

  • Co se stane, když dva dny nebudou odstavce ve vytištěných dokumentech zarovnané do bloku?

  • Co se stane, když jeden týden nebudou záznamy na stránce řazené od nejnovějšího po nejstarší?

(Trik je samozřejmě v tom, že nikdy nesmí ten zbytek přestat fungovat celý najednou.)

Chybám se nevyhnete

Takže 3/4 z toho, co jsi naprogramoval, obsahuje chybu?

Dělám chyby, ale jsou chyby a chyby.

  1. Pokud při programování přemýšlíte a dokážete se poučit, spoustu chyb prostě neuděláte. Když nebudete míchat validaci s ukládáním hodnot, když budou mít vaše objekty jasně stanovené zodpovědnosti a když se nebudete bát refaktorizovat (pár hodin i pár let) starý kód, mnoha chybám se vyhnete.

  2. Pokud píšete testy, odhalíte chybu často ještě před commitem do repository. Žádné klikání na stránce a napodobování uživatele. Nemůžete napsat test? Tak to tam máte určitě alespoň jednu chybu: nemůžete napsat test.

  3. Pokud děláte QA, najdete chyby před vydáním. Člověk se snadno ponoří do problému a některé věci vůbec nevidí, aneb: “To zadání bylo napsaný tak, že mě to nutilo přehlédnout!”.

  4. Pokud správně logujete, máte k chybě kontext. Místo hlášení uživatele: “ono se něco ukázalo, tak jsem na to kliknul” budete přesně vědět, s čím aplikace v tu chvíli pracovala. A jestli ke stejné chybě došlo i předtím nebo potom.

  5. Pokud máte nástroj pro automatické reportování chyb, dozvíte se o nich ihned jak nastanou a můžete zareagovat. Uživatelé si chyby třeba ani nevšimnou.

  6. Pokud vydání nové verze netrvá týden, ale pár minut, může mít uživatel opravu hned k dispozici. Klidně pak zapomene, že jste rozbili něco, co předtím fungovalo. Bude mít radost, že jste to zvládli opravit tak rychle.

Jsou části aplikace, kde je chyba doslova nevyhnutelná. Hlavně rozhraní s cizími systémy (nejhorší a nejzákeřnější je určitě cizí systém uživatel).

Proč to píšu?

Pšššt! Ne tak nahlas, dyť tě uslyší šéf!

Protože nemá smysl se tvářit, že kód má dva stavy: funguje/nefunguje. Protože mi chvíli trvalo na to přijít. A protože chci znát i Váš názor.

Můj kód nefunguje a mně to nevadí. Protože jsem ho napsal tak, že půjde opravit.

30. 9. 2013, kategorie: it
comments powered by Disqus