Nenápadní knížečka, která určitě stojí za přečtení, pokud to s programováním myslíte alespoň trochu vážně.

Hlavním úkolem každého, kdo se pustí do programování, je zvládnout složitost. I taková zdánlivě jednoduchá věc, jako je program pro vytvoření a poslání faktury, se skládá z velkého množství drobných krůčků, které je třeba všechny promyslet a pak naprogramovat. Pokud se k tomu postavíte z nesprávné strany, s velkou pravděpodobností se v tom zamotáte a v nejlepším případě vyrobíte program, který dodáte pozdě, nebude příliš kvalitní a jeho opravy budou velice obtížné – a nejspíš ztratíte zákazníka…

Programátor pragmatik nabízí řadu pohledů na nejrůznější nebezpečí, které zdárnou tvorbu softwaru ohrožují, ale také řadu cest, jak se těmto nebezpečím vyhnout. Začíná od pragmatické filozofie, jejímž základem je přijetím plné zodpovědnosti za svůj díl práce na projektu a které zahrnuje mimo jiné volbu programovacího stylu, rozumnou komunikaci s okolím a kritický přístupem ke světu. Rozebírá nejčastější programátorské hříchy, jako je opakování již napsaného kódu, zbytečná provázanost kódu, nedostatky v testování apod. Nabízí různé přístupy ke zjišťování toho, co zákazník vlastně potřebuje – názvy kapitol „Trasovací střely“, „Prototypy a poznámky“ nebo „Oborové jazyky“ snad ani není třeba komentovat.

Stranou nezůstanou ani základní nástroje, které by měl mít programátor znát a mít k dispozici, ať se jedná o editory, ladicí nebo testovací nástroje nebo třeba generátory kódu.

Dále tu najdeme povídání o předprojektové přípravě a jejích pastech, o pragmatickém přístupu k testování, ale také o programovacím stylu, kdy programy fungují vlastně náhodou – zní to hrozně a hrozné to také je, ale z vlastní zkušenosti vím, kolik programátorů se takhle chová.

Autoři neváhají sáhnout pro příkladech, které se vlastně programování ani netýkají, ale které velice názorně objasňují, o co jim jde. Například ortogonalitu zdrojového kódu – tedy požadavek, aby na sobě jednotlivé součásti pokud možno nezávisely – vysvětlují na příkladu řízení vrtulníku: Jestliže snížíte otáčky hlavní vrtule, vrtulník začne klesat, ale zároveň se nejspíš začne i točit kolem svislé osy, a pokud tomu chcete zabránit, musíte zároveň změnit i tah ocasní vrtule… Řízení vrtulníku prostě není ortogonální systém, a tak se vrtulník řídí obtížně, a podobné je to i s neortogonálními programy.

Autorům se podařilo projít prakticky vše, od sběru požadavků přes návrh, psaní kódu až po testování, a nevyhnuli se ani otázce sebevzdělávání programátora. V jedné z příloh najdeme seznam doporučené literatury a dalších zdrojů, které se podrobně věnují tématům, které tato kniha probrala jen „pragmaticky“. Mimochodem, u každé z kapitol jsou i cvičení, která vás donutí zamyslet se nad probíraným tématem podrobněji a ujasnit si věci, které vám mohly uniknout nebo které vám připadaly samozřejmé, ale samozřejmé nejsou; v jiné z příloh jsou odpovědi na ně.

Záběr této knihy je velký, ale přitom je napsána velice přístupným jazykem a je i dobře přeložena, takže číst ji mi působilo vyloženě potěšení. Neměla by chybět v knihovně žádného programátora.

Miroslav Virius