CMD Master
Zpět na blog
Arnošt Havelka

Šablony promptů pro refaktoring kódu

Znovupoužitelné šablony AI promptů pro bezpečný refaktoring, který zachovává chování, omezuje rozsah, vyžaduje testy a definuje ověření.

Šablony promptů pro refaktoring kódu

Bezpečný prompt pro refaktoring říká AI asistentovi pro programování, jaké chování má zachovat, kde pracovat, které testy definují kontrakt a jak ověřit výsledek. „Ukliďte to“ není plán refaktoringu. Je to pozvánka ke změnám, které jste nerevidovali.

Tyto šablony používejte jako výchozí bod. Doplňte údaje v hranatých závorkách fakty z vaší kódové základny a před rozsáhlou změnou požádejte o analýzu.

Šablona: bezpečný refaktoring

Refaktorujte [komponentu/modul/funkci] tak, aby se zlepšil [konkrétní problém
s udržovatelností].

Zachování chování: Ponechte [veřejné API, viditelné chování, události, zpracování
chyb, přístupnost, charakteristiku výkonu] beze změny.

Rozsah: Omezte změny na [soubory/hranici]. Neměňte [explicitní cíle mimo rozsah].

Testy: Určete stávající testy, které prokazují aktuální kontrakt. Pokud chráněné chování
není pokryté, přidejte cílené regresní pokrytí.

Kritéria přijetí: Duplicita nebo provázanost se omezí, veřejné chování zůstane
nezměněné a diff neobsahuje nesouvisející úklid.

Ověření: Spusťte [cílený příkaz testu], kontrolu typů a [ruční pracovní postup].
Před úpravou popište aktuální kontrakt a nejmenší bezpečnou extrakci.

Použijte ji, když znáte zlepšení, ale chcete ochránit stabilní hranici funkce.

Šablona: vyčlenění komponenty

Vyčleňte opakovanou [oblast UI] z [nadřazených komponent] do nejmenší
znovupoužitelné komponenty.

Zachování chování: Zachovejte totožné viditelné popisky, zaměření klávesnice, atributy aria,
stav načítání, analytické události a mobilní rozložení.

Rozsah: Pouze [nadřazené komponenty], nová komponenta a přímé testy. Nepřesouvejte
vlastnictví načítání dat nebo mutací do vyčleněné komponenty.

Testy: Zachovejte nebo přidejte testy stavů [prázdný, načítání, chyba, naplněný] a
interaktivního chování, na kterém uživatelé závisejí.

Kritéria přijetí: Nadřazené komponenty používají novou komponentu, odlišné chování
zůstává explicitní a žádné veřejné props ani odkazy se neočekávaně nemění.

Ověření: Spusťte cílené testy komponent, zkontrolujte vykreslené stavy při šířce desktopu
i mobilu a nahlaste každé chování, které nešlo ověřit.

Před jakýmkoli vyčleněním analyzujte existující rozdíly.

Řádek o vlastnictví brání běžné chybě, kdy se vizuální extrakce smíchá s přepisem správy stavu.

Šablona: omezení duplicity

Najděte duplicitní logiku v [seznamu souborů] a navrhněte nejmenší
sdílenou abstrakci.

Zachování chování: Zachovejte veřejné chování každého volajícího, výchozí hodnoty,
zpracování chyb, telemetrii a časování.

Rozsah: Negeneralizujte mimo tyto volající. Rozdíly ponechte viditelné, pokud
představují pravidla produktu, nikoli náhodnou duplicitu.

Testy: Namapujte každý stávající test na sdílené chování, které chrání. Přidejte jeden test
pro každou významnou odchylku.

Kritéria přijetí: Opakovaná logika se centralizuje jen tam, kde je kontrakt
skutečně stejný; volající zůstanou čitelní a ekvivalentní svým chováním.

Ověření: Spusťte cílené testy volajících a porovnejte jejich pozorovatelný výstup
před změnou a po ní.

Před kódem vraťte analýzu společných versus záměrných rozdílů.

Sdílený kód není automaticky lepší. Prompt by měl přimět asistenta prokázat, že je chování opravdu sdílené.

Šablona: refaktoring výkonu

Prozkoumejte problém s výkonem v [obrazovce/pracovním postupu].

Důkazy: [měření, trace, časování, hlášení uživatele nebo reprodukovatelný scénář].
Nepředpokládejte, že odpovědí je [memoizace/cachování/dělení kódu].

Zachování chování: Zachovejte beze změny načítání viditelné pro uživatele, aktuálnost,
přístupnost, autorizaci a chování při chybě.

Rozsah: Nejdříve prozkoumejte [cesty]. Bez změřené potřeby nepřidávejte perzistentní cache,
novou knihovnu stavu ani závislost na serveru.

Testy: Zachovejte existující testy chování. Regresní nebo měřicí kontrolu přidejte jen
tehdy, pokud pro ni projekt má stabilní konvenci.

Kritéria přijetí: Pojmenujte úzké hrdlo, ukažte výchozí stav i výsledek a zachovejte
chráněné chování.

Ověření: Spusťte relevantní testy, zachyťte dohodnuté měření a zdokumentujte
kompromisy, například aktuálnost nebo paměť.

Tato šablona vede optimalizaci pomocí důkazů místo pomocí techniky.

Šablona: refaktoring staršího kódu

Refaktorujte [starší modul] tak, aby se snížilo [konkrétní riziko nebo náklad na údržbu],
aniž se změní jeho navenek pozorované chování.

Zachování chování: Uveďte starší vstupy, výstupy, režimy chyb, vedlejší
účinky, formáty souborů a požadavky kompatibility, na kterých klienti závisejí.

Rozsah: Pracujte uvnitř [modulu/hranice]. V téže změně neaktualizujte nesouvisející závislosti
ani nepřepisujte volající.

Testy: Tam, kde pokrytí chybí, nejprve charakterizujte současné chování testy nebo fixtures.
Zahrňte známé okrajové případy a chybný vstup.

Kritéria přijetí: Nová struktura se snáze chápe, charakterizované chování zůstává stabilní
a poznámky ke kompatibilitě jsou explicitní.

Ověření: Spusťte charakterizační testy, existující integrační testy, kontrolu typů
a reprezentativní ruční scénář nebo scénář příkazového řádku.

Před návrhem implementace vysvětlete neznámé chování a riziko.

U staršího kódu může být test zachycující neobratné stávající chování cennější než čistěji vypadající přepis.

Šablona: rozsáhlý refaktoring

Naplánujte etapový refaktoring [systému] k dosažení [cílové architektury].

Zachování chování: Udržte [veřejná API, kompatibilitu dat, oprávnění,
pracovní postupy uživatelů, chování nasazení a cestu vrácení změn].

Rozsah: Rozdělte práci na nezávisle testovatelné milníky. Určete soubory,
které se v prvním milníku nemají měnit.

Testy: Definujte cílené testy, kontraktové testy, kontroly migrace a ruční
pracovní postupy, kterými musí každý milník projít, než začne další.

Kritéria přijetí: Každá fáze má jasnou vstupní podmínku, pozorovatelný výsledek,
strategii vrácení změn a žádnou skrytou závislost na pozdější fázi.

Ověření: Zrevidujte plán podle aktuální architektury, spusťte kontroly každé fáze
a zastavte se, pokud milník zneplatní původní předpoklad.

Neupravujte kód, dokud nepředložíte fáze, rizika a alternativy.

Toto je plánovací prompt, nikoli žádost o jeden obří patch. Dává revidujícím smysluplné kontrolní body.

Refaktoring je stále práce na produktu

Refaktoring může rozbít interakci, ztratit událost, oslabit rozhodnutí o autorizaci nebo nesprávně přeložit řetězec viditelný pro uživatele. Chování chraňte stejně záměrně, jako zlepšujete kód.

Pro základní strukturu použijte jak psát lepší prompty pro AI. Ukázkové příklady najdete v článku příklady prompt engineeringu pro softwarové inženýry. Pokud refaktoring začíná kvůli produkčnímu incidentu, spojte jej s článkem šablony promptů pro ladění produkčních problémů.

Když refaktoring mění skript, nejprve ověřte příkazy, které zachovává. Procvičujte pracovní postupy v terminálu v prohlížeči, aby ověření vycházelo ze vstupu a výstupu, ne z paměti.

Reference

Tyto odkazy na dokumentaci poskytují spolehlivé informace o příkazech použitých v tomto článku.