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

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:’ ”.
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.
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.
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):
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.
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.
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.
Myslím, že Hu Hang chtěl říct, že titulky, které zahanbují vývojáře nejsou šťastné; ten kdo to spackal je zadavatel.
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 :-)
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.
V současnosti pak Michal Illich stojí za projekty jako Zdrojak.cz, Testomato, Wikidi nebo Devel.cz…
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é.
Kdyby se tak někdo se stejnou chutí ujal vylepšení webu devel.cz. Nebo alespoň umožnil posílat PR…
+1 na Zdrojaku markdown máme :-D předám tenhle požadavek dál
+1
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.
Nebylo by rychlejsi proste pouzit tcpdump a filtrovat na hledany retezec?
Alebo cronjob s curl ;-)
Testomato vs tcpdump/curl je jako srovnavat gimp vs malovani. Testomato meri a zjistuje vic parametru nez bezny clovek zna.
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.
Když chceš mít testy pohromadě, tak zvolíš službu s vhodným rozsahem. Krom Cache:Hit používáme i další vlastnosti testomata.
Po dlouhy dobe otevru zdrojak.cz a vykoukne na me tento opravdu, ale opravdu poucny clanek … gratulace
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..
A jeste bych dodal –