Iyunithi ihlola ku-DBMS - ukuthi sikwenza kanjani ku-Sportmaster, ingxenye yesibili

Ingxenye yokuqala - lapha.

Iyunithi ihlola ku-DBMS - ukuthi sikwenza kanjani ku-Sportmaster, ingxenye yesibili

Cabanga ngesimo. Ubhekene nomsebenzi wokuthuthukisa ukusebenza okusha. Unentuthuko evela kwabangaphambi kwakho. Uma sicabanga ukuthi awunazo izibopho zokuziphatha, ungenzenjani?

Ngokuvamile kunalokho, zonke intuthuko endala iyakhohlwa futhi yonke into iqala kabusha. Akekho othanda ukumba ikhodi yomunye umuntu, kodwa uma unesikhathi, kungani ungaqali ukudala isistimu yakho? Lena indlela evamile, futhi ilungile kakhulu. Kodwa kuphrojekthi yethu senze iphutha. Sasekela isistimu yokuhlola ezenzakalelayo yesikhathi esizayo ekuthuthukisweni kokuhlolwa kweyunithi ku-utPLSQL kusukela kwabangaphambi kwethu, sase siqala ukusebenza ngezindlela eziningana ezifanayo.

  1. Ukubuyisela ukuhlolwa kweyunithi endala. Ukuthola kabusha kusho ukulungisa izivivinyo esimweni esikhona sesistimu yokwethembeka kanye nokulungisa izivivinyo kuzindinganiso ze-utPLSQL.
  2. Ukuxazulula inkinga ngokuqonda ukuthi yini ngempela, yiziphi izindlela nezinqubo ezimbozwe ama-autotests. Kufanele ugcine lolu lwazi ekhanda lakho, noma ufinyelele iziphetho ngokusekelwe ngokuqondile kukhodi yokuhlola okuzenzakalelayo. Ngakho-ke, sinqume ukwakha ikhathalogi. Sabela ikhodi ye-mnemonic ehlukile ekuhloleni okuzenzakalelayo ngakunye, sakha incazelo nezilungiselelo ezirekhodiwe (ngokwesibonelo, kufanele yethulwe ngaphansi kwaziphi izimo, noma yini okufanele yenzeke uma ukuqaliswa kokuhlola kwehluleka). Empeleni, sigcwalise imethadatha mayelana nokuhlola okuzenzakalelayo futhi sabeka leyo methadatha kumathebula e-schema e-utPLSQL ajwayelekile.
  3. Ukuchaza isu lokunweba, i.e. ukukhethwa kokusebenza okungaphansi kokuqinisekiswa izivivinyo ezizenzakalelayo. Sinqume ukunaka izinto ezintathu: ukuthuthukiswa kwesistimu entsha, izehlakalo zokukhiqiza, nezinqubo ezibalulekile zesistimu. Ngakho-ke, sithuthukisa ngokuhambisana nokukhululwa, siqinisekisa ikhwalithi yayo ephezulu, kanyekanye sandisa ububanzi bokuhlehla nokuqinisekisa ukwethembeka kwesistimu ezindaweni ezibucayi. Ibhodlela lokuqala elinjalo kwaba inqubo yokusabalalisa izaphulelo namabhonasi eshekeni.
  4. Ngokwemvelo, saqala ukwenza ama-autotes amasha. Omunye wemisebenzi yokuqala yokukhishwa kwakuwukuhlola ukusebenza kwamasampuli achazwe ngaphambilini wesistimu yokwethembeka. Iphrojekthi yethu ine-block yemibuzo eqinile ye-SQL ekhetha amaklayenti ngokusekelwe ezimeni. Isibonelo, thola uhlu lwawo wonke amakhasimende ukuthengwa kwawo kokugcina bekusedolobheni elithile, noma uhlu lwamakhasimende inani lawo elimaphakathi lokuthenga lingaphezu kwevelu ethile. Ngemva kokuhlola okuzenzakalelayo okubhaliwe, sihlole amasampula achazwe ngaphambilini, amapharamitha wokusebenza okurekhodiwe, futhi ngaphezu kwalokho saba nokuhlolwa komthwalo.
  5. Ukusebenza nama-autotes kufanele kube lula. Izenzo ezimbili ezivame kakhulu ukwenza ukuhlola okuzenzakalelayo nokudala idatha yokuhlola. Lena yindlela amamojula asizayo amabili avele ngayo ohlelweni lwethu: imojula yokuqalisa kanye nemojula yokukhiqiza idatha.

    Isiqalisi simelelwa njengenqubo eyodwa yendawo yonke enepharamitha eyodwa yokufaka umbhalo. Njengepharamitha, ungadlulisa ikhodi yemnemonic ezenzakalelayo yokuhlola, igama lephakheji, igama lokuhlola, ukulungiselelwa kokuhlola okuzenzakalelayo, noma igama elingukhiye eligodliwe. Inqubo ikhetha futhi iqhube zonke izivivinyo ezizenzakalelayo ezenelisa izimo.

    Imodyuli yokukhiqiza idatha yethulwa ngendlela yephakheji lapho into ngayinye yesistimu evivinywayo (ithebula ku-database), inqubo ekhethekile idalwe efaka idatha lapho. Kule nqubo, amanani azenzakalelayo agcwaliswa ngangokunokwenzeka, okuqinisekisa ukudalwa kwezinto ngokoqobo ngokuchofoza umunwe. Futhi ukuze kube lula ukusetshenziswa, izifanekiso zedatha ekhiqiziwe zadalwa. Isibonelo, dala iklayenti leminyaka ethile ngefoni yokuhlola kanye nokuthenga okuqediwe.

  6. Ukuhlola okuzenzakalelayo kufanele kuqale futhi kusebenze ngesikhathi esamukelekayo kusistimu yakho. Ngakho-ke, ukwethulwa kwansuku zonke kwansuku zonke kwahlelwa, ngokusekelwe emiphumeleni lapho umbiko wemiphumela okhiqizwa khona futhi wathunyelwa kulo lonke ithimba lezokuthuthukiswa ngeposi lenkampani. Ngemva kokubuyisela ama-autotes amadala nokudala amasha, isikhathi esiphelele sokusebenza sasiyimizuzu engama-30. Lokhu kusebenza kwakufanele wonke umuntu, njengoba kwethulwa kwenzeka ngaphandle kwamahora okusebenza.

    Kodwa bekufanele sisebenzele ukuthuthukisa isivinini somsebenzi. Isistimu yokwethembeka ekukhiqizweni ibuyekezwa ebusuku. Njengengxenye yokunye okwakhululwa, kwakudingeka senze izinguquko eziphuthumayo ebusuku. Ukulinda isigamu sehora ngemiphumela yokuhlolwa kwe-autotes ngehora lesithathu ekuseni akuzange kwenze umuntu ophethe ukukhululwa ajabule (imikhonzo evuthayo ku-Alexey Vasyukov!), Futhi ngakusasa ekuseni kwashiwo amazwi amaningi anomusa maqondana nesistimu yethu. Kodwa ngenxa yalokho, kwasungulwa indinganiso yemizuzu emi-5 yomsebenzi.

    Ukuze sisheshise ukusebenza, sisebenzise izindlela ezimbili: ama-autotests aqala ukusebenza ngezintambo ezintathu ezifanayo, ngenhlanhla lokhu kulula kakhulu ngenxa yesakhiwo sesistimu yethu yokwethembeka. Futhi siyishiyile indlela lapho i-autotest ingadali idatha yokuhlola ngokwayo, kodwa izama ukuthola okuthile okufanele ohlelweni. Ngemuva kokwenza izinguquko, isikhathi esiphelele sokusebenza sincishisiwe sibe yimizuzu engu-3-4.

  7. Iphrojekthi enezivivinyo ezizenzakalelayo kufanele ikwazi ukutshalwa ezindaweni ezihlukene. Ekuqaleni kohambo lwethu, kube nemizamo yokubhala amafayela ethu e-batch, kodwa kwacaca ukuthi ukufakwa okuzenzakalelayo okuzibhalelayo kwakwethusa ngokuphelele, futhi saphendukela ezixazululweni zezimboni. Ngenxa yokuthi iphrojekthi iqukethe amakhodi amaningi aqondile (okokuqala, sigcina ikhodi ye-autotest) kanye nedatha encane kakhulu (idatha eyinhloko imethadatha mayelana nokuhlola okuzenzakalelayo), ukuqaliswa kuphrojekthi ye-Liquibase kwaba lula kakhulu.

    Iwumthombo ovulekile, umtapo wolwazi ozimele wokulandelela, ukuphatha, kanye nokuphoqelela izinguquko ze-schema sedathabhesi. Iphethwe ngomugqa womyalo noma izinhlaka ezifana ne-Apache Maven. Umgomo wokusebenza kwe-Liquibase ulula kakhulu. Sinephrojekthi ehlelwe ngendlela ethile, ehlanganisa izinguquko noma imibhalo edinga ukukhishwa kuseva eqondiwe, futhi silawule amafayela anquma ukuthi yikuphi ukulandelana nokuthi yiziphi imingcele okufanele zifakwe lezi zinguquko.

    Ezingeni le-DBMS, kwakhiwa ithebula elikhethekile lapho i-Liquibase igcina khona i-rollover log. Ushintsho ngalunye lune-hashi ebaliwe, eqhathaniswa isikhathi ngasinye phakathi kwephrojekthi nesifunda kusizindalwazi. Ngenxa ye-Liquibase, singakwazi ukukhipha kalula izinguquko kusistimu yethu kunoma iyiphi isekethe. Ukuhlola okuzenzakalelayo manje kwethulwa ekuhlolweni nasekukhishweni kwamasekethe, kanye naseziqukathi (amasekhethi omuntu siqu kanjiniyela).

Iyunithi ihlola ku-DBMS - ukuthi sikwenza kanjani ku-Sportmaster, ingxenye yesibili

Ngakho-ke, ake sikhulume ngemiphumela yokusebenzisa isistimu yethu yokuhlola iyunithi.

  1. Yiqiniso, okokuqala, siyaqiniseka ukuthi sesiqalile ukuthuthukisa isofthiwe engcono. Ukuhlola okuzenzakalelayo kwethulwa nsuku zonke futhi inqwaba yamaphutha atholakala konke ukukhishwa. Ngaphezu kwalokho, amanye alawa maphutha ahlobene kuphela ngokungaqondile nomsebenzi ebesifuna ukuwushintsha ngempela. Kukhona ukungabaza okukhulu ukuthi lawa maphutha atholwe ngokuhlolwa okwenziwa ngesandla.
  2. Ithimba manje liyaqiniseka ukuthi ukusebenza okuthile kusebenza ngendlela efanele... Okokuqala, lokhu kuthinta izinqubo zethu ezibucayi. Isibonelo, ezinyangeni eziyisithupha ezedlule asizange sibe nezinkinga ngokusatshalaliswa kwezaphulelo namabhonasi kumarisidi, naphezu kwezinguquko zokukhishwa, nakuba ezikhathini zangaphambili amaphutha enzeke ngokuvama okuthile.
  3. Sikwazile ukunciphisa inani lokuphindaphinda kokuhlola. Ngenxa yokuthi ukuhlola okuzenzakalelayo kubhalelwe ukusebenza okusha, abahlaziyi nabahloli besikhashana bathola ikhodi yekhwalithi ephezulu, ngoba isihloliwe.
  4. Ezinye zentuthuko ekuhloleni okuzenzakalelayo zisetshenziswa onjiniyela. Isibonelo, idatha yokuhlola kwiziqukathi idalwa kusetshenziswa imojula yokukhiqiza into.
  5. Kubalulekile ukuthi sithuthukise "ukwamukela" kwesistimu yokuhlola ezenzakalelayo ngasohlangothini lonjiniyela. Kukhona ukuqonda ukuthi lokhu kubalulekile futhi kuwusizo. Kodwa ngokuhlangenwe nakho kwami ​​​​ngingasho ukuthi lokhu kukude necala. Ama-autotest adinga ukubhalwa, adinga ukusekelwa futhi athuthukiswe, imiphumela kufanele ihlaziywe, futhi ngokuvamile lezi zindleko zesikhathi azifanelekile. Kulula kakhulu ukuya ekukhiqizeni futhi ubhekane nezinkinga lapho. Lapha, abathuthukisi benza umugqa bese basicela ukuthi simboze ukusebenza kwabo ngama-autotests.

Yini elandelayo

Iyunithi ihlola ku-DBMS - ukuthi sikwenza kanjani ku-Sportmaster, ingxenye yesibili

Ake sikhulume ngezinhlelo zokuthuthukisa iphrojekthi yokuhlola okuzenzakalelayo.

Yiqiniso, inqobo nje uma uhlelo lokwethembeka lwe-Sportmaster lusaphila futhi luqhubeka nokuthuthukiswa, kungenzeka futhi ukuthuthukisa ama-autotests cishe ngokungapheli. Ngakho-ke, isiqondiso esiyinhloko sentuthuko sikhulisa indawo yokuhlanganisa.

Njengoba inani lokuhlola okuzenzakalelayo likhula, isikhathi sabo esiphelele sokusebenza sizokhula kancane kancane, futhi kuzodingeka sibuyele endabeni yokusebenza. Ngokunokwenzeka, isisombululo sizoba ukwandisa inani lezintambo ezifanayo.

Kodwa lezi izindlela ezisobala zentuthuko. Uma sikhuluma ngento engeyona into encane, sigqamisa lokhu okulandelayo:

  1. Njengamanje, ukuphathwa kwe-autotest kwenziwa ezingeni le-DBMS, i.e. ulwazi lwe-PL/SQL luyadingeka emsebenzini ophumelelayo. Uma kudingekile, ukuphathwa kwesistimu (isibonelo, ukwethula noma ukudala imethadatha), ungakha uhlobo oluthile lwephaneli yomqondisi usebenzisa i-Jenkins noma into efanayo.
  2. Wonke umuntu uthanda izinkomba zobuningi nekhwalithi. Ngokuhlolwa okuzenzakalelayo, inkomba enjalo yendawo yonke Ikhodi Yokumbozwa noma i-metric yokufakwa kwekhodi. Ngokusebenzisa le nkomba, singanquma ukuthi yimaphi amaphesenti ekhodi yesistimu yethu ngaphansi kokuhlolwa ambozwa ama-autotests. Kusukela kunguqulo 12.2, i-Oracle inikeza ikhono lokubala le metric futhi inikeza ukusetshenziswa kwephakheji evamile ye-DBMS_PLSQL_CODE_COVERAGE.

    Isistimu yethu yokuhlola i-autotest isingaphezu konyaka nje ubudala futhi mhlawumbe manje isikhathi sokuhlola ukukhava kwethu. Kuphrojekthi yami yokugcina (hhayi iphrojekthi ye-Sportmaster) yilokhu okwenzekile. Unyaka ngemva kokusebenzela ukuhlola okuzenzakalelayo, abaphathi babeka umsebenzi wokuhlola ukuthi yimaphi amaphesenti ekhodi esiwahlanganisayo. Ngokuhlanganisa okungaphezu kuka-1%, abaphathi bangajabula. Thina, onjiniyela, besilindele umphumela ongaba ngu-10%. Sifake ukufakwa kwekhodi, salinganisa, futhi sathola u-20%. Ukuze sigubhe, saya ukuyolanda umklomelo, kodwa indlela esiye ngayo ukuze siwuthole nokuthi sayaphi kamuva kuyindaba ehluke ngokuphelele.

  3. Ukuhlola okuzenzakalelayo kungabheka izinsiza zewebhu eziveziwe. I-Oracle isivumela ukuthi sikwenze kahle lokhu, futhi ngeke sisahlangabezana nenani lezinkinga.
  4. Futhi, kunjalo, isistimu yethu yokuhlola ezenzakalelayo ingasetshenziswa kwenye iphrojekthi. Isixazululo esisitholile sisebenza emhlabeni wonke futhi sidinga kuphela ukusetshenziswa kwe-Oracle. Ngizwile ukuthi amanye amaphrojekthi e-Sportmaster anentshisekelo yokuhlola okuzenzakalelayo futhi mhlawumbe sizoya kuwo.

okutholakele

Ake sifingqe. Kuphrojekthi yesistimu yokwethembeka ku-Sportmaster, sikwazile ukusebenzisa isistimu yokuhlola ezenzakalelayo. Isekelwe kusixazululo se-utPLSQL esivela kuStephen Feuerstein. Eduze kwe-utPLSQL kunekhodi yokuhlola ezenzakalelayo namamojula asizayo azibhalele wona: imojula yokuqalisa, imojula yokukhiqiza idatha namanye. Ukuhlola okuzenzakalelayo kwethulwa nsuku zonke futhi, okubaluleke kakhulu, kuyasebenza futhi kuwusizo. Siyaqiniseka ukuthi sesiqalile ukukhipha isofthiwe yekhwalithi ephezulu. Ngesikhathi esifanayo, isixazululo esitholakalayo siyindawo yonke futhi singasetshenziswa ngokukhululekile kunoma iyiphi iphrojekthi lapho kudingekile ukuhlela ukuhlolwa okuzenzakalelayo ku-Oracle DBMS.

PS Lesi sihloko asicacile kakhulu: kunombhalo omningi futhi cishe azikho izibonelo zobuchwepheshe. Uma isihloko ngokuvamile sithakazelisa, khona-ke sikulungele ukuqhubeka futhi sibuye nokuqhubeka, lapho sizokutshela ukuthi yini eshintshile ezinyangeni eziyisithupha ezedlule futhi sinikeze izibonelo zekhodi.

Bhala izimpendulo uma kunamaphuzu okufanele agcizelelwe esikhathini esizayo, noma imibuzo edinga ukudalulwa.

Abasebenzisi ababhalisiwe kuphela abangabamba iqhaza kuhlolovo. Ngena ngemvume, wamukelekile.

Ngabe sizobhala okwengeziwe ngalokhu?

  • Yebo, impela

  • Cha ngiyabonga

Bangu-12 abasebenzisi abavotile. Abasebenzisi abangu-4 bayenqaba.

Source: www.habr.com

Engeza amazwana