Qligħ:
- Kapaċità li titwaqqaf xibka tas-sikurezza tat-test li taqbad l-imġieba attwali qabel ir-refactoring
- Kapaċità li titlob lill-AI għal trasformazzjonijiet żgħar, f'pass wieħed, li jippreservaw l-imġieba u tivvalida kull pass
- Kapaċità li tidentifika u tipprijoritizza d-dejn tekniku fil-kuntest tan-negozju
Ir-refactoring qed itejjeb l-istruttura interna ta' kodiċi mingħajr ma jbiddel l-imġieba esterna tiegħu: jagħmilha aktar leġibbli, aktar sempliċi, aktar miżmuma. Id-dejn tekniku, min-naħa l-oħra, huwa kompromess ta’ disinn magħmul għall-fini ta’ soluzzjoni ta’ malajr u mħallas lura “bl-imgħax” maż-żmien — kull rokna li taqta’ llum terġa’ lura bħala tnaqqis jew bug għada. L-intelliġenza artifiċjali hija assistent b'saħħtu li tħaffef il-kompiti ta 'refactoring ripetittivi u mekkaniċi; Iżda hemm regola tad-deheb waħda tar-refactoring, u l-AI waħedha ma tistax tiggarantixxiha: l-imġiba m'għandhiex tinbidel.
F'din l-unità, nitgħallmu kif nagħmlu refactoring sikur bl-AI: passi żgħar u riversibbli, nipproteġu bit-testijiet, niskopru rwejjaħ tal-kodiċi u nipprijoritizzaw id-dejn tekniku. Il-punt kritiku huwa dan: huma t-testijiet li jgħaddu, mhux il-kelma tal-AI, li jipprova li l-imġieba hija ppreservata.
Ir-Regola tad-Deheb tar-Refactoring: L-Imġieba Tibqa 'Kostanti
Dak li jagħmel ir-refactoring perikoluż huwa bla ma jkun jaf ibiddel l-imġiba filwaqt li tgħid "Qed intejjeb." Twaqqa 'każ tarf meta tissimplifika kundizzjoni, tkisser l-ordni meta tittrasforma linja, nieqes effett sekondarju meta tinqasam funzjoni—kollha tipproduċi kodiċi "dehra nadifa" iżda miksur.
Huwa għalhekk li l-ittestjar huwa prerekwiżit għar-refactoring: qabel ma tinbidel, irid ikollok testijiet li jaqbdu l-imġieba eżistenti. Dawn it-testijiet huma "xibka ta' sikurezza"; Jekk aċċidentalment tkisser xi ħaġa waqt ir-refactoring, dawn se jkissru u jwissuk. Jekk ma jkollokx testijiet, ikteb testijiet li jiffissaw l-imġieba eżistenti l-ewwel (kif tgħallimna fl-unità 5) — dan huwa fejn l-AI tibda qabża.
Attenzjoni: Ir-refactoring assistit mill-AI mingħajr testnet huwa wieħed mill-aktar sorsi insidjużi ta' bugs. Huwa faċli li tgħid "I ppreservat l-imġieba"; Il-prova hija li l-istess testijiet jgħaddu qabel u wara l-bidla.
Pass pass: Fluss ta' Refactoring Sikur
- Waħħal ix-xibka tas-sigurtà. Ħalli jkun hemm testijiet li jaqbdu l-imġieba attwali tal-kodiċi li se tirrefactor; Jekk le, iktebhom l-ewwel (u arahom jgħaddu).
- Semmi r-riħa. X'qed ittejjeb u għaliex? "Din il-funzjoni tagħmel 3 affarijiet", "l-istess loġika tirrepeti f'4 postijiet", "l-ismijiet huma qarrieqa".
- Itlob għal passi żgħar f'pass wieħed. Staqsi lill-AI għal trasformazzjoni waħda (eż. sempliċement "qassam din il-funzjoni bin-nofs"), biex ma tiktebx mill-ġdid il-fajl kollu.
- Mexxi t-testijiet. Wara kull pass. Jekk huwa aħdar, kompli, jekk huwa aħmar, ħudha lura.
- Aqra Diff. Ikkonferma linja b'linja li l-bidla hija tabilħaqq li tippreserva l-imġieba; Jista 'jkun hemm slippage loġika meta tgħid AI hija "sempliċement struttura".
- Għaqqad f'biċċiet żgħar. PRs kbar ta' rifactoring ta' darba huma kemm riskjużi kif ukoll mhux riveduti.
Tliet Każijiet Mini
Każ 1 — Funzjoni ta '220 linja maqsuma b'mod sikur. Tim wieħed kellu funzjoni ta 'pproċessar ta' ordni ta '220 linja. Inkitbu l-ewwel 14-il test (bl-għajnuna ta 'AI) li qabdu l-imġieba attwali, kollha għaddew. Imbagħad il-funzjoni kienet maqsuma f'5 funzjonijiet iżgħar pass pass mill-AI; It-testijiet saru wara kull pass. Żewġ testijiet tkissru f'pass wieħed - l-AI kienet tilfet ir-ritorn f'każ tat-tarf. It-testijiet qabdu dan immedjatament u rranġawh. Mingħajr in-netwerk, l-iżball seta' mar it-triq kollha għall-produzzjoni.
Każ 2 — Diżastru mingħajr testnet. Żviluppatur ieħor "naddaf" modulu tal-kalkolu tad-data li ma kellu l-ebda testijiet bl-AI. Il-kodiċi deher aħjar, iżda kien qed jikkalkula s-sena biżestili b'mod żbaljat; Il-bug ħareġ ġimgħatejn wara b'ilment tal-klijent. It-telf qabeż bil-bosta l-ħin iffrankat mir-refactoring. Lezzjoni: refactoring mingħajr ittestjar huwa azzard.
Każ 3 — Prijoritizzazzjoni teknika tad-dejn. Tim wieħed ta lill-AI xogħol b'lura ta' 30 jew aktar punt "li jista' jittejjeb" u kellu kull wieħed skorja fuq assi "frekwenza tal-bidla × riskju × sforz". Fit-tabella li tirriżulta, modulu ikrah li rari kien mimsus kien fil-fatt prijorità baxxa, filwaqt modulu ta 'kumplessità medja li jinbidel ta' spiss kien prijorità għolja. It-tim idderieġa l-enerġija tiegħu lejn il-post it-tajjeb.
Erba' Mudelli Kopjabbli
Sejbien u prijoritizzazzjoni tar-riħa tal-kodiċi:
Lista tal-kandidati tar-refactoring "irwejjaħ" f'dan il-kodiċi: funzjoni twila, irrepeti (DRYViolation), isem qarrieqi, kundizzjoni nested profonda, effett sekondarju moħbi, numru maġiku. Għal kull: post, għaliex il-problema, pass żgħir issuġġerit, riskju stmat (baxx/medju/għoli). TBIDLIX kodiċi għadha, ippjana biss.{{code}}
Trasformazzjoni f'pass wieħed, li tippreserva l-imġieba:
BISS agħmel dan: {{konverżjoni waħda, eż. Aqsam din il-funzjoni fi 3 funzjonijiet iżgħar msemmija}}. IBDELL l-imġieba viżibbli, il-firma u l-valuri tar-ritorn. Ikteb f'sentenza waħda għaliex dak kollu li bdilt jippreserva l-imġieba.{{code}}
Netwerk ta' sikurezza qabel il-refactor (ittestjar ta' karatterizzazzjoni):
Ikteb testijiet li jaqbdu l-imġieba KURRENTI ta’ din il-funzjoni (korretta jew le); l-għan huwa li taqbad jekk l-imġieba tinbidel waqt ir-refactoring. Inkludi tipiċi + entrati tarf. Ikteb l-aspettattivi bbażati fuq l-output kurrenti tal-funzjoni.{{funzjoni}}
Ġenerazzjoni tar-rekord tekniku tad-dejn (backlog):
Ferra l-lista ta' rwejjaħ li ġejja f'tabella ta' prijoritizzazzjoni: sustanza, żona affettwata, frekwenza tal-bidla (l-għarfien tiegħi: {{...}}), riskju, sforz stmat, prijorità rakkomandata. Poġġi l-impatt għoli + dawk ta 'sforz baxx fil-quċċata. {{smell_list}}
Pront dgħajjef / Pront qawwi
Dgħajjef: "Naddaf dan il-kodiċi u għamilha aħjar."
Qawwija: "Aqsam din il-funzjoni ta' 90 linja fi 3 funzjonijiet iżgħar b'responsabbiltà waħda, mingħajr ma tbiddel l-imġieba esterna u l-firma tagħha. Żomm l-effetti sekondarji (DB jikteb) fl-ordni attwali. Għandi testijiet, l-imġieba għandha tibqa 'l-istess. Agħti d-differenza u spjega f'sentenza waħda għaliex kull qasma qed tippreserva l-imġieba. [kodiċi] ".
Verżjoni qawwija; Hija teħtieġ trasformazzjoni speċifika waħda, espliċitament timponi restrizzjoni ta 'mġieba u firma, u titlob ġustifikazzjoni. Talbiet vagi bħal "tagħmel aħjar" iwasslu għal bidliet mhux ikkontrollati u riskjużi.
Tip ta' refactoring
Affidabbiltà tal-AI
Prerekwiżit
semmi mill-ġdid
għolja
L-ambitu huwa korrett?
Diviżjoni tal-funzjoni
medju-għoli
Testnet huwa meħtieġ
Qsim ripetizzjoni
medju
Id-differenza fl-imġieba tista’ tkun moħbija
Bidla fl-algoritmu/istruttura
baxx
Ittestjar estensiv + validazzjoni umana
Riarranġament arkitettoniku
baxx
Immexxi mill-bniedem, appoġġjat mill-AI
Ġestjoni tad-Dejn Tekniku, Mhux Irrisettjar
Id-dejn tekniku mhux kollu ħażin; Xi drabi self konxju (biex tissodisfa kunsinna) hija d-deċiżjoni t-tajba. L-għan mhuwiex li jiġi eliminat id-dejn, iżda li jagħmilha viżibbli u maniġġabbli. L-AI hija mgħaġġla biex tiskopri u tipprijoritizza d-dejn, iżda tiddeċiedi "liema dejn għandu jitħallas u liema għandu jiġi abbandunat" teħtieġ kuntest tan-negozju: kemm-il darba jinbidel dan il-modulu, kemm nies jaffettwa, x'inhu r-riskju? Din id-deċiżjoni tittieħed mit-tim li jaf il-bażi tal-kodiċi u l-prodott; AI tiċċara biss l-għażliet.
Tip: Żomm il-PR refactoring tiegħek separat mill-PRs li jinvolvu bidla fl-imġieba. Li tkun tista 'tgħid "dan il-PR huwa biss refactoring, l-imġieba hija l-istess" tagħmilha aktar faċli biex tinvestiga u tippermettilek li tnaqqas malajr il-kawża jekk tinqala' problema.
Żbalji komuni
- Refactoring mingħajr testnet. Inti titħalla mingħajr xejn li tipprova li l-imġieba hija ppreservata.
- Dan ifisser "file kollu ċar". Bidliet kbar u mhux ikkontrollati jaħbu l-iżball u ma jistgħux jiġu eżaminati.
- Taċċetta Diff mingħajr ma taqrah. L-AI setgħet naqset xi loġika meta qalet "struttura biss".
- Refactoring konfużjoni ma 'bidla fl-imġieba. Li tagħmel it-tnejn fl-istess PR jagħmel impossibbli l-intraċċar tal-kawża ewlenija.
- Jipprova jirranġa kull riħa. Kodiċi ikrah li rarament jinbidel ħafna drabi jkun ta’ prijorità baxxa; Alloka l-enerġija għall-post li jinbidel ta 'spiss.
Fil-qosor
L-unika regola ta 'refactoring hija li l-imġieba tibqa' kostanti, u l-prova ta 'dan hija t-testijiet. L-AI hija b'saħħitha biex tiskopri rwejjaħ ta 'kodiċi, trasformazzjonijiet f'pass wieħed, u tipprijoritizza dejn tekniku; imma trid twaqqaf ix-xibka tas-sigurtà, tmexxi t-testijiet u aqra d-diff wara kull pass. Ħu passi żgħar u riversibbli; jiddistingwu r-refactoring minn bidla fl-imġieba; u ħalli t-tim li jaf il-kuntest tan-negozju jiddeċiedi liema dejn għandu jħallas.
Kompitu ta' applikazzjoni
Agħżel funzjoni mill-bażi tal-kodiċi tiegħek li tidher twila jew kumplessa għalik. L-ewwel testijiet tal-istampar li jaqbdu l-imġieba attwali tiegħu bil-mudell ta '"xibka ta' sikurezza" u ara jekk jgħaddux kollha. Imbagħad agħmel il-funzjoni refactored b'mod wieħed (eż. qsim min-nofs) bil-mudell ta '"pass wieħed, trasformazzjoni li jippreserva l-imġieba" u erġa' wettaq it-testijiet. Jekk jitkisser test, sib għaliex; Jekk ma tinkiser xejn, aqra d-diff linja b'linja biex tikkonferma li l-imġieba hija tabilħaqq ippreservata.
lista ta' kontroll
- [ ] Naf li r-refactoring m'għandux ibiddel l-imġiba u hemm testijiet biex jipprovah.
- [ ] Qed inwaqqaf xibka ta' sikurezza li taqbad l-imġieba attwali qabel il-refactor.
- [ ] Irrid trasformazzjonijiet żgħar, f'pass wieħed mill-AI, mhux kbar ta' darba.
- [ ] Wara kull pass nagħmel it-testijiet u naqra d-diff.
- [ ] Nibqa' nirrefactoring PR separat mill-PR tal-bidla fl-imġiba.
- [ ] Jiena nipprijoritizza d-dejn tekniku bil-kuntest tan-negozju, mhux bl-addoċċ nipprova niżero.