Š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í.
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.