Naúrar 8 / 12

Refactoring da Fasaha Gudanar da Bashi

Riba:

  • Ikon saita cibiyar tsaro ta gwaji wanda ke ɗaukar halin yanzu kafin sake fasalin
  • Ability don tambayar AI don ƙananan, mataki ɗaya, sauye-sauye na kiyaye hali da kuma tabbatar da kowane mataki
  • Ikon ganowa da ba da fifikon bashi na fasaha a cikin mahallin kasuwanci

Refactoring yana inganta tsarin ciki na lambar ba tare da canza halinsa na waje ba: yana sa ya zama mai karantawa, mai sauƙi, mai kulawa. Bashin fasaha, a gefe guda, ƙila ne na ƙira da aka yi don neman mafita mai sauri kuma an biya "tare da sha'awa" akan lokaci - kowane kusurwar da kuka yanke a yau zai dawo a matsayin raguwa ko kwaro gobe. Hankali na wucin gadi shine mataimaki mai ƙarfi wanda ke hanzarta ayyukan sake maimaitawa da injiniyoyi; Amma akwai wata ka'ida ta zinariya ta sake fasalin, kuma AI kadai ba zai iya tabbatar da shi ba: hali kada ya canza.

A cikin wannan rukunin, mun koyi yadda ake yin gyare-gyare mai aminci tare da AI: ƙanana da matakan juyawa, karewa tare da gwaje-gwaje, gano warin lambar da ba da fifikon bashi na fasaha. Mahimmin mahimmanci shine wannan: gwaje-gwajen da suka wuce, ba maganar AI ba, sun tabbatar da cewa an kiyaye halayen.

Doka ta Zinare ta Gyara: Halayyar ta Cigaba

Abin da ke sa sake fasalin ya zama haɗari shine canza hali cikin rashin sani yayin da yake cewa "Ina inganta." Zubar da yanayin gefen lokacin sauƙaƙa yanayi, ɓata tsari lokacin canza madauki, rasa sakamako mara kyau lokacin rarraba aiki-duk suna samar da “tsaftataccen kallo” amma lambar karya.

Shi ya sa gwaji ya zama abin da ake buƙata don sake fasalin: kafin canzawa, dole ne ku sami gwaje-gwajen da ke kama halin da ake ciki. Waɗannan gwaje-gwajen “cibiyoyin tsaro ne”; Idan ka karya wani abu da gangan yayin refactoring, za su karya kuma su yi maka gargadi. Idan ba ku da gwaje-gwaje, rubuta gwaje-gwajen da ke gyara halayen da ake da su da farko (kamar yadda muka koya a naúrar 5) - wannan shine inda AI ke samun tsalle-tsalle.

Tsanaki: Aiwatar da AI-taimakon gyarawa ba tare da tesnet ba yana ɗaya daga cikin mafi girman tushen kwari. Yana da sauƙi a ce "Na kiyaye halin"; Hujja ita ce gwaje-gwaje iri ɗaya sun shuɗe kafin da kuma bayan canjin.

Mataki-mataki: Tsare-tsare Matsala ta Refactoring

  1. Saita cibiyar tsaro. Bari a sami gwaje-gwajen da ke kama halin yanzu na lambar za ku sake sakewa; Idan ba haka ba, fara rubuta su (kuma ku ga sun wuce).
  2. Sunan kamshin. Me kuke inganta kuma me yasa? "Wannan aikin yana yin abubuwa 3", "maganganun iri ɗaya yana maimaitawa a wurare 4", "sunaye suna yaudara".
  3. Tambayi ƙananan matakan mataki ɗaya. Tambayi AI don sauyi guda ɗaya (misali kawai "raba wannan aikin a rabi"), ba don sake rubuta duk fayil ɗin ba.
  4. Gudanar da gwaje-gwaje. Bayan kowane mataki. Idan kore ne, ci gaba, idan ja ne, mayar da shi.
  5. Karanta Diff. Tabbatar da layi ta layi cewa canjin haƙiƙa yana kiyaye ɗabi'a; Ana iya samun zamewar hankali lokacin da ake cewa AI "tsari ne kawai".
  6. Haɗa cikin ƙananan guda. Manyan PRs masu sake fasalin lokaci guda duka suna da haɗari kuma ba za a iya bitar su ba.

Mini Cases guda uku

