Menu

Rozhovor s Jirkou Pejlou o Coderetreat

Jirka je pro mě vzácným příkladem toho, proč má smysl se překonávat i v drobnostech. Brzké víkendové vstávání, celodenní kódování v partě s neznámými. Přesto ke konci dne člověka zaplaví radost z nových poznatků. To už si zaslouží rozhovor.

Co je Coderetreat

Test-driven development je přístup k vývoji softwaru založený na malých, stále se opakujících krocích, vedoucích ke zefektivnění celého vývoje – tzn. zásadní je, že jako první se píšou testy a až poté samotná funkcionalita.

Už teď vám to zní moc tvrdě?

Říká se, že když je programátor dobrý, postupuje právě pomocí TDD.

Jednodenní akce Coderetreat nabízí intenzivní procvičování základních principů modulárního a objektově-orientovaného návrhu pomocí hry Game of Life.

Současně využívá přínosu párového kódování. Účastníci si tak zlepšují své schopnosti psát kód, zvykají si na “obrácený” postup a uvědomují si reálný přínos.

Ještě aby ne, když aktivně procházíte 6 programovacích sekcí, každá trvá 45 minut. Vše zakončeno velkou retrospektivou. Občas vás facilitátor dokonce napomene za to, že máte více než 3 řádky kódu v jedné metodě. Je to prostě úžasné.

Nevěříte? Jirka Pejla se letošního ročníku zúčastnil a v následujícím rozhovoru jsou jeho postřehy.

Jirka Pejla a jeho zenová zahrádka.

10+1 otázek o průběhu Coderetreat

Je sobota ráno, budík zvoní v 6:45 h. Tebe čeká celý den programování. Co se Ti honilo hlavou?

No, musel jsem se k odchodu dokopat. O víkendu je to přece jen těžší. Ale naštěstí jsem v tom nebyl sám. Původně bylo přihlášeno kolem 50 lidí a 20 ve frontě. Když jsem se večer před akcí podíval na event, bylo tam najednou 5 míst volných. Start v sobotu v 8 je prostě děsivý. (smích)

Neměl jsi strach z toho, že se budeš každou hodinu bavit s jiným člověkem? Nebo že budeš muset prezentovat svůj kód?

Vůbec jsem nevěděl, co od toho očekávat. Hledal jsem popis akce, ale moc jsem se nedočetl. Chápal jsem to jako záměr. Asi by mi ale pomohlo detailnější vysvětlení.

Naštěstí to nebylo tak, že bych musel prezentovat svůj kód všem. Dělá se to jen ve dvojicích. Navíc, jsou to v pohodě lidi, takže se s každým domluvíš. Nebyl tam nikdo, s kým bych se nedokázal bavit. Jen tam nebyla žádná holka. (smích)

Během dne se pracuje ve dvojicích. Výsledky se veřejně neprezentují a pokaždé se smažou.

Co říkáš na TDD přístup? Dokážeš si představit v reálném případě, že nejdříve napíšeš test a až následně funkčnost?

O TDD jsem předtím jen četl, ale nezkoušel. Myslím si, že by to byl ideální přístup. Asi to nejde na všechno, ale mít alespoň základní funkčnosti projektu pokryté určitě není od věci. Není ale jednoduché dělat testy, když se pracuje s databází.

Na akci byl kluk, který říkal, že ty testy musí pořád přepisovat, tak se mu snažili vysvětlit, že testy píše špatně. Testy se mají napsat tak, aby se musely změnit jen při změně funkčnosti. Něco na tom bude.

První sekce, co jste tam napsali?

První sešnu jsme nenapsali vůbec nic. (smích) Vše jsme navrhovali jen na papíře. Dávali jsme dohromady datový model – jak to uložíme, jak to optimalizujeme, aby to mohl být nekonečný svět (což vychází ze hry Game of Life). Rozkreslovali jsme si to na papír. Nakonec jsme nic nenaprogramovali. Prostě taková analýza.

Jak jste to nakonec vymysleli, pamatuješ si to?

Že budeme ukládat jen ty živé buňky se souřadnicemi, kde buňka je třída, co má jen souřadnice, a ukládá se do seznamu objektů. Pro nás bylo důležité zjistit, kolik sousedů je živých, což zjistíš pomocí toho seznamu/listu.

Celý den vládla pohoda. Jirka na fotce v zeleném tričku úplně vzadu u okna.

Super. Jak vypadal druhá sekce?

To už jsme dostali doplňující úkol, psali jsme testy. To už bylo zajímavé. Testem jsme měli ověřit, zda buňka přežije nebo ne.

Vtipné je, že vše, co jsme napsali, jsme pak po každé sešně museli smazat. Bylo taky zajímavé, že k tomu každý přistupuje jinak a současně to dělá v jiném jazyce.

Každou sešnu jsme měli stejný úkol (naprogramovat Game of Life), ale přibývaly doplňující úkoly. Měli jsme třeba používat výhradně immutable třídy a metody bez návratových hodnot. To bylo fakt šílené.

Co těch následujících 6 hodin?

Každá sešna utekla hrozně rychle. Na konci dne bylo zajímavé, že jsme měli splnit úkol co nejrychleji a pak práci předat. Dvojice se prostřídaly, přišel nový programátor a měl refaktorovat ten naprasený kód. (smích)

Myslíš si, že Codetreat má smysl dělat firemně? Programátoři a kodéři. V pracovní den?

To by bylo dobrý. Je asi potřeba před akcí víc informovat o tom, co se bude dít, jak se na to připravit, že se pracuje ve dvojicích a jak vypadá retrospektiva. Teď mi vlastně došlo, že na akci nevadí, že člověk umí dobře jen jeden programovací jazyk.

Co Tě v průběhu dne překvapilo úplně nejvíce?

Překvapilo mě vlastně to TDDčko. Jak se má postupovat po těch malých krocích - když píšeš test, napíšeš si nejdříve assert. A pak až případně dopisuješ, co pro ten assert potřebuješ – což právě bylo řečeno při jedné retrospektivě.

Průběh retrospektivy.

Myslíš, že Tě to někam posunulo?

Určitě. Bylo to poučné a vyzkoušel jsem si spoustu programovacích jazyků.

Závěr?

Doporučuju tuto akci všem programátorům. Fajn bylo, že organizátoři měli seznam doporučené četby a dali nám i vouchery na slevy na e-booky. A taky nám doporučili spoustu dalších podobných akcí.

Související odkazy

Sledujte @CodeRetreatCZ na Twitteru