Domov arrow Programovanie arrow Čistý kód - Komentáre
Čistý kód - Komentáre
ImageRozhodol som sa preložiť kapitolu z knihy od autora Robert C. Martin. Kniha sa nazýva Clean Code a kapitola, ktorú som sa odhodlal prepísať do Slovenčiny má číslo 17, začína sa na strane 285, a v originále má názov "Smells and Heuristics".

Zaoberá sa niekoľkými kategóriami problémov často sa nachádzajúcich v zdrojovom kóde aplikácií. Tieto postrehy a návody na vyhnutie sa problémom sú uplatniteľné pre všetky programovacie jazyky, hoci príklady sú uvádzané v jazyku Java. No znovu podotýkam, prečítať by si ich mal každý programátor, aby sme si ušetrili do bdúcnosti bolesti hlavy pri údržbe hrozného kódu.

Kategórie, do ktorých Robert zápachy kódu podelil sú tieto: komentáre, prostredie, funkcie, mená, testy, všeobecné zápachy a zápachy konkrétne v Java kóde.

Komentáre (K)

K1: Nevhodné informácie

Je nevhodné, aby komentáre obsahovali informácie, ktoré by boli lepšie uchované v inom systéme, ako napríklad vo verzijnom systéme (ako napr. CVS, SVN, GIT, Bazaar, atď.) alebo systéme na sledovanie problémov (issue tracking, ako napríklad Bugzilla, Jira, atď.) alebo akýkoľvek iný systém na uchovávanie záznamov. Komentáre popisujúce históriu zmien len zbytočne zapratávajú zdrojové súbory hromadou historického a nezaujímavého textu. Vo všeobecnosti, metadáta ako mená autorov, dátum poslednej úpravy, revizné čísla, atď. by sa nemali nachádzať v komentároch. Komentáre by sa mali venovať len objasňovaniu technických detailov a dizajnu riešenia.

K2: Zbytočné komentáre

Komentár, ktorý zostarol, je nerelevantný, alebo neplatný - je zbytočný. Komentáre starnú rýchlo. Najlepšie je nepísať komentáre, ktoré sa stanú zbytočnými. Ak natrafíte na zbytočný komentár, je najlepšie ak ho opravíte alebo odstránite čo najrýchlejšie. Zytočné komentáre sa zvyknúť časom oddialiť od kódu, ktorý kedysi popisovali a stanú sa plávajúcimi ostrovčekmi bezvýznamnosti a misdirekcie v kóde.

K3: Prebytočné komentáre

Komentár je prebytočný, pokiaľ popisuje niečo, čo je jasne viditeľné z kódu aj bez komentára. Napríklad "i++; //pričítame 1". Ďalšou hrôzou zvykne byť zbytočná dokumentácia (komentáre typu Javadocs), keď by sa človeku podarilo pochopiť podpis metódy bez toho, aby si prečítali zbytočnú dokumentáciu.

/**
 * @param searchRequest
 * @return
 * @throws ServiceException
 */
public SearchResponse performSearch(SearchRequest searchRequest) 
    throws ServiceException

K4: Zle napísané komentáre

Komentár, ktorý sa oplatí napísať, sa oplatí napísať poriadne. Keď už idete písať nejaký komentár, dajte si záležať na tom, aby ten komentár v budúcnosti niekomu pomohol. Zamyslite sa nad tým, čo presne chcete povedať. Vyberajte správne slová a uistite sa, že sa vášmu komentáru dá porozumieť a že nie je zavádzajúci. Použite správnu gramatiku a interpunkciu. Netárajte a neopisujte, čo je celkom zrejmé. Budte struční.

K5: Odkomentovaný kód

Až mi vlasy dupkom vstávajú, keď narazím na bloky kódu vyradeného z prevádzky pomocou komentárov. Riadky a riadky kedysi funkčného kódu, ktoré sa niekto niekedy rozhodol odpojiť tak, že vrazí dva lomítka pred každý z nich. Ktovie aký starý tento kód je? A či tam je z nejakého dobrého dôvodu zachovaný? Nikto ho nezmaže, lebo všetci sa obávajú, že niekto ho potrebuje alebo pre tento kód má nejaké plány.

Takýto kód tam len tak nečinne sedí a hnije. Každým dňom je menej a menej relevantný - volajú sa z neho funkcie, ktoré už dávno neexistujú; používajú sa v ňom premenné, ktoré už boli premenované; je napísaný metódou, ktorá je už zastaralá, atď. Znečisťuje moduly, v ktorých sa nachádza a zavádza ľudí, ktorí sa snažia daný modul čítať. Odkomentovaný kód je ohavný.

Keď vidíte odkomentovaný kód, zmažte ho! Nepozastavujte sa nad ním - váš verzijný systém je predsa na to, že ak niekto tento kód potreboval, môže si ho kedykoľvek z neho vytiahnuť. Netolerujte zbytočný odkomentovaný kód.



Kategórie, do ktorých Robert zápachy kódu podelil sú tieto: komentáre, prostredie, funkcie, mená, testy, všeobecné zápachy a zápachy konkrétne v Java kóde.

Posledná úprava ( Monday, 25 April 2011 )
 
< Predchádzajúca   Ďalšia >