Case 1 - Aikin layi na 220 lafiya ya rabu. Ƙungiya ɗaya tana da aikin sarrafa oda mai layi 220. An rubuta gwaje-gwaje na 14 na farko (tare da taimakon AI) wanda ya kama halin yanzu, duk sun wuce. Sa'an nan kuma an raba aikin zuwa ƙananan ayyuka 5 mataki-mataki ta AI; An gudanar da gwaje-gwaje bayan kowane mataki. An karya gwaje-gwaje guda biyu a mataki ɗaya - AI ta rasa dawowa a cikin akwati. Gwaje-gwaje sun kama wannan nan da nan kuma sun gyara shi. Idan ba tare da hanyar sadarwa ba, kuskuren zai iya tafiya har zuwa samarwa.

Case 2 - Bala'i ba tare da testnet ba. Wani mai haɓakawa ya "tsabta" tsarin lissafin kwanan wata wanda ba shi da gwaji tare da AI. Lambar ta yi kyau, amma tana lissafin shekarar tsalle ba daidai ba; Kwaron ya fito bayan makonni biyu tare da korafin abokin ciniki. Asarar tayi nisa fiye da lokacin da aka ceto daga sake fasalin. Darasi: sake fasalin ba tare da gwaji ba caca ne.

Case 3 — Fasaha bashi fifiko. Ƙungiya ɗaya ta ba AI bayanan baya na 30 ko makamancin haka "masu ingantawa" kuma kowannensu ya zira kwallaye akan "canza mitar × hadarin × kokarin" axis. A cikin teburin da aka samu, wani mummuna tsarin da ba a taɓa taɓa shi ba shine ainihin fifiko mara nauyi, yayin da matsakaicin matsakaicin matsakaici wanda ya canza akai-akai shine babban fifiko. Tawagar ta jagoranci makamashinta zuwa wurin da ya dace.

Samfura guda huɗu masu Kwafi

Gano warin lamba da fifiko:

Lissafa ɗan takarar mai “ƙamshi” a cikin wannan lambar: dogon aiki, maimaita (DRYViolation), suna mai ɓarna, yanayin gida mai zurfi, ɓoyayyiyar tasiri, lambar sihiri. Ga kowane: wuri, dalilin da yasa matsalar, an ba da shawarar ƙaramin mataki, haɗarin da aka kiyasta (ƙananan / matsakaici / babba). KAR KA CANZA lamba tukuna, kawai shirya.{{code}}

Sauyi mai kiyaye ɗabi'a ta mataki ɗaya:

Yi wannan kawai: {{canzawa ɗaya, misali. Raba wannan aikin zuwa ƙananan ayyuka masu suna 3}}. CANJA dabi'a na bayyane, sa hannu da dawo da dabi'u. Rubuta a cikin jumla 1 dalilin da yasa duk abin da kuka canza yana kiyaye halayen.{{code}}

Safety net kafin mai gyara (gwajin halayyar):

Rubuta gwaje-gwajen da suka ɗauki halin YANZU na wannan aikin (daidai ko a'a); makasudin shine kama idan hali ya canza a lokacin refactoring. Haɗa shigarwar na yau da kullun + gefuna. Rubuta abubuwan da ake tsammani dangane da fitowar aikin na yanzu.{{aiki}}

Rubuce-rubucen bashi na fasaha (na baya) tsara:

Zuba jerin ƙamshi masu zuwa a cikin tebur na fifiko: abu, yanki da abin ya shafa, yawan canji (ilimina: {{...}}), haɗari, ƙwaƙƙwaran ƙoƙarin, fifikon fifiko. Sanya babban tasiri + ƙananan ƙoƙari a saman. {{lissafin_ƙamshi}}

Rauni mai ƙarfi / Ƙarfi mai ƙarfi

Rarrauna: "A share wannan lambar kuma ku inganta shi."
Ƙarfafa: "Raba wannan aikin 90-line zuwa 3 ƙananan ayyuka tare da alhakin guda ɗaya, ba tare da canza halinsa na waje da sa hannu ba. Ci gaba da tasirin sakamako (DB ya rubuta) a cikin tsari na yanzu. Ina da gwaje-gwaje, halin ya kamata ya kasance iri ɗaya. Ba da bambanci kuma bayyana a cikin jumla ɗaya dalilin da yasa kowane tsaga yana kiyaye dabi'a. [code] "

Sigar mai ƙarfi; Yana buƙatar takamaiman canji guda ɗaya, a sarari yana sanya ɗabi'a da haƙƙin sa hannu, kuma yana buƙatar hujja. Buƙatun da ba su da kyau kamar "yi mafi kyau" suna haifar da canje-canje marasa tsari da haɗari.

Nau'in Refactoring

Amintaccen AI

Abubuwan da ake bukata

sake suna

babba

Shin iyakar daidai?

Rarraba ayyuka

matsakaici-high

Testnet dole ne

Raba maimaitawa

matsakaici

Bambancin ɗabi'a na iya ɓoye

Algorithm/canjin tsarin

ƙananan

Gwaji mai yawa + ingancin ɗan adam

Gyaran gine-gine

ƙananan

Jagorar ɗan adam, AI mai tallafi

Sarrafa Bashin Fasaha, Ba Sake saita shi ba

Bashin fasaha ba duka ba ne; Wani lokaci rance mai hankali (don saduwa da bayarwa) shine yanke shawara mai kyau. Manufar ba shine don kawar da bashi ba, amma don sanya shi a bayyane kuma a iya sarrafa shi. AI yana da sauri wajen ganowa da ba da fifiko ga bashi, amma yanke shawarar "wane bashin da ya kamata a biya kuma wanda ya kamata a watsar da shi" yana buƙatar mahallin kasuwanci: sau nawa wannan tsarin ya canza, mutane nawa ke shafar, menene hadarin? An yanke wannan shawarar ta ƙungiyar da ta san tushen lambar da samfurin; AI kawai yana fayyace zaɓuɓɓuka.

Tukwici: Kiyaye PR na sake fasalin ku daban da PRs waɗanda suka haɗa da canjin hali. Kasancewa iya cewa "wannan PR shine kawai sakewa, halin da ake ciki" yana sa ya fi sauƙi don bincika kuma yana ba ku damar rage dalilin da sauri idan matsala ta taso.

Kuskuren gama gari

  • Refactoring ba tare da testnet. Ba ku da wani abu da zai tabbatar da cewa an kiyaye halayen.
  • Yana nufin "share dukan fayil". Manyan canje-canje marasa sarrafawa suna ɓoye kuskure kuma ba za a iya bincika su ba.
  • Karɓar Diff ba tare da karanta shi ba. Wataƙila AI ta zame wasu dabaru lokacin da ta ce "tsari kawai".
  • Mai ruɗar sakewa tare da canjin ɗabi'a. Yin duka biyu a cikin PR iri ɗaya yana sa tushen tushen sa ido ba zai yiwu ba.
  • Ƙoƙarin gyara kowane wari. Mummunan lambar da ba kasafai ke canzawa ba sau da yawa ƙananan fifiko; Rarraba makamashi zuwa wurin da ke canzawa akai-akai.

A takaice

Iyakar ka'idar sake fasalin ita ce dabi'ar ta kasance mai dorewa, kuma hujjar wannan ita ce gwaje-gwaje. AI yana da ƙarfi a gano ƙamshin lambar, sauye-sauyen mataki ɗaya, da ba da fifikon bashi na fasaha; amma dole ne ka saita hanyar tsaro, gudanar da gwaje-gwaje kuma karanta bambance-bambancen bayan kowane mataki. Ɗauki ƙananan matakai masu juyawa; bambanta refactoring daga canjin hali; kuma bari ƙungiyar da ta san mahallin kasuwanci ta yanke shawarar wane bashin da za a biya.

Aikin aikace-aikace

Zaɓi aiki daga tushen lambar ku wanda yayi kama da tsayi ko sarƙaƙƙiya a gare ku. Gwaje-gwajen bugawa na farko waɗanda ke ɗaukar halayen sa na yanzu tare da samfurin "safety net" kuma duba idan duk sun wuce. Sa'an nan a sake fasalin aikin ta hanya ɗaya (misali raba cikin rabi) tare da tsarin "mataki ɗaya, canjin hali" kuma sake gudanar da gwaje-gwaje. Idan gwaji ya karye, gano dalilin; Idan bai karye ba kwata-kwata, karanta layin da ke bambanta ta layi don tabbatar da cewa an kiyaye halayen.

jerin abubuwan dubawa

  • [ ] Na san cewa sake fasalin bai kamata ya canza hali ba kuma akwai gwaje-gwaje don tabbatar da shi.
  • [ ] Ina kafa hanyar tsaro wanda ke kama halin yanzu kafin sake kunnawa.
  • [ ] Ina son ƙananan canje-canjen mataki ɗaya daga AI, ba babban kashewa ɗaya ba.
  • [ ] Bayan kowane mataki na gudanar da gwaje-gwajen kuma na karanta bambancin.
  • [] Na ci gaba da sake fasalin PR daban da canjin hali PR.
  • [ ] Ina ba da fifikon bashi na fasaha tare da mahallin kasuwanci, ba makauniyar ƙoƙari don cirewa ba.