Radek Musil
About meSkills
Services
My Projects
AI news
Contact me
Zpět na slovník

Refaktoring

VývojRefactoring

Také známo jako Refactor, Refactoring, Přerestrukturování kódu

Stručně

Změna uspořádání kódu, která nemění jeho chování — stejná funkčnost, ale struktura, která přežije další úpravu.

Refaktoring znamená přejmenovávání, rozdělování, slučování a přesouvání kódu tak, aby se četl a rozšiřoval levněji, přičemž všechny testy, které prošly předtím, projdou. Rozhraní — na co uživatel klikne, co vrátí API — zůstává stejné, a právě tím se refaktoring liší od přepisování.

Proč se „v refaktorujeme později“ málokdy stane

Refaktoring nevyrobí viditelnou funkci, takže nikdy nevyhraje nad požadavkem zákazníka s termínem. Jde do backlogu, backlog je plný a ta část kódu, která ho potřebuje nejvíc, dál roste, protože přes ni teče každá nová funkce. Za půl roku by „později“ stálo třikrát víc a to z něj zase dělá něco, co nelze obhájit.

Cesta ven je přestat z něj dělat samostatný projekt. Refaktorujte to, čeho se právě dotýkáte, jako součást téže změny: checkout potřebuje slevy, tak nejdřív rozbijte šestisetřádkovou funkci na ceny na testovatelné části a pak přidejte slevy. Stejný tiket, stejné review, lepší výsledek. Výjimka je velká strukturální práce — jedna sdílená komponenta místo čtyř kopií — a ta si zaslouží vlastní rozpočet i vlastní příběh.

Pravidlo skauta

Nech kód trochu lepší, než jsi ho našel. Pokaždé, když soubor otevřete, opravte jednu drobnost: zavádějící název, duplicitní pomocnou funkci, funkci se šesti parametry sraženou do jednoho objektu. Malé a stálé vyhrává nad velkým a vzácným úklidem, který se srazí s každou otevřenou větví a nikdy se pořádně nezrecenzuje.

To pravidlo má mez. Opravovat cokoli, na co cestou k deadlinu narazíte, udělá z jednoho úkolu pět a skutečnou změnu schová v moři šumu. Recenzent nepozná, co je oprava chyby a co úklid. Držte commity s refaktoringem oddělené od commitů s chováním a máte obojí: čitelný diff i čistší kód.

Kdy refaktorovat nemáte

Refaktoring bez testů není refaktoring, ale doufání. Když oblast nemá pokrytí a není čas ho rychle doplnit, poctivé možnosti jsou dvě: napsat první test nad současným chováním, nebo to nechat být. Ani nějaké moduly si víc péče nezaslouží — report pro čtyři lidi v administraci nebo endpoint, který se příští kvartál ruší, je špatná investice.

Refaktoring navíc nikdy neopraví produktový problém. Když je proces matoucí, přepsání kódu ho jasnější neudělá. Nejdřív opravte proces a pak kód, který ho implementuje.

Zdroje

  • martinfowler.com — Definition Of Refactoring

Související pojmy

Technický dluh

Zkratky v kódu, které dnes fungují a od zítřka si účtují úrok — pomalejší změny, víc chyb, dražší provoz.

Code review

Druhý pár očí nad změnou, než se dostane do produkce — nachytá chyby, designové problémy i nepříjemná překvapení včas.

Monorepo

Několik aplikací a sdílených balíčků v jednom repozitáři — jedna verze každé knihovny a jedna změna na funkci.

Zpět na slovník
Rate limitingResponzivní design
Radek Musil|Product Engineer
Čeština·English
|Helper·Privacy Policy·Cookies·Terms of Use|

© 2026 Radek Musil. All rights reserved.