Hagnaður:
- Geta til að setja upp prófunaröryggisnet sem fangar núverandi hegðun áður en það er endurvirkt
- Geta til að biðja gervigreind um litlar, eins skrefs, hegðunarvarðandi umbreytingar og sannreyna hvert skref
- Hæfni til að bera kennsl á og forgangsraða tæknilegum skuldum í viðskiptasamhengi
Refactoring er að bæta innri uppbyggingu kóða án þess að breyta ytri hegðun hans: gera hann læsilegri, einfaldari, viðhaldshæfari. Tækniskuldir eru aftur á móti hönnunarmálamiðlun sem gerð er í þágu skjótrar lausnar og greidd til baka „með vöxtum“ með tímanum - hvert horn sem þú klippir í dag mun koma aftur sem hægagangur eða galli á morgun. Gervigreind er öflugur aðstoðarmaður sem flýtir fyrir endurteknum og vélrænum endurvinnsluverkefnum; En það er ein gullin regla um endurnýjun og gervigreind ein getur ekki tryggt það: hegðun má ekki breytast.
Í þessari einingu lærum við hvernig á að gera örugga endurstillingu með gervigreind: lítil og afturkræf skref, verndun með prófum, uppgötva lykt af kóða og forgangsraða tæknilegum skuldum. Aðalatriðið er þetta: það eru prófin sem standast prófin, ekki orð gervigreindarinnar, sem sannar að hegðunin er varðveitt.
Gullna reglan um endurnýjun: Hegðun er stöðug
Það sem gerir endurstillingu hættulegt er að breyta óafvitandi hegðun á meðan sagt er „ég er að bæta mig“. Að sleppa jaðartilfelli þegar skilyrði eru einfölduð, röðin er brotin þegar lykkju er umbreytt, aukaverkun vantar þegar falli er skipt - allt framleiðir „hreinan“ en brotinn kóða.
Þess vegna er prófun forsenda endurþáttunar: áður en þú breytir verður þú að hafa próf sem fanga núverandi hegðun. Þessar prófanir eru „öryggisnet“; Ef þú brýtur óvart eitthvað við endurnýjun, þá brotna þeir og vara þig við. Ef þú ert ekki með próf, skrifaðu próf sem laga núverandi hegðun fyrst (eins og við lærðum í einingu 5) - þetta er þar sem gervigreind byrjar.
Varúð: Refactoring með AI-aðstoð án prófnets er ein skaðlegasta uppspretta galla. Það er auðvelt að segja "ég varðveitti hegðunina"; Sönnunin er sú að sömu próf standast fyrir og eftir breytinguna.
Skref fyrir skref: Öruggt endurnýjunarflæði
- Settu upp öryggisnetið. Láttu það vera próf sem fanga núverandi hegðun kóðans sem þú munt endurvirkja; Ef ekki, skrifaðu þá fyrst niður (og sjáðu þá fara í gegnum).
- Nefndu lyktina. Hvað ertu að bæta og hvers vegna? "Þessi aðgerð gerir 3 hluti", "sama rökfræði endurtekur sig á 4 stöðum", "nöfn eru villandi".
- Biddu um lítil skref í einu skrefi. Biddu gervigreindina um eina umbreytingu (t.d. „skiptu þessari aðgerð í tvennt“), að endurskrifa ekki alla skrána.
- Keyrðu prófin. Eftir hvert skref. Ef það er grænt, haltu áfram, ef það er rautt, taktu það aftur.
- Lestu Diff. Staðfestu línu fyrir línu að breytingin sé sannarlega hegðunarvarðandi; Það getur verið rökvilla þegar sagt er að gervigreind sé „bara uppbygging“.
- Blandið saman í litla bita. Stór einskiptis endurnýjanleg PR eru bæði áhættusöm og óendurskoðanleg.
Þrjú Mini Cass
Case 1 — 220 lína aðgerð hættulega skipt. Eitt teymi var með 220 lína pöntunarvinnsluaðgerð. Fyrstu 14 prófin voru skrifuð (með hjálp gervigreindar) sem náðu núverandi hegðun, þau stóðust öll. Síðan var fallinu skipt í 5 smærri aðgerðir skref fyrir skref með gervigreind; Próf voru keyrð eftir hvert skref. Tvö próf voru brotin í einu skrefi - gervigreindin hafði misst af endurkomu í brúnkassa. Próf tóku þetta strax og lagfærðu það. Án netsins hefði villan getað farið alla leið til framleiðslu.
Tilfelli 2 - Hörmung án prófnets. Annar verktaki „hreinsaði upp“ dagsetningarútreikningseiningu sem hafði engin próf með gervigreind. Kóðinn leit betur út, en hann var að reikna hlaupárið rangt; Villan kom upp tveimur vikum síðar með kvörtun viðskiptavina. Tapið var mun þyngra en sá tími sem sparast við endurnýjun. Lexía: endurnýjun án prófunar er fjárhættuspil.
Mál 3 — Tæknileg forgangsröðun skulda. Eitt lið gaf gervigreindinni 30 eða svo „bætanlega“ stig og hafði hvert og eitt skorað á ásnum „breytingatíðni × áhættu × átak“. Í töflunni sem varð til var ljót eining sem var sjaldan snert í raun í litlum forgangi, en meðalflókin eining sem breyttist oft var í miklum forgangi. Liðið beindi orku sinni á réttan stað.
Fjögur afritanleg sniðmát
Lyktarskynjun og forgangsröðun kóða:
Skráðu „lykt“ umsækjenda sem endurnýjast í þessum kóða: löng virkni, endurtekning (DRYViolation), villandi nafn, djúpt hreiður ástand, falin aukaverkun, töfratala. Fyrir hvern: staðsetning, hvers vegna vandamálið, leiðbeinandi lítið skref, áætlað áhætta (lág/miðlungs/há). EKKI BREYTA kóða ennþá, bara skipuleggja.{{code}}
Ein skref, hegðunarvarðandi umbreyting:
Gerðu BARA þetta: {{stök viðskipti, t.d. Skiptu þessari aðgerð í 3 smærri nafngreindar föll}}. BREYTTU sýnilegri hegðun, undirskrift og skilagildum. Skrifaðu í 1 setningu hvers vegna allt sem þú breyttir varðveitir hegðunina.{{code}}
Öryggisnet fyrir refactor (einkennisprófun):
Skrifaðu próf sem fanga NÚVERANDI hegðun þessarar aðgerðar (rétt eða ekki); markmiðið er að grípa ef hegðun breytist við endurþáttun. Hafa dæmigerðar + kantfærslur með. Skrifaðu væntingar byggðar á núverandi framleiðsla fallsins.{{function}}
Myndun tæknilegra skulda (backlog):
Helltu eftirfarandi lyktarlista í forgangsröðunartöflu: efni, svæði sem hefur áhrif, tíðni breytinga (mín vitneskju: {{...}}), áhætta, áætlað átak, ráðlagður forgangur. Settu háu áhrifin + lítil áreynsla efst. {{smell_list}}
Veik kvaðning / Sterk kvaðning
Veik: "Hreinsaðu þennan kóða og gerðu hann betri."
Sterkt: "Skiptu þessu 90 línu falli í 3 smærri aðgerðir með einni ábyrgð, án þess að breyta ytri hegðun þess og undirskrift. Haltu aukaverkunum (DB skrifar) í núverandi röð. Ég er með próf, hegðunin ætti að vera sú sama. Gefðu upp mismuninn og útskýrðu í einni setningu hvers vegna hver skipting er hegðunarvarðandi. [kóði]"
Öflug útgáfa; Það krefst einstakrar umbreytingar, setur beinlínis hegðun og undirskriftarþvingun og krefst rökstuðnings. Óljósar beiðnir eins og „gera betur“ leiða til stjórnlausra og áhættusamra breytinga.
Refactoring gerð
AI áreiðanleiki
Forsenda
endurnefna
hátt
Er umfangið rétt?
Virkniskipting
meðalhár
Testnet er nauðsyn
Deila endurtekningu
miðlungs
Hegðunarmunur getur verið falinn
Reiknirit/skipulagsbreyting
lágt
Umfangsmiklar prófanir + mannleg staðfesting
Byggingarfræðileg endurskipulagning
lágt
Stýrt af mönnum, studd gervigreind
Stjórna tækniskuldum, ekki endurstilla þær
Tækniskuldir eru ekki allar slæmar; Stundum er meðvituð lántaka (til að mæta afhendingu) rétt ákvörðun. Markmiðið er ekki að útrýma skuldum heldur að gera þær sýnilegar og viðráðanlegar. Gervigreind er fljót að greina og forgangsraða skuldum, en að ákveða „hvaða skuldir á að borga og hverja ætti að yfirgefa“ krefst viðskiptasamhengis: hversu oft breytist þessi eining, hversu marga hefur hún áhrif á, hver er áhættan? Þessi ákvörðun er tekin af teyminu sem þekkir kóðagrunninn og vöruna; AI skýrir bara valkostina.
Ábending: Haltu endurnýjandi PR aðskildum frá PR sem fela í sér breytingu á hegðun. Að geta sagt "þetta PR er bara endurtekið, hegðunin er sú sama" gerir það auðveldara að rannsaka og gerir þér kleift að þrengja fljótt orsökina ef vandamál koma upp.
Algeng mistök
- Endurgerð án prófnets. Þú situr eftir með ekkert sem sannar að hegðunin sé varðveitt.
- Það þýðir "hreinsa alla skrána". Stórar, stjórnlausar breytingar fela villuna og ekki er hægt að skoða þær.
- Samþykkja Diff án þess að lesa hana. AI gæti hafa runnið út í rökfræði þegar það sagði "bara uppbygging".
- Að rugla saman endurstillingu og hegðunarbreytingu. Með því að gera bæði í sama PR gerir það ómögulegt að fylgjast með rótum.
- Reynt að laga hverja lykt. Ljótur kóði sem breytist sjaldan er oft í litlum forgangi; Úthlutaðu orku á staðinn sem breytist oft.
Í stuttu máli
Eina reglan um endurstillingu er að hegðunin haldist stöðug og sönnunin fyrir því eru prófin. AI er öflugt við að greina lykt af lykt, eins skrefs umbreytingum og forgangsraða tæknilegum skuldum; en þú þarft að setja upp öryggisnetið, keyra prófin og lesa mismuninn eftir hvert skref. Taktu lítil, afturkræf skref; greina refactoring frá hegðunarbreytingum; og láttu teymið sem þekkir viðskiptasamhengið ákveða hvaða skuld á að greiða.
Umsóknarverkefni
Veldu aðgerð úr kóðagrunninum þínum sem lítur út fyrir að vera löng eða flókin. Prentaðu fyrst próf sem fanga núverandi hegðun þess með „öryggisnetinu“ sniðmátinu og sjáðu hvort þau standist öll. Láttu síðan aðgerðina endurskipuleggja á einn hátt (t.d. skiptu í tvennt) með "einsþrepa, hegðunarvarðandi umbreytingu" mynstri og keyrðu prófin aftur. Ef próf slitnar skaltu finna út hvers vegna; Ef það bilar alls ekki skaltu lesa muninn línu fyrir línu til að staðfesta að hegðunin sé örugglega varðveitt.
gátlisti
- [ ] Ég veit að refactoring ætti ekki að breyta hegðun og það eru til próf til að sanna það.
- [ ] Ég er að setja upp öryggisnet sem grípur núverandi hegðun fyrir refactor.
- [ ] Ég vil litlar, eins skrefs umbreytingar frá gervigreind, ekki stórar einskiptingar.
- [ ] Eftir hvert skref keyri ég prófin og les mismuninn.
- [ ] Ég held áfram að endurskipuleggja PR aðskilið frá PR hegðunarbreytingum.
- [ ] Ég forgangsraða tæknilegum skuldum með viðskiptasamhengi, ekki í blindni að reyna að núllstilla.