Awọn anfani:
- Agbara lati ṣeto netiwọki aabo idanwo ti o mu ihuwasi lọwọlọwọ ṣaaju ṣiṣe atunṣe
- Agbara lati beere AI fun kekere, igbese-ọkan, awọn iyipada ti o tọju ihuwasi ati fọwọsi igbesẹ kọọkan
- Agbara lati ṣe idanimọ ati ṣaju gbese imọ-ẹrọ laarin ipo iṣowo
Refactoring jẹ imudarasi eto inu ti koodu kan laisi iyipada ihuwasi ita rẹ: ṣiṣe ni kika diẹ sii, rọrun, itọju diẹ sii. Gbese imọ-ẹrọ, ni ida keji, jẹ adehun apẹrẹ ti a ṣe fun idi ti ojutu iyara ati san pada “pẹlu anfani” ni akoko pupọ - gbogbo igun ti o ge loni yoo pada wa bi idinku tabi bug ni ọla. Imọran atọwọda jẹ oluranlọwọ ti o lagbara ti o mu iyara atunwi ati awọn iṣẹ ṣiṣe atunṣe ẹrọ; Ṣugbọn ofin goolu kan wa ti atunṣe, ati AI nikan ko le ṣe iṣeduro rẹ: ihuwasi ko gbọdọ yipada.
Ninu ẹyọ yii, a kọ ẹkọ bii o ṣe le ṣe isọdọtun ailewu pẹlu AI: awọn igbesẹ kekere ati iyipada, aabo pẹlu awọn idanwo, wiwa awọn oorun koodu ati iṣaju gbese imọ-ẹrọ. Koko pataki ni eyi: o jẹ awọn idanwo ti o kọja, kii ṣe ọrọ AI, ti o jẹri pe ihuwasi ti wa ni fipamọ.
Awọn Golden Ofin ti Refactoring: Ihuwasi si maa duro
Ohun ti o jẹ ki atunṣe lewu jẹ iyipada ihuwasi laimọọmọ lakoko ti o sọ pe “Mo n ni ilọsiwaju.” Sisọ ọran eti silẹ nigbati o ba jẹ irọrun ipo kan, pipaṣẹ aṣẹ nigbati o ba yi lupu kan pada, sonu ipa ẹgbẹ kan nigba pipin iṣẹ kan — gbogbo wọn gbejade “wiwa mimọ” ṣugbọn koodu fifọ.
Ti o ni idi ti idanwo jẹ ohun pataki ṣaaju fun atunṣe: ṣaaju iyipada, o gbọdọ ni awọn idanwo ti o mu ihuwasi ti o wa tẹlẹ. Awọn idanwo wọnyi jẹ “nẹtiwọọki aabo”; Ti o ba fọ nkan lairotẹlẹ lakoko isọdọtun, wọn yoo fọ ati kilọ fun ọ. Ti o ko ba ni awọn idanwo, kọ awọn idanwo ti o ṣatunṣe ihuwasi ti o wa tẹlẹ (bii a ti kọ ẹkọ ni ẹyọkan 5) - eyi ni ibiti AI ti bẹrẹ fo.
Išọra: Atunṣe-iranlọwọ AI laisi testnet jẹ ọkan ninu awọn orisun inira julọ ti awọn idun. O rọrun lati sọ "Mo tọju iwa naa"; Ẹri ni pe awọn idanwo kanna kọja ṣaaju ati lẹhin iyipada.
Igbesẹ nipasẹ Igbesẹ: Ṣiṣan Iṣatunṣe aabo
- Ṣeto nẹtiwọki aabo. Jẹ ki awọn idanwo wa ti o gba ihuwasi lọwọlọwọ ti koodu iwọ yoo ṣe atunṣe; Ti kii ba ṣe bẹ, kọ wọn silẹ ni akọkọ (ki o wo wọn lọ nipasẹ).
- Daruko õrùn naa. Kini o ni ilọsiwaju ati kilode? "Iṣẹ yii ṣe awọn nkan 3", "ero kannaa tun ṣe ni awọn aaye 4", "awọn orukọ jẹ ṣinilona".
- Beere fun kekere, awọn igbesẹ-igbesẹ kan. Beere AI fun iyipada ẹyọkan (fun apẹẹrẹ “pipin iṣẹ yii ni idaji”), kii ṣe lati tun gbogbo faili naa kọ.
- Ṣiṣe awọn idanwo. Lẹhin gbogbo igbese. Ti o ba jẹ alawọ ewe, tẹsiwaju, ti o ba jẹ pupa, gba pada.
- Ka Iyatọ. Jẹrisi laini nipasẹ laini pe iyipada jẹ itọju ihuwasi nitootọ; Iyọkuro ọgbọn le wa nigbati o sọ pe AI jẹ “igbekalẹ kan”.
- Darapọ sinu awọn ege kekere. Awọn PRs atunṣe-akoko kan ti o tobi jẹ eewu ati airotẹlẹ.
Mẹta Mini igba
Ọran 1 - 220-ila iṣẹ pipin lailewu. Ẹgbẹ kan ni iṣẹ ṣiṣe ibere laini 220 kan. Awọn idanwo 14 akọkọ ni a kọ (pẹlu iranlọwọ ti AI) ti o gba ihuwasi lọwọlọwọ, gbogbo wọn kọja. Lẹhinna a pin iṣẹ naa si awọn iṣẹ kekere 5 ni igbesẹ nipasẹ igbese nipasẹ AI; A ṣe idanwo lẹhin igbesẹ kọọkan. Awọn idanwo meji bajẹ ni igbesẹ kan - AI ti padanu ipadabọ ninu ọran eti kan. Awọn idanwo mu eyi lẹsẹkẹsẹ ati ṣatunṣe rẹ. Laisi nẹtiwọọki, aṣiṣe le ti lọ ni gbogbo ọna si iṣelọpọ.
Ọran 2 - Ajalu laisi testnet. Olùgbéejáde miiran “sọ di mimọ” module iṣiro ọjọ kan ti ko ni awọn idanwo pẹlu AI. Koodu naa dara julọ, ṣugbọn o n ṣe iṣiro ọdun fifo ni aṣiṣe; Kokoro naa jade ni ọsẹ meji lẹhinna pẹlu ẹdun alabara kan. Awọn isonu jina ju awọn akoko ti o ti fipamọ lati refactoring. Ẹkọ: atunṣe laisi idanwo jẹ ere kan.
Case 3 - Imọ gbese ayo. Ẹgbẹ kan fun AI ni ẹhin ti awọn aaye 30 tabi bẹ “ilọsiwaju” ati pe ọkọọkan ti gba wọle lori ipo “igbohunsafẹfẹ iyipada × eewu × akitiyan”. Ni awọn Abajade tabili, ohun ilosiwaju module ti a ti ṣọwọn fi ọwọ kan kosi kan kekere ni ayo, nigba ti a alabọde-complexity module ti o yi pada nigbagbogbo je kan to ga ni ayo. Ẹgbẹ naa ṣe itọsọna agbara rẹ si aaye ti o tọ.
Mẹrin Copiable Templates
Wiwa oorun koodu ati iṣaju:
Atokọ oludiṣe atunṣe "õrùn" ni koodu yii: iṣẹ pipẹ, tun (DRYViolation), orukọ aṣiṣe, ipo itẹ-ẹiyẹ jinle, ipa ẹgbẹ ti o farasin, nọmba idan. Fun ọkọọkan: ipo, idi ti iṣoro naa, igbesẹ kekere ti a daba, eewu ti a pinnu (kekere / alabọde / giga). MAA ṢE Yi koodu pada sibẹsibẹ, kan gbero.{{code}}
Igbesẹ kan, iyipada-itọju ihuwasi:
O kan ṣe eyi: {{iyipada ẹyọkan, fun apẹẹrẹ. Pin iṣẹ yii si awọn iṣẹ oniwa kekere 3}}. Yi ihuwasi ti o han, ibuwọlu ati awọn iye ipadabọ pada. Kọ sinu gbolohun 1 idi ti ohun gbogbo ti o yipada ṣe tọju ihuwasi naa.{{code}}
Nẹtiwọọki aabo ṣaaju atunṣe (idanwo ihuwasi):
Kọ awọn idanwo ti o gba ihuwasi lọwọlọwọ ti iṣẹ yii (tọ tabi rara); ibi-afẹde ni lati yẹ ti ihuwasi ba yipada lakoko atunṣe. Pẹlu aṣoju + awọn titẹ sii eti. Kọ awọn ireti ti o da lori iṣẹjade lọwọlọwọ ti iṣẹ naa.{{iṣẹ}}
Igbasilẹ gbese imọ-ẹrọ (afẹyinti) iran:
Tú atokọ atẹle ti awọn oorun sinu tabili iṣaju: nkan, agbegbe ti o kan, igbohunsafẹfẹ iyipada (imọ mi: {{...}}), eewu, igbiyanju ifoju, pataki ti a ṣeduro. Fi ipa giga + awọn akitiyan kekere si oke. {{akojọ_õrùn}}
Ailagbara kiakia / Alagbara kiakia
Alailagbara: "Nọ koodu yii mọ ki o jẹ ki o dara julọ."
Alagbara: "Pipin iṣẹ 90-ila yii si awọn iṣẹ kekere 3 pẹlu ojuse kan, laisi iyipada ihuwasi ita ati ibuwọlu rẹ. Pa awọn ipa ẹgbẹ (DB kọ) ni ilana lọwọlọwọ. Mo ni awọn idanwo, ihuwasi yẹ ki o wa kanna. Fun iyatọ ati ki o ṣe alaye ni gbolohun kan idi ti pipin kọọkan jẹ iwa-itọju. [koodu] "
Alagbara ti ikede; O nilo iyipada kan pato kan, fi ofin de ihuwasi ati idiwọ ibuwọlu, ati pe o beere idalare. Awọn ibeere aiduro bii “ṣe dara julọ” yorisi si iṣakoso ati awọn iyipada eewu.
Refactoring iru
AI igbẹkẹle
Ohun pataki
lorukọ mii
ga
Ṣe aaye naa tọ?
Pipin iṣẹ
alabọde-giga
Testnet jẹ dandan
Pipin atunwi
alabọde
Iyatọ ihuwasi le farapamọ
Algorithm / ayipada igbekale
kekere
Igbeyewo ti o gbooro + afọwọsi eniyan
Atunto ayaworan
kekere
Eniyan-dari, AI-atilẹyin
Ṣiṣakoso gbese Imọ-ẹrọ, kii ṣe Tuntun rẹ
Imọ gbese ni ko gbogbo buburu; Nigba miiran yiya mimọ (lati pade ifijiṣẹ) jẹ ipinnu ti o tọ. Ibi-afẹde kii ṣe lati yọkuro gbese, ṣugbọn lati jẹ ki o han ati ṣakoso. AI yara ni wiwa ati iṣaju gbese, ṣugbọn pinnu “eyi ti gbese yẹ ki o san ati eyiti o yẹ ki o kọ silẹ” nilo ipo iṣowo: igba melo ni module yii yipada, eniyan melo ni o ni ipa, kini eewu naa? Ipinnu yii jẹ nipasẹ ẹgbẹ ti o mọ ipilẹ koodu ati ọja naa; AI o kan clarifies awọn aṣayan.
Imọran: Jeki PR atunṣe rẹ yatọ si awọn PR ti o kan iyipada ihuwasi. Ni anfani lati sọ “PR yii jẹ atunṣe, ihuwasi jẹ kanna” jẹ ki o rọrun lati ṣe iwadii ati gba ọ laaye lati yara dín idi naa ti iṣoro kan ba dide.
Awọn aṣiṣe ti o wọpọ
- Refactoring lai testnet. O ti wa ni osi pẹlu nkankan lati fi mule pe ihuwasi ti wa ni dabo.
- O tumọ si "ko gbogbo faili kuro". Awọn iyipada nla, ti ko ni iṣakoso tọju aṣiṣe ati pe ko le ṣe ayẹwo.
- Gbigba Diff laisi kika rẹ. AI le ti yo diẹ ninu awọn kannaa nigba ti o wi "o kan be".
- Atunṣe idamu pẹlu iyipada ihuwasi. Ṣiṣe mejeeji ni PR kanna jẹ ki ipasẹ root fa ko ṣeeṣe.
- Gbiyanju lati ṣatunṣe gbogbo õrùn. Ilosiwaju koodu ti o ṣọwọn ayipada ni igba kekere ni ayo; Pin agbara si aaye ti o yipada nigbagbogbo.
Ni akojọpọ
Awọn nikan Ofin ti refactoring ni wipe ihuwasi si maa wa ibakan, ati awọn atilẹba ti o ti yi ni awọn igbeyewo. AI lagbara ni wiwa awọn oorun koodu, awọn iyipada igbese kan, ati iṣaju gbese imọ-ẹrọ; ṣugbọn o ni lati ṣeto nẹtiwọki aabo, ṣiṣe awọn idanwo naa ki o ka iyatọ lẹhin igbesẹ kọọkan. Ṣe awọn igbesẹ kekere, iyipada; ṣe iyatọ atunṣe lati iyipada ihuwasi; ki o jẹ ki ẹgbẹ ti o mọ ipo iṣowo pinnu iru gbese lati san.
Ohun elo iṣẹ-ṣiṣe
Yan iṣẹ kan lati ipilẹ koodu rẹ ti o dabi gigun tabi idiju si ọ. Awọn idanwo atẹjade akọkọ ti o mu ihuwasi lọwọlọwọ rẹ pẹlu awoṣe “net aabo” ati rii boya gbogbo wọn kọja. Lẹhinna jẹ ki iṣẹ naa tun ṣe ni ọna kan (fun apẹẹrẹ pipin ni idaji) pẹlu ilana “igbesẹ kan, iyipada ihuwasi” ati ṣiṣe awọn idanwo naa lẹẹkansi. Ti idanwo kan ba ya, wa idi; Ti ko ba ya rara, ka laini iyatọ nipasẹ laini lati jẹrisi pe ihuwasi naa ti ni aabo nitootọ.
akojọ ayẹwo
- [] Mo mọ pe atunṣe ko yẹ ki o yi ihuwasi pada ati pe awọn idanwo wa lati fi idi rẹ mulẹ.
- [] Mo n ṣeto nẹtiwọki aabo kan ti o mu ihuwasi lọwọlọwọ ṣaaju atunṣe.
- [] Mo fẹ kekere, ọkan-igbese iyipada lati AI, ko ńlá ọkan-pipa.
- [] Lẹhin igbesẹ kọọkan Mo ṣiṣe awọn idanwo ati ka iyatọ naa.
- [] Mo ti pa refactoring PR lọtọ lati iwa ayipada PR.
- [] Mo ṣe pataki gbese imọ-ẹrọ pẹlu ipo iṣowo, kii ṣe igbiyanju afọju lati odo jade.