Knihovnička softwarového inženýra: Agile software development

Dnes budu psát o knize Agile Software Development, Principles, Patterns, and Practices od pana Roberta C. Martina. Je to poměrně tlustá kniha, na které je vidět, že je koncipována spíše jako učebnice. Trochu mě zklamalo, že se Agilnímu vývoji příliš nevěnuje. Budu-li hodně přísný, o agilním vývoji je jenom prvních 85 stran z asi pěti set.

V první části se seznámíme se základními principy agilního vývoje. Tato část je zakončena úžasným příkladem na programování řízeným testy (TDD). Můžete ho najít na zde. Ve zkratce jde o příklad, kdy se dva programátoři snaží napsat software pro počítání stavu hry v bowlingu. Je na něm ukázáno to, že ač se můžeme ve fázi návrhu snažit sebevíce, TDD nás může dovést k mnohem elegantnějšímu a jednoduššímu návrhu.

Druhá část knihy se jmenuje Agile design. S agilními metodikami to nemá podle mě nic moc společného. Autor tu ukazuje několik základních principů, kterými bychom se při návrhu tříd měli řídit ať už programujeme agilně nebo ne. Mezi jinými tu například podrobně popisuje Open-Closed Principle.

Zbytek knihy je více méně hodně podrobný úvod do návrhových vzorů. Zde se čtenář může seznámit skoro se všemi návrhovými vzory, včetně příkladů, UML diagramů a výpisů kódu v různých jazycích. Občas tu člověk narazí i na hodně zajímavou myšlenku, ale musím se přiznat, že tato část knihy je těžko stravitelná a některé části jsem úplně přeskakoval.

Docela zajímavá byla kapitola o závislostech mezi balíčky. U ní si člověk uvědomí jak by měl řešit rozdělení aplikace na komponenty, jak by měly vypadat závislosti, proč jsou špatné cyklické závislosti atp. Naučíte se tu dokonce spočítat míru abstraktnosti balíčku.

Hodně zajímavé jsou dvě z příloh. První je esej s názvem „What Is Software Design?“ Docela dobře ji vystihuje tento citát

Softwarový návrh není hotov, dokud není nakódován a otestován.

Doporučoval bych to pro přečtení všem, kteří věří tomu, že se dá software navrhovat malováním krabiček v UML nebo psaním dokumentů ve Wordu.

Další příloha je zajímavý příspěvek zvaný „A Satire of Two Companies“. Jde o satiru porovnávající agilní vývoj s vodopádem. Člověku při čtení občas zamrazí v zádech.

Takže abych to nějak shrnul, kniha je to zajímavá, rozhodně bych ji doporučil jako učebnici pro výuku softwarového inženýrství. Pokud se ale chcete něco dozvědět o agilním programování, sáhl bych asi jinam.