Pachy v kódu

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

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 odkrýt pokud je kód podroben důkladné analýze.

Nejčastější pachy v kódu[editovat | editovat zdroj]

  • 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.
  • 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ěla 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í řádu 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 Popisuji problém, kdy existuje 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ě. Tyto data jsou mnohdy různě rozmístěna. Skupiny dat, které se drží pohromadě si zaslouží vlastní objekt.
  • 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.
  • Líná třída Je třída, která nedělá dost, aby se vyplatila, by měla být odstraněna. Mate-li třídu, která neděla dost a tím pádem její existence není obhajitelná, měla by se odstranit čí sloučit do jiné třídy.
  • Datová třída Tyto třídy obsahují položky, jejich přístupové metody a nic víc. Jsou to jen úložiště dat. Tyto třídy jsou jako děti. Pro začátek jsou užitečné, ale chceme-li je použit jako objekty, musejí převzít nějakou zodpovědnost.
  • Komentáře Často v kódu lze narazit na pečlivě komentovaný kód. Po detailním zkoumání zjistíte, že komentáře jsou zde jen proto, že kód je špatný. Tyto komentáře signalizuji špatný 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[editovat | editovat zdroj]

  • 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, ale vylepšuje jeho vnitřní strukturu s minimálním rizikem vnášení chyb. Refaktorování mění programy po malých krocích. Pokud se spletete, je jednoduché chybu najít.Alfou a Omegou úspěšného refaktorování je sada solidních automatických testu.

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[editovat | editovat zdroj]

  • Refaktoring: zlepšení existujícího kódu - Martin Fowler, nakladatelství Grada, rok vydání 2003, ISBN: 80-247-0299-1

Externí odkazy[editovat | editovat zdroj]