Cyklomatická složitost. Na tom záleží !!

Posted on Posted in DevOps, Programování

Jen málokdo z běžných smrtelníku( neprogramátorů ) si těžko dokáže, představit co prožívá programátor, když se mu podaří vyřešit komplikovaný problém a převést ho do programovacího jazyku. Většinou se pocit štěstí dostaví až na několikátý pokus, protože na první pokus to prostě nikdy nefunguje a pokud ano, tak je to velmi podezřele. Každopádně se nenechte moc dlouho opíjet božskou manou běžícího kódu a rychle zbystřete. I když právě prožíváte chvilku na výsluní je dobré si uvědomit, že programování je z mnohem větší části o údržbě než o psaní nových cool funkcí.

Každý z nás to zná, co napíšete dnes je těžké pochopit za týden a ještě mnohem horší je pokud nejste autorem kódu. Jakožto kvalitní programátoři v 21. století všichni dodržujeme SOLID principy, ale i tak je dobré si vytvořit automatického hlídače, který vás upozorní, že je něco špatně s vaším kódem. Zde na řadu přichází Cyklomatická složitost. WTF ? Možná víc napoví lepší název a to podmínková složitost. Jedná se číslo vyjadřující složitost programu a měří počet možných cest skrz zdrojový kód.

Za dobu, co programuji, jsem zjistil, že každý dobrý programátor je tak trochu lenoch a proto je nezbytné, aby na nás něco dohlíželo. Je úplně normální, že pokud nejste žena, tak dokážete přemýšlet v jeden okamžik pouze nad jedním problémem. I s tím se dá celkem dobře žít, ale mnohem horší je fakt, že občas napíšeme do kódu hotové podmínkové peklo, za které si budeme v lepším případě moci poděkovat za týden sami sobě nebo horším případě zavaříme kolegovi hlavu.

Doufám, že většina z nás letem světem prolistovala publikaci clean code, takže pojmenování a jiné náležitosti hezky vypadající metody nemá smysl uvádět. Nástroj, který můžeme použít, aby za nás přemýšlel se jmenuje Code Metrices a je dostupný pro VS 2015 a VS 2017 . Dle mého názoru je to nástroj, který se hodí naprosto všem programátorům.

 

 

Na obrázku je vidět, jak jednoduše rozšíření do Visual studia funguje. U každé metody vlevo umístí malé kolečko, kde se zobrazí výsledná složitost. Dle barevnosti kolečka a hodnoty čísla lze odhadnout jak moc čitelný kód píšete. Pokud se vám obrazovka červená a dosahujete čísel kolem deseti a více, tak výsledný kód je velmi málo čitelný. Obrovská výhoda tohoto přístupu je, že hned znáte výsledek a jste schopni kód refaktorovat ještě v okamžiku, kdy nad metodou přemýšlíte a nemusíte přemýšlet o tom, jak má fungovat.

Určitě se nejedná o princip Red Green Refactor, který známe z TDD 🙂 . Určitě můžete psát hezké a čitelné metody od začátku.  Je velmi důležité, abychom jako programátoři dokázali kód co nejrychleji a nejlépe pochopit, proto je zcela lepší  vydat se cestou menších a čitelných metod, než jít cestou monolitických a magických metod, u kterých nikdo neví, jak fungují.

Stačí dodržovat pár pravidel. Metody by měly být samopopisné. Větší výpovědní hodnotu má hezký název metody, ze kterého je jasné, co metoda dělá než komentář nad metodou. Pokud se vám jedna metoda nevejde na monitor, tak děláte něco špatně. Zapomeňme na metody, které mají 50 a více řádek. Nechme je v minulosti, kde mají své místo 🙂 .

Leave a Reply

Your email address will not be published. Required fields are marked *