Přejít k navigační liště

Zdroják » Různé » Příběh: Naprogramuju ti to za 15 minut.

Příběh: Naprogramuju ti to za 15 minut.

Články Různé

Okurková sezóna začala a my se s vámi dnes podělíme o krátký příběh ze života našich kolegů. Vypravěčem je admin Ondra a hlavním hrdinou vývojář Honza.

Jsem administrátorem v Devel.cz a potřeboval jsem testovat fungování reverzní proxy našich projektů. Cílem bylo provést HTTP dotaz a ověřit, že v HTTP hlavičce je přítomen řetězec ‘Cache: Hit’.

Jako řešení jsem zvolil Testomato.com, které vyvíjí kolegové ve vedlejší kanceláři. Čímž to celé začalo.

Zadání

Zašel jsem za Honzou Prachařem, hlavním vyvojářem Testomata a popsal, co potřebuji. Velmi rychle jsem byl ubezpečen, že Testomato nic takového neumí a rozhodně nikdy umět ne…, TAK dobře, že jsem to JÁ, tak mi to do 15 minut může naprogramovat.

Jsem v oboru již nějaký pátek, a tak jsem vynásobil časovou náročnost třemi a přičetl běžné náklady práce s prostředím. (Rozuměj: čekal jsem výsledek za hodinu nebo dvě.) Ovšem Honza vypadal, že si nedělá legraci ani nepřehání, a tak jsem pustil stopky.

Preview Release

Vrátil jsem se do své kanceláře a dal se do jiné práce. Po 14 minutách přišla zpráva:  “Úprava je hotová a můžeš ji otestovat. Použij prefix ‘wikidi-http-header:’ ”.

wikidi-http-header

Testování

Vše fungovalo. Za 20 minut bylo dotestováno a Honza releasnul novou funkci na stable. Byl jsem nadšen a hned nastavil pár testů.

Dodatky k zadání

Jenže po pauze na oběd mi přišlo pár falešných hlášení a mně došlo, že problém ještě není vyřešen. Potřebuji totiž před testem spustit dotaz na URL, kterým se cache naplní.

Cesta za Honzou nezabrala moc času a nabídnuté řešení bylo rychlé a funkční. Za 28 minut jsem měl na stable možnost přidat prázdný test na začátek testovacího setu a počítat s řazením testů dle jejich pořadí v prohlížeči.

Spokojený jsem se vrhnul na procházení projektu a sepisování testů. Ovšem občasné ruční testování ukázalo, že navržené řazení není dokonalé a je potřeba jiný přístup. Už jsem zas kráčel za Honzou.

Konečné řešení

Cílové řešení je otestovat URL dvakrát. První dobrá je samozřejmě hlášena, ale v případě první špatné se celý test provede ještě jednou. Tuto funkcionalitu Testomato nemá, ale Honza za cca 20 minut navrhl řešení a doprogramoval. Když do názvu testu přidáte ‘[cache]’, tak se bude chovat, jak je třeba a já mohu testovat.

double.check

Nechal jsem pár testů běžet přes noc a vše funguje jak má. Spolupráce s Honzou byla úžasně rychlá a profesionální. Dokonce natolik, že jsem se rozhodl napsat tento článek.

Honzo, děkuji!

Chcete se s námi podělit o váš příběh? Napište nám do redakce.

Komentáře

Subscribe
Upozornit na
guest
21 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Petr Joachim

Trochu mne zaráží, že v titulku stálo „naprogramuju ti to za 15 minut“, přičemž vývojář na tom strávil nejméně 4x tolik. (14 + 28 + 20 zmíněných v textu). Nicméně i tak je to dobrý počin udělat novou věc takhle rychle a mít ji na ve stable.

Každopádně titulek by měl podle mě nabývat jednu z následujících podob (aneb, co jsem si z příběhu odnesl):

  • O vývojáři, který neuměl odhadnout náročnost úkolu a podcenil klientovo zadání
  • O vývojáři, který řekl, že je hotovo i když funkcionalita nefungovala
  • O klientovi, který dostal celé království, ale myslel si, že je ho jen čtvrtina
Vojtěch Semecký

Ten odhad 15 minut byl ale na to původní zadání a to bylo hotovo za 14 minut, ne? Zbylých 28 + 20 už byly další věci. Inkrementální změny po malých, klidně čtvrthodinových krocích, je IMHO jediný správný postup, jak vyvíjet.

Hu Hang

No ja spis vidim, ze s jidlem roste chut. Zadavatel si neuvedomil co vsechno chce, a az s dalsim releasem a osahanim featury si uvedomil co vlastne chce/potrebuje. Takze problem neni ve vyvojari ale v zadavateli.

Čelo

Já v tom teda žádný problém nevidím. To, že se požadavky mění či upravují vnímám jako přirozenou součást vývoje.

Seb.

Myslím, že Hu Hang chtěl říct, že titulky, které zahanbují vývojáře nejsou šťastné; ten kdo to spackal je zadavatel.

Milos

U technických i byznys požadavků je přirozené, že se na další zpřesnění zadání přijde až dodatečně.

Všechno napřed nedomyslím ANI JA :-)

Dor

Přesně tak. Já ten článek chápu spíše jako oslavu toho, že občas věci fungují dobře. (A že je to pro autora natolik výjimečné, že ho to motivovalo o tom napsat.) Všichni účastníci projektu jsou spokojeni, vše je v pořádku. Upřímně: hlavně to chápu jako reklamu na Testomato.

Kolemjdouci

V současnosti pak Michal Illich stojí za projekty jako Zdrojak.cz, Testomato, Wikidi nebo Devel.cz…

Martin Hassman

Tak to není zrovna velké tajemství 8-) Příběh je ze života našich kolegů. Když nás zaujmete příběhem vašich kolegů, může tu být také.

tdvorak

Kdyby se tak někdo se stejnou chutí ujal vylepšení webu devel.cz. Nebo alespoň umožnil posílat PR…

Roman Ožana

+1 na Zdrojaku markdown máme :-D předám tenhle požadavek dál

Martin Všetička

+1

Jakub M.

První provedená úprava s detekcí hlaviček se pravděpodobně teď provádí ve všech testech. To asi nebude zásadní problém a HTTP hlavičky jsou užitečné. Co mě ale zarazilo, byl ten příznak „[cache]“, který se dává do názvu. Tam bych doporučoval větši opatrnost, protože podobné triky z mojí zkušenosti k těžko odhalitelným chybám.

pavels

Nebylo by rychlejsi proste pouzit tcpdump a filtrovat na hledany retezec?

David

Alebo cronjob s curl ;-)

demijohn

Lenže keď chcem len testovať či response obsahuje reťazec „Cache: Hit“ tak su mi tie miliony ostatnych parametrov ktore Testomato zna k ničomu.

chleba

Po dlouhy dobe otevru zdrojak.cz a vykoukne na me tento opravdu, ale opravdu poucny clanek … gratulace

mr.fatblunt

Ja bych rekl ze to neni zrovna idealni zpusob vyvoje. Je to celkem pusobive, ale hodne zalezi na tom co je pod kapotou – takovy Jenkins by tuhle ulohu zvladnul za mene nez dve minuty..

mr.fatblunt

A jeste bych dodal –

Potřebuji totiž před testem spustit dotaz na URL, kterým se cache naplní.
Tohle je obzvlaste vtipne. Takovyhle „tesny“ zpusob vyvoje (a ze jsem se s nim setkal mockrat) muze mit casto velmi podobny efekt, jako kdyz clovek pise kod bez rozmyslu. Vysledne reseni je pak plne nesystematicnosti, ktere do nej vlozily ruzne „rychle napady“ co se ve velkem nadseni z hlavy rovnou sypaly do zdrojaku. Spravovat takovou „spickovou“ vec po par letech vyvoje je urcite skvely zazitek, doporucuju.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.

Pocta C64

Za prvopočátek své programátorské kariéry vděčím počítači Commodore 64. Tehdy jsem genialitu návrhu nemohl docenit. Dnes dokážu lehce nahlédnout pod pokličku. Chtěl bych se o to s vámi podělit a vzdát mu hold.