Code Complete – Ultimátní kniha o správném kódu

Dočetl jsem Code Complete od Steva McConnella. Je to nejužitečnější kniha o programování, kterou jsem dosud četl.

Na necelých devíti stech stránkách se McConnell věnuje třem velkým tématům – řízení softwarového projektu (vytvoření požadavků, design, konstrukce, management), psychologii programování a především psaní kódu, který je čitelný, spravovatelný a snižuje složitost programu.

The first goal of programming is managing complexity
Tuto větu čtete mnohokrát a McConnell zkoumá krocení složitosti z mnoha úhlů – jak správně navrhovat třídy, jejich rozhraní a implementaci, jak rozvrhnout kód do funkcí, jak používat a nazývat proměnné (4 úžasné kapitoly), jak organizovat příkazy a deklarace a používat řídící struktury (6 kapitol) a k čemu používat komentáře v kódu.

Věnuje se i vyšším, nekódovacím procesům, které ovlivňují konečnou kvalitu programu – programování v páru, revizím kódu, testování, debuggování, refaktorování, ladění a integraci.

Všechna témata kulminují v posledních třech kapitolách. Self-Documenting Code shrnuje mikrotechniky důležité pro psaní čitelného a samovysvětlujícího kódu. Personal Character mluví o vlastnostech a návycích důležitých pro to, aby se programátor neustále zlepšoval, a Themes in Software Craftsmanship je shrnutí těch nejdůležitějších principů z nadhledu.

Bohatá bibliografie
Nemůžu opomenout bohatou bibliografii, která je uvedená v každé podkapitole. Nejde o suchý výčet knih podle klíčových slov, ale o komentovaný výběr toho nejpřínosnějšího, co si o daném tématu můžete přečíst (do 2004, roku vydání druhé edice).

Na konci knihy McConnell shrnuje nejdůležitější knihy, které by podle něj měl přečíst každý programátor.

V češtině jako Dokonalý kód
Code Complete vyšel v češtině jako Dokonalý kód. Podle zběžného zhlédnutí ukázek a porovnání s originálem se mi překlad zdá trochu těžkopádný, občas zavádějící a nepříliš dobře vysázený. Bubliny v bočním sloupci, které v originále upozorňují na důležitá místa v ukázkách kódu, český vydavatel převedl do inline komentářů, což jednoznačně snížilo přehlednost.

Některé věty jsou v češtině méně srozumitelné či nepřesné:

Using > instead of >= or < instead of <= is analogous to making an off-by-one error in accessing an array or computing a loop index.

Operátor > místo operátoru >=, či operátor < místo operátoru <= je stejnou chybou jako nepozorné překročení mezí pole při opakovaném zvyšování hodnoty cyklu.

Některé jsou přeložené chybně.

This ordering convention conflicts with the C-library convention of putting the modified parameter first.

Tato konvence uspořádání parametrů je v rozporu s konvencí pro upravované parametry.

A narazil jsem i na větu, která z originálu vypadla úplně:

Put the case you normally expect to process first. This is in line with the general principle of putting code that results from a decision as close as possible to the decision. Here’s a code example…

Nejprve vždy uvádějte příkazy, které zpracovávají běžné alternativy. Následující ukázka…

Pokud volíte mezi překladem a originálem, sáhněte jednoznačně po originálu. Kniha je opravdu čtivá a srozumitelná.
Pokud ale volíte mezi překladem a nepřečtením, sáhněte po překladu.

Pro koho kniha je?
Je kniha i pro pokročilé programátory? Správný návrh rozhraní třídy, pojmenovávání proměnných, používání if, to už mám přece dávno za sebou.

Existuje velká šance, že jste se některými otázkami, o kterých se mluví v Code Complete, nezabývali explicitně. Buď jste přejali postupy a konvence z nějakého velkého projektu, nebo si potichu nacházeli vlastní. Některá z vašich rozhodnutí mohla být podvědomá. Code Complete ty otázky zdůrazní a umožní vám si na ně znovu, tentokrát vědomě odpovědět.

McConnell každopádně počítá i s pokročilými programátory a pravidelně upozorňuje na podkapitoly, které je nejspíš nebudou zajímat a na podkapitoly, které pro ně budou užitečné.

Já knihu přečetl od začátku do konce a během čtení jsem doslova cítil, jak se můj kód a mé uvažování o programech zlepšuje.

Rozhodně Code Complete doporučuju programátorům všech úrovní, ale kvůli kapitolám a bibliografii o vedení projektu, psychologii programování a o vlivu pracovního prostředí na výkonnost i všem projektovým a softwarovým manažerům a majitelům firem, které programátory zaměstnávají.

Příspěvek byl publikován v rubrice Nezařazené. Můžete si uložit jeho odkaz mezi své oblíbené záložky.

3 komentáře u Code Complete – Ultimátní kniha o správném kódu

  1. Jelenik napsal:

    Velmi dobre spracovany tip na knizku – davam si ju do poradovnika. Kazdopadne si ma postavil ale pred dilemu, ze ci si zohnat tu cesku verziu, alebo radsej anglicku… Resp. neviem ci zvladnem taku uplne technicku anglictinu.

    • Martin napsal:

      Ta kniha je napsaná velmi dobře a srozumitelně. Pokud si máš vybrat ze dvou cizích jazyků – češtiny a angličtiny, rozhodně sáhni po angličtině.

  2. Pingback: Refactoring, neboli splácení technického dluhu | Webtrh Blog

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

*

Můžete používat následující HTML značky a atributy: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>