Bölüm 8 / 12

Täzeden işlemek we tehniki bergini dolandyrmak

Girdeji:

  • Täzeden işlemezden ozal häzirki özüni alyp barşyny ele alýan synag howpsuzlyk toruny gurmak ukyby
  • AI-den kiçi, bir ädimli, özüni alyp barşy gorap saklaýan üýtgeşmeleri sorap bilmek we her ädimi tassyklamak
  • Işewürlik çäginde tehniki bergini kesgitlemek we ileri tutmak ukyby

Reaktorasiýa, daşky häsiýetini üýtgetmän koduň içki gurluşyny gowulandyrýar: ony has okalýan, has ýönekeý we has ygtybarly edýär. Tehniki bergi, beýleki tarapdan, çalt çözgüt tapmak üçin düzülen we wagtyň geçmegi bilen "göterim bilen" yzyna gaýtarylan dizaýn ylalaşygydyr - şu gün kesen her burçuňyz ertir haýallyk ýa-da ýalňyşlyk hökmünde gaýdyp geler. Emeli intellekt gaýtalanýan we mehaniki gaýtadan işleýiş meselelerini çaltlaşdyrýan güýçli kömekçi; Emma gaýtadan işlemegiň bir altyn düzgüni bar we diňe AI muny kepillendirip bilmeýär: özüni alyp barşy üýtgemeli däl.

Bu bölümde AI bilen ygtybarly gaýtadan işlemegiň usullaryny öwrenýäris: kiçi we tersine ädimler, synaglar bilen goramak, koduň ysyny kesgitlemek we tehniki bergini ileri tutmak. Möhüm nokat şu: özüni alyp barşyň saklanandygyny subut edýän AI sözi däl-de, geçýän synaglar.

Täzeden işlemegiň altyn düzgüni: Özüňi alyp baryş yzygiderli galar

Täzeden işlemegi howply edýän zat, "gowulaşýaryn" diýlende, bilmän özüni alyp barşyny üýtgetmekdir. Aagdaýy ýönekeýleşdireniňizde bir gyrasy taşlamak, aýlawy üýtgedeniňizde tertibi bozmak, bir funksiýa bölünende ters täsirini ýitirmek - bularyň hemmesi "arassa görnüşli", ýöne bozulan kod döredýär.

Şonuň üçin synag gaýtadan işlemegiň hökmany şerti: üýtgemezden ozal bar bolan özüni alyp barşyňyzy görkezýän synaglar bolmaly. Bu synaglar “howpsuzlyk torudyr”; Täzeden işlemek wagtynda tötänleýin bir zady döwseňiz, olar size duýduryş bererler. Synaglaryňyz ýok bolsa, ilki bar bolan özüni alyp barşy düzedýän synaglary ýazyň (5-nji bölümde öwrenişimiz ýaly) - bu ýerde AI böküp başlaýar.

Üns beriň: Synagsyz AI kömegi bilen gaýtadan işleýiş, kemçilikleriň iň mekir çeşmelerinden biridir. "Özümi alyp barşymy goradym" diýmek aňsat; Munuň subutnamasy, şol synaglaryň üýtgemezden ozal we soň geçýändigi.

Stepdimme-ädim: Howpsuz gaýtadan işleýiş akymy

  1. Howpsuzlyk toruny guruň. Goý, koduň häzirki özüni alyp barşyny synlaýan synaglar bolsun; Notok bolsa, ilki bilen ýazyň (we olaryň geçendigini görüň).
  2. Ysyň adyny aýdyň. Näme gowulaşýarsyňyz we näme üçin? "Bu funksiýa 3 zady ýerine ýetirýär", "şol bir logika 4 ýerde gaýtalanýar", "atlar ýalňyş".
  3. Kiçijik, bir ädimli ädimleri soraň. AI-den ýekeje üýtgeşme soraň (meselem, “bu funksiýany iki bölege bölüň”), tutuş faýly täzeden ýazmaň.
  4. Synaglary işlediň. Her ädimden soň. Greenaşyl bolsa, dowam et, gyzyl bolsa, yzyna al.
  5. Tapawudy oka. Üýtgeşmäniň hakykatdanam özüni alyp barşyny çyzyk bilen tassyklaň; AI "diňe gurluş" diýlende logiki süýşme bolup biler.
  6. Ownuk böleklere birleşdiriň. Uly bir gezeklik gaýtadan işleýän PR-ler hem töwekgelçilikli, hem-de gözden geçirip bolmaýar.

Üç kiçi waka

1-nji hadysa - 220 setirli funksiýa howpsuz bölünýär. Bir toparyň 220 setirli sargytlary gaýtadan işlemek funksiýasy bardy. Ilkinji 14 synag (AI-iň kömegi bilen) häzirki özüni alyp barşyny ýazdy, hemmesi geçdi. Soňra funksiýa AI ädimme-ädim 5 kiçi funksiýa bölündi; Synaglar her ädimden soň geçirildi. Iki synag bir ädimde bozuldy - AI gyrada gaýdyp gelmegi sypdyrdy. Synaglar muny derrew ele aldylar we düzeddiler. Tor bolmasa, ýalňyşlyk önümçilige gidip bilerdi.

2-nji hadysa - Synagsyz betbagtçylyk. Başga bir dörediji, AI bilen synag bolmadyk senäni hasaplamak modulyny "arassalady". Kod has gowy görünýärdi, ýöne böküş ýylyny nädogry hasaplaýardy; Näsazlyk iki hepde soň müşderiniň arzasy bilen çykdy. .Itgiler gaýtadan işlemekden tygşytlanan wagtdan has ýokarydy. Sapak: synagdan geçirmän gaýtadan işlemek humarly oýun.

3-nji hadysa - Tehniki berginiň ileri tutulmagy. Bir topar AI-e 30 ýa-da ondan gowrak “üýtgedip bolmajak” bal berdi we hersine “üýtgetmek ýygylygy × töwekgelçilik × güýji” okunda gol saldy. Netijede, seýrek degilen ýigrenji modul aslynda pes ähmiýete eýe boldy, ýygy-ýygydan üýtgeýän orta çylşyrymly modul ileri tutuldy. Topar energiýasyny gerekli ýere gönükdirdi.

Göçürip boljak dört şablon

Kodyň ysyny kesgitlemek we ileri tutmak:

Bu kodda gaýtadan işleýän kandidatyň "ysyny" sanaň: uzyn funksiýa, gaýtalamak (DRYViolation), ýalňyş at, çuňňur höwürtge ýagdaýy, gizlin tarapy, jadyly belgisi. Her biri üçin: ýerleşiş, mesele näme üçin kiçijik ädim, çak edilýän töwekgelçilik (pes / orta / ýokary) teklip etdi. Kody üýtgetmäň, diňe meýilleşdiriň. {{Kod}}

Bir ädim, özüni alyp barşy gorap saklamak:

JUST muny etmeli: {{ýekeje öwrülişik, meselem. Bu funksiýany 3 smaller kiçi funksiýalara bölüň}}. Görünýän özüni alyp barşy, goly we gaýtarma bahalaryny üýtgediň. Üýtgeden zatlaryňyzyň näme üçin özüni saklaýandygyny 1 sözlemde ýazyň. {{Kod}}

Reaktoryň öňündäki howpsuzlyk tor (häsiýetnama synagy):

Bu funksiýanyň häzirki häsiýetini ele alýan synaglary ýazyň (dogry ýa-da ýok); maksat, gaýtadan işlemek wagtynda özüňi alyp barşyň üýtgese, tutmak. Adaty + gyradaky ýazgylary goşuň. Funksiýanyň häzirki çykyşyna esaslanyp garaşýan zatlary ýazyň. {{Funksiýa}}

Tehniki karz ýazgysy (yzagalak) nesil:

Aşakdaky yslaryň sanawyny ileri tutulýan tablisa guýuň: madda, täsir eden ýer, üýtgemegiň ýygylygy (meniň bilimim: {{...}}), töwekgelçilik, çak edilýän tagallalar, ileri tutulýan ugur. Impactokary täsirli + pes güýji ýokarda goýuň. {{ys_list}}

Gowşak haýyş / Güýçli haýyş

Gowşak: "Bu kody arassalaň we has gowulaşdyryň."
Güýçli: "Bu 90 setirli funksiýany daşarky özüni alyp barşyny we goluny üýtgetmän ýekeje jogapkärçilik bilen 3 sany kiçi funksiýa bölüň. Sidearamaz täsirleri (DB ýazýar) häzirki tertipde saklaň. Synaglarym bar, özüni alyp barşy şol bir görnüşde galmalydyr. Tapawut beriň we her bölünişigiň özüni alyp barşynyň sebäbini bir sözlemde düşündiriň. [Kod]"

Güýçli wersiýa; Specificeke-täk üýtgeşikligi talap edýär, özüni alyp barşyny we gol çäklendirmesini aç-açan kesgitleýär we delillendirilmegini talap edýär. "Has gowy et" ýaly düşnüksiz haýyşlar gözegçiliksiz we töwekgelçilikli üýtgeşmelere sebäp bolýar.

Täzeden işlemegiň görnüşi

AI ygtybarlylygy

Zerur şert

adyny üýtgetmek

beýik

Bu çäk dogrymy?

Funksiýa bölünişi

orta-ýokary

Testnet hökmany

Gaýtalama paýlaşmak

orta

Özüňi alyp barşyň tapawudy gizlenip biler

Algoritm / gurluşyň üýtgemegi

pes

Giňişleýin synag + adam tassyklamasy

Binagärlik tertibi

pes

Adam tarapyndan ýolbaşçylyk edilýän, AI tarapyndan goldanýan

Tehniki bergini dolandyrmak, yzyna gaýtarmazlyk

Tehniki berginiň hemmesi erbet däl; Käwagt aňly karz almak (gowşurmak üçin) dogry karar. Maksat karzy ýok etmek däl-de, ony görünmek we dolandyrmak üçin etmek. AI karzy ýüze çykarmakda we ileri tutmakda çalt, ýöne “haýsy karzy tölemeli we haýsyny terk etmeli” diýen karara gelmek iş şertlerini talap edýär: bu modul näçe gezek üýtgeýär, näçe adama täsir edýär, töwekgelçilik näme? Bu karar kod bazasyny we önümi bilýän topar tarapyndan kabul edilýär; AI diňe wariantlary aýdyňlaşdyrýar.

Maslahat: Özüňizi alyp barşyňyzyň üýtgemegini öz içine alýan PR-lerden aýratyn saklaň. "Bu PR diňe refaktory, özüni alyp barşy birmeňzeş" diýip bilmek, derňemegi aňsatlaşdyrýar we bir mesele ýüze çyksa sebäbini tiz gysgaltmaga mümkinçilik berýär.

Adaty ýalňyşlyklar

  • Testnetsiz gaýtadan işlemek. Özüňi alyp barşyň saklanandygyny subut etmek üçin hiç zat galmady.
  • "Faýly tutuşlygyna arassalamak" diýmekdir. Uly, gözegçiliksiz üýtgeşmeler ýalňyşlygy gizleýär we gözden geçirip bolmaýar.
  • Diff-i okamazdan kabul etmek. AI "diňe gurluş" diýlende käbir logikany süýşüren bolmagy mümkin.
  • Özüňi alyp barşyň üýtgemegi bilen refaktory bulaşdyrmak. Ikisini-de şol bir PR-de etmek düýp sebäbini yzarlamagy mümkin däl edýär.
  • Her ysy düzetmäge synanyşmak. Seýrek üýtgeýän erbet kod köplenç pes ähmiýete eýe; Energyygy-ýygydan üýtgeýän ýere energiýa bölüň.

Gysgaça

Täzeden işlemegiň ýeke-täk düzgüni, özüni alyp barşyň hemişelik bolmagy we munuň subutnamasy synaglardyr. AI koduň ysyny, bir basgançakly üýtgeşmeleri we tehniki bergini ileri tutmakda güýçli; emma howpsuzlyk toruny gurmaly, synaglary geçirmeli we her ädimden soň tapawudy okamaly. Kiçijik, tersine ädimler ätiň; refaktory alyp barşyň üýtgemeginden tapawutlandyrmak; we iş kontekstini bilýän topara haýsy bergini tölemelidigini çözmäge rugsat beriň.

Programma meselesi

Kod bazasyndan size uzyn ýa-da çylşyrymly görünýän bir funksiýa saýlaň. Ilki bilen häzirki howpsuzlyk hereketini "howpsuzlyk tor" şablony bilen ele alýan we olaryň hemmesiniň geçýändigini görýän synaglar. Soňra funksiýany "bir basgançakly, özüni alyp barşy gorap saklamak" görnüşi bilen ýekeje usulda (meselem, ýarym bölege bölmek) üýtgediň we synaglary täzeden işlediň. Synag döwülse, sebäbini biliň; Eger asla bozulmasa, özüni alyp barşyň hakykatdanam saklanandygyny tassyklamak üçin tapawutly setiri okaň.

gözegçilik sanawy

  • [] Reaktoringiň özüni alyp barşyny üýtgetmeli däldigini bilýärin we muny subut etmek üçin synaglar bar.
  • [] Reaktoryň öňünde häzirki hereketi alyp barýan howpsuzlyk toruny gurýaryn.
  • [] AI-den kiçi, bir basgançakly üýtgeşmeler isleýärin, uly bir gezeklik däl.
  • [] Her ädimden soň synaglary geçirýärin we tapawudyny okaýaryn.
  • [] Özüňi alyp barşyň üýtgemegi PR-den aýratynlykda PR-ni gaýtadan işlemegi dowam etdirýärin.
  • [] Tehniki bergini iş nukdaýnazaryndan ileri tutýaryn, kör bolmaga synanyşmaýaryn.