Za „pachy“ v kódu lze považovat jakýkoliv symptom v kódu, který ukazuje na hlubší problém. Tento problém často nelze vidět hned, ale může být odkryt, pokud je kód podroben důkladné analýze.
Nejčastější „pachy“ v kódu Duplicitní kód Figuruje v přehlídce „pachu“ na prvním místě. Je to identický či velice podobný kód, který existuje na více místech. Tento kód je špatně udržitelný a náchylný k chybám. Příkazy switch Potíž s tímto příkazem je většinou v jeho duplicitě. Často v kódu lze nalézt stejné příkazy switch na mnoha místech v programu. Když chceme přidat novou větev, musíme najít a změnit všechny výskyty příkazu.
Dlouhé metody Budí podezření, zdali vykonávají opravu jednu konkrétní funkcionalitu odpovídající jejích názvu. Kratší metody jsou vždy čitelnější, srozumitelnější a jednodušší. Velká třída Pokud třída dělá příliš mnoho, obvykle se to projevuje velkým množstvím instančních proměnných. Tyto třídy jsou kandidáty pro duplicity, chaos a zmar. Jsou jako dlouhé metody hůře čitelné a srozumitelné.
Rozptýlené úpravy Pocítíte je, pokud při každé změně musíte provést řádu drobných úprav v mnoha třídách. Místa, která je potřeba upravit, je těžké najít. Rozptýlené úpravy nastávají při jedné změně, která ovlivní řadu tříd.
Dlouhý seznam parametrů Metody s dlouhým počtem parametrů jsou většinou nesrozumitelné. Pokud předávané parametry obsahuje nějaký objekt, je řešením předat jako parametr tento objekt. Chybějící schopnosti Popisují problém, kdy existují metody, které se více zajímají o jiné třídy, než o třídy, v nichž jsou vytvořené. Abychom se vyhnuli chybějícím schopnostem tak základním pravidlem je sdružovat věci, které se spolu mění.
Datové shluky V návrhu programu se často můžeme setkat s daty, která patří k sobě. Tato data jsou mnohdy různě rozmístěna. Skupiny dat, které se drží pohromadě si zaslouží vlastní objekt. Líná třída Je třída, která nedělá dost, aby se vyplatila, by měla být proto odstraněna či sloučena.
Komentáře Často v kódu lze narazit na pečlivě komentovaný kód, kde komentáře jsou jen proto, že kód je špatný a signalizuji kód, který má hnilobná ložiska. Komentář je vhodné použit pokud nevíme kudy dál. Je dobrý k vysvětlení, proč je něco uděláno určitým způsobem.
Refaktorování neboli jak na „pachy“ v kódu
Refaktorování je disciplinovaný proces provádění změn v kódu takovým způsobem, že nemá vliv na vnější chování kódu, zato však vylepšuje jeho vnitřní strukturu a pomáhá umenšit riziko dosavadních chyb, i za cenu rizika vnášení nových chyb, které je však menší než dosavadní riziko. Refaktorování mění programy po malých krocích. Pokud se spletete, je cílem, aby bylo jednoduché chybu najít. Alfou a Omegou úspěšného refaktorování je sada automatizovaných testů.
Proč refaktorovat? Těžko se upravují programy, které se těžko čtou. Těžko se upravuji programy s duplicitní logikou. Těžko lze upravit programy, které po přidaní funkcionality vyžadují změnu funkčního kódu Těžko lze upravovat kód se složitými strukturami podmínek.
Přínosy refaktorování Zlepšuje návrh software Vede k lepši srozumitelnosti softwaru Pomáhá hledat chyby Umožňuje významně zrychlit programování
Literatura Refaktoring: zlepšení existujícího kódu – Martin Fowler, nakladatelství Grada, rok vydání 2003,
Externí odkazy Stránka Martina Fowlera o refaktoringu
Kategorie:Programování