Čitelný kód, nebo hodiny ladění: co rozhoduje?
U divokých řek s peřejemi, válci a silným proudem jde o úplně jiné parametry. Vesta musí mít vyšší nosnost, pevné boční panely a ochranu krku, která vás podrží ve vodě čelem vzhůru. Helma musí krýt spánky a týl, ne jen temeno. Typická chyba je půjčit si helmu o číslo větší s tím, že „pod ni vejde čepice". Při nárazu do skály se taková helma posune a odhalí právě to místo, které měla chránit. Správná helma sedí pevně, ale netlačí. Když s ní zakýváte hlavou, nesmí se hýbat samostatně.
Typická závada je zaseknutý termostat. Topítko hřeje nepřetržitě a teplota v nádrži stoupá i po dosažení nastavené hodnoty. Poznáte to tak, že kontrolka svítí, i když by už svítit neměla, a voda je teplejší, než jste nastavili. Riziko je dvojí: přehřátí ryb a při poklesu hladiny i prasknutí skla. Jakmile zjistíte, že topítko nespíná, okamžitě ho odpojte ze zásuvky. Nečekejte, že se samo vzpamatuje.
Nejčastější je 22stupňový kruh kolem Měsíce nebo Slunce. Vzniká lomem světla v ledových krystalech ve vysoké oblačnosti – nejčastěji v řasové obloze ve výšce nad 6 kilometrů. Když uvidíš kolem Měsíce slabý bílý prstenec, zkus zaklonit hlavu a hledat i vedlejší jevy: parhelia (vedlejší slunce) po stranách, případně horní a dolní dotykové oblouky. Parhelia bývají nápadnější než samotný kruh, zvlášť když je Slunce nízko nad obzorem.
Jaký je rozdíl mezi koupelí před dechem a po n�
Pátý návyk je ošetřování chyb. Prázdný catch blok je tichý zabiják. Chybu buď zpracujte, nebo předejte dál s informací, kde vznikla. U asynchronního kódu nezapomeňte na try/catch uvnitř async funkcí. A když něco selže, logujte kontext, ne jen „chyba". Právě kontext zkracuje ladění z hodin na minuty.
Čtvrtý návyk je konzistence. Ať už zvolíte cokoli – středníky, uvozovky, odsazení – držte to v celém projektu. Nástroje pro formátování kódu nastavte jednou a nechte je pracovat při každém uložení. Rozdíly ve stylu mezi soubory způsobují, že mozek při čtení neustále přepíná kontext, a to stojí čas. Konzistentní kód se čte rychleji, a rychlejší čtení znamená rychlejší hledání chyb.
Druhou vychytávkou je stupňovitý botník místo ploché police. Nasazením dvou polic nad sebe získáte dvojnásobnou kapacitu na stejné půdorysné ploše. Spodní patro patří vysokým botám a holínkám, horní nižším teniskám a sandálům. Třetí vychytávkou jsou průhledné krabice s výřezem vpředu. Nemusíte je otevírat, abyste viděli, co je uvnitř, a boty se nepráší. Krabice ale musí mít odvětrání, jinak se v nich drží vlhkost a pach. Do každé krabice dejte jen jeden pár, jinak přestane být přehledná.
Třetí návyk se týká předčasných optimalizací a zbytečných abstrakcí. Vytvořit obecné řešení pro případ, který nikdy nenastane, je nejrychlejší cesta k nečitelnému kódu. Pište konkrétně, dokud vás k abstrakci nedotlačí skutečná potřeba. Teprve když se stejný vzorec objeví potřetí, má smysl ho vytáhnout. Do té doby je přímý kód kratší, srozumitelnější a hlavně laditelný.
Žádný z těchto návyků nezavádí novou knihovnu ani složitý proces. Jde o rozhodnutí psát tak, aby kód za týden pochopil i ten, kdo ho nepsal. Pokud si z článku odnesete jednu věc, ať je to toto: čas strávený laděním je přímo úměrný času, který jste předtím ušetřili na čitelnosti.
Druhý návyk je o velikosti funkcí. Funkce, která dělá tři věci, se ladí třikrát déle. Rozdělte ji tak, aby každá část měla jediný důvod ke změně. Není to o počtu řádků, ale o počtu odpovědností. Když v těle funkce vidíte slovo „a" ve popisu toho, co dělá, je čas ji rozdělit. Malé funkce se také snáze testují a chyba se v nich lokalizuje během chvíle, ne během odpoledne.
Každý, kdo někdy hodiny hledal chybu, kterou způsobil vlastní nepořádek v kódu, ví, že nejde o estetiku. Čitelný kód není cíl, je to nástroj, který zkracuje dobu mezi zadáním a funkčním výsledkem. Pět návyků níže není o filozofii, ale o konkrétních krocích, které se dají zavést hned.
Pojmenování, které mluví za vás První návyk se týká názvů. Proměnná data neříká nic, seznamFaktur řekne všechno. Funkce zpracuj() nutí čtenáře otevřít tělo, vypocitejDph() ho pošle přímo k věci. Vyhněte se zkratkám, které znáte jen vy, a jednoslovným názvům, které se v souboru opakují v pěti významech. Pokud název nedokážete vyslovit, je pravděpodobně špatný. Stejné pravidlo platí pro booleany: jeAktivni místo stav, maPristup místo flag.