Ako sa vyhnúť tomu, aby ti kolega pohladkal hlavu kyjakom alebo 7 tipov na písanie čistého kódu

Ako sa vyhnúť tomu, aby ti kolega pohladkal hlavu kyjakom alebo 7 tipov na písanie čistého kódu
Napísať kód nie je veľkým umením. V konečnom dôsledku pointa je v tom, aby spĺňal špecifikáciu, čiže robil to, čo klient potrebuje. Splniť špecifikáciu sa dá rôznymi spôsobmi. Klientovi je úplne jedno ako, len nech aplikácia funguje, nech robí to, čo má. Pokiaľ ale na projekte robíme spoločne v tíme niekoľkých programátorov, niekoľko mesiacov, tak nie je vôbec jedno, akým štýlom je kód napísaný.

Ako by to malo s kódom byť

Dobre napísaný kód je aj dobre čitateľný. Dokáže ho prečítať a pochopiť hociktorý programátor. Teoreticky aj “ne- programátorovi”, stačí ovládať iba angličtinu. Má byť ľahko udržiavateľný a málo náchylný na bugy. Aj keď nejaký bug vyskočí, veľmi rýchlo sa dá odstrániť. Pokiaľ je potrebné, jednoducho sa dá rozšíriť ďalšou funkcionalitou. V skratke je ideálny.

Prečo je problém tvoriť takýto kód stále?

Problém vyplýva z rôznych dôvodov. Nedostatok motivácie alebo času. Chronickou epidémiou mnohých spoločností je podcenenie pomeru kvality kódu voči jeho cene. Ďalším môže byť nedostatok znalostí princípov písania čistého kódu.

Dôležité je, napísať čistý kód správne.
Nie je vôbec jedno, akým štýlom je kód napísaný.

Princípov a odporúčaní je veľa. V rámci tohto článku sme vybrali sedem bodov, ktorých dodržiavaním budete zaručene tvoriť lepší kód.

  1. Píš kód tak, akoby si ho písal cudziemu človeku, ktorý keď si ho prečíta a bude mať otázky, za každú jednu dostaneš úder s lyžicou po chrbte
Ginosaji bude ťa bude nahánať!
Bude ťa nahánať Ginosaji!

Pri písaní kódu je dôležité mať stále v hlave myšlienku, že náš kód bude čítať cudzí človek, ktorý nás bude otravovať so zdanlivo triviálnymi otázkami, aj počas dovolenky. Ani ten náš kolega nie je nadšený z toho, že musí lúštiť náš …ehm… kód. Veľmi často tým “kolegom” sme my sami v budúcnosti.

  1. Použi nástroje, ktoré automatizovane dokážu upraviť kód podľa štandardov

Mnoho editorov kódu ako napríklad Sublime, NetBeans alebo PHPStorm obsahujú už v základnom balíku nástroje na automatické formátovanie kódu podľa štandardov. Pokiaľ by neobsahoval, stačí pohľadať vo voľne dostupných vsuvných moduloch kľúčové slová ESLint, JSLint, PHPLint alebo podľa toho, v akom programovacom jazyku píšeme zdrojový kód.

  1. S kladivom sa okná neumývajú!

Dôležitým bodom je správne nazývanie našich nástrojov. K čitateľnosti kódu vo veľkej miere prispieva voľba správnych názvov premenných, funkcií a vo všeobecnosti objektov, ktoré vytvárame. Napríklad, keď potrebujeme vytvoriť funkciu, ktorá vráti zmenšený obrázok vo veľkosti 200x150px pre slider, namiesto getImageThumbnail alebo getSmallerImage alebo nebodaj getImage200x150, môže byť lepšia voľba getSliderImage.

Písanie inline komentárov v kóde podľa princípov čistého kódu je tiež zlou praktikou, lebo keď niečo potrebujeme vysvetliť priamo v kóde, môže to naznačiť to, že sme niečo nevhodne nazvali. Dobrým návykom je po dokončení a otestovaní funkcie alebo metódy pozrieť sa ešte raz na názov a uistiť sa, či sme pri výbere naozaj dobre rozhodli.

Správne pomenovanie jednotlivých častí kódu, prispieva ku lepšiemu čítaniu kódu.
Správne pomenovanie jednotlivých častí kódu, prispieva ku lepšiemu čítaniu kódu.
  1. Nestvor Boha lebo ťa potrestá!

V mnohých projektoch so zle napísaným kódom môžeme naraziť na vševedúce, nedotknuteľné božské bytosti. Jedná sa o tisíc a viac riadkové triedy alebo niekoľko sto riadkové metódy, ktoré vedia príliš veľa, robia príliš veľa a žiadny z programátorov sa ich nechce dotknúť lebo sa bojí, že jednou drobnou úpravou pokazí sériu funkcionalít.

V teórií sa tomu hovorí The Blob alebo God object. Je to antipattern, ktorému sa treba vyhnúť. Často sa takýmto objektom stane trieda User, v ktorej sa nabalia všetky vymoženosti prihláseného používateľa.

  1. Rozdeľ a panuj!

...je jedným zo spôsobov ako sa zbaviť spomenutých God objektov, pokiaľ sa nám už podarilo sa k nejakému dostať alebo sa im vyhnúť. Problematiku, ktorú rieši náš kód, treba rozdeliť aj na úrovni jednotlivých funkcií, resp. metód. Funkcie by mali byť jednoúčelové. Keď sa snažíme správne nazvať funkciu podľa toho, čo robí a dostaneme sa napríklad k názvu generateAndSave, tak nám to naznačuje, že by sme to mali rozdeliť.

  1. Buď konzistentný!

Rovnaký problém by mal byť riešený rovnakým spôsobom v rámci celého projektu. Napríklad, keď máme niekoľko podobných tried, ktoré majú podobné vlastnosti a podobné metódy, tak by mali byť v rovnakom poradí. Týka sa to aj používaného názvoslovia. Mnoho projektov má spísané styleguides, ktorých účelom je zaistenie konzistencie v zdrojovom kóde. Ak sa používa nejaký framework, je dobré dodržiavať princípy a štýl daného frameworku.

  1. Navzájom si čítajte kódy!

V programátorskom žargóne sa tomu hovorí Code review a relevantne dokáže zlepšiť kvalitu produkovaného kódu v tíme. Jedná sa o praktiku, keď si programátori pravidelne navzájom čítajú kód a dávajú k tomu komenty. Čo je zaujímavé, čo je zlé alebo čo by bolo treba prerobiť… 

Existuje veľa kníh a článkov s rôznymi odporúčaniami na zlepšenie kvality kódu. Každopádne je dôležité, aby sme každým commitom do verzionovacieho systému odoslali kód aspoň o trošku v lepšom stave, než v akom sme ho stiahli.

Zdroj:
Clean Code: A Handbook of Agile Software Craftsmanship - Martin, Robert C.
15 Rules for Writing Quality Code
10 Ways to Write Cleaner Code
Software Design Patterns
Whip Monstrous Code Into Shape