Iimvavanyo zeyunithi kwi-DBMS - siyenza njani kwi-Sportmaster, icandelo lesibini

Inxalenye yokuqala - apha.

Iimvavanyo zeyunithi kwi-DBMS - siyenza njani kwi-Sportmaster, icandelo lesibini

Khawube nomfanekiso-ngqondweni wemeko. Ujongene nomsebenzi wokuphuhlisa umsebenzi omtsha. Unenkqubela phambili evela kubanduleli bakho. Ukuba sicinga ukuba akunazibophelelo zokuziphatha, ubuya kwenza ntoni?

Amaxesha amaninzi, zonke izinto zakudala ziyalityalwa kwaye yonke into iqala kwakhona. Akukho mntu uthanda ukumba ikhowudi yomnye umntu, kodwa ukuba unexesha, kutheni ungaqalisi ukwenza eyakho inkqubo? Le yindlela eqhelekileyo, kwaye ichanekile ubukhulu becala. Kodwa kwiprojekthi yethu senze kakubi. Siseke inkqubo yovavanyo oluzenzekelayo lwexesha elizayo kuphuhliso kuvavanyo lweyunithi kwi-utPLSQL evela kubanduleli bethu, emva koko saya kusebenza kumacala amaninzi ahambelanayo.

  1. Ukubuyisela iimvavanyo zeyunithi endala. Ukubuyisela kuthetha ukulungelelanisa iimvavanyo kwimeko ekhoyo yenkqubo yokuthembeka kunye nokulungelelanisa iimvavanyo kwimigangatho ye-utPLSQL.
  2. Ukusombulula ingxaki ngokuqonda ukuba yintoni kanye kanye, zeziphi iindlela kunye neenkqubo ezigutyungelwe nge-autotests. Kuya kufuneka ugcine olu lwazi entlokweni yakho, okanye wenze izigqibo ngokusekelwe ngokuthe ngqo kwikhowudi ye-autotest. Ngoko ke, sagqiba ekubeni senze ikhathalogu. Sabela ikhowudi ye-mnemonic ekhethekileyo kwi-autotest nganye, senze inkcazo kunye nezicwangciso ezirekhodiweyo (umzekelo, phantsi kweyiphi imiqathango ekufuneka iqaliswe, okanye kufuneka kwenzeke ntoni ukuba uvavanyo lokuqaliswa aluphumeleli). Ngokusisiseko, sibeke imethadatha malunga ne-autotests kwaye sabeka loo metadata kwiitafile eziqhelekileyo ze-utPLSQL schema.
  3. Ukuchaza isicwangciso sokwandisa, okt. ukhetho lomsebenzi ophantsi kokuqinisekiswa ngovavanyo oluzenzekelayo. Sagqiba ekubeni sinikele ingqalelo kwizinto ezintathu: ukuphuculwa kwenkqubo entsha, iziganeko zemveliso, kunye neenkqubo eziphambili zenkqubo. Ngaloo ndlela, siphuhlisa ngokuhambelana nokukhululwa, siqinisekisa umgangatho walo ophezulu, ngaxeshanye sandisa umda wokunciphisa kunye nokuqinisekisa ukuthembeka kwenkqubo kwiindawo ezibalulekileyo. Ingxaki yokuqala enjalo yayiyinkqubo yokusasazwa kwezaphulelo kunye neebhonasi kwitshekhi.
  4. Ngokwemvelo, saqala ukwenza ii-autotes ezintsha. Omnye wemisebenzi yokuqala yokukhupha yayikukuvavanya ukusebenza kweesampulu ezichazwe kwangaphambili zenkqubo yokuthembeka. Iprojekthi yethu inebhloko yemibuzo eqinileyo yeSQL ekhetha abathengi ngokusekelwe kwiimeko. Umzekelo, fumana uluhlu lwabo bonke abathengi abathe ukugqibela kwabo ukuthenga bekukwidolophu ethile, okanye uluhlu lwabathengi abanexabiso eliqhelekileyo lokuthenga lingaphezulu kwexabiso elithile. Ukuba novavanyo olubhaliweyo olubhaliweyo, siye sajonga iisampulu esele zichaziwe, iiparamitha zebenchmark ezirekhodiweyo, kwaye ukongeza besinovavanyo lomthwalo.
  5. Ukusebenza kunye ne-autotests kufuneka kube lula. Ezona zenzo zimbini zixhaphakileyo ziqhuba uvavanyo oluzenzekelayo kunye nokudala idatha yovavanyo. Yile ndlela iimodyuli ezincedisayo ezimbini ezivele ngayo kwinkqubo yethu: imodyuli yokuqalisa kunye nemodyuli yokuvelisa idatha.

    Umqalisi umelwe njengenkqubo enye jikelele kunye nepharamitha yegalelo lombhalo omnye. Njengeparamitha, ungadlula ikhowudi ye-mnemonic ye-autotest, igama lephakheji, igama lovavanyo, ukusetwa kwe-autotest, okanye igama elingundoqo eligciniweyo. Inkqubo ikhetha kwaye iqhube zonke ii-autotests eziyanelisayo iimeko.

    Imodyuli yokuvelisa idatha inikezelwa ngendlela yepakethe apho into nganye yenkqubo phantsi kovavanyo (itafile kwi-database), inkqubo ekhethekileyo yenziwe efaka idatha apho. Kule nkqubo, amaxabiso angagqibekanga azaliswe kangangoko kunokwenzeka, okuqinisekisa ukudalwa kwezinto ngokoqobo ngokucofa umnwe. Kwaye ukuze kube lula ukusetyenziswa, iitemplates zedatha eyenziweyo zenziwe. Ngokomzekelo, yenza umxhasi weminyaka ethile kunye nefowuni yokuvavanya kunye nokuthenga okugqityiweyo.

  6. Uvavanyo oluzenzekelayo kufuneka luqale kwaye luqhube ngexesha elamkelekileyo kwinkqubo yakho. Ngoko ke, ukuqaliswa kobusuku bemihla ngemihla kwahlelwa, ngokusekelwe kwiziphumo apho ingxelo malunga neziphumo yenziwe kwaye ithunyelwe kwiqela lonke lophuhliso ngeposi yenkampani. Emva kokubuyisela ii-autotes ezindala kunye nokudala ezintsha, ixesha elipheleleyo lokusebenza laliyimizuzu ye-30. Lo msebenzi wawufanele wonke umntu, kuba uphehlelelo lwenzeka ngaphandle kweeyure zokusebenza.

    Kodwa kwafuneka sisebenze ekwandiseni isantya somsebenzi. Inkqubo yokunyaniseka kwimveliso ihlaziywa ebusuku. Njengenxalenye yokukhululwa kwethu, kwafuneka senze utshintsho olungxamisekileyo ebusuku. Ukulinda isiqingatha seyure kwiziphumo ze-autotest ngentsimbi yesithathu ekuseni akuzange kumenze umntu onoxanduva lokukhululwa avuyiswe (imibuliso evuthayo ku-Alexey Vasyukov!), Kwaye ngentsasa elandelayo kwathethwa amazwi amaninzi anobubele malunga nenkqubo yethu. Kodwa ngenxa yoko, kwasekwa umgangatho wemizuzu emi-5 yomsebenzi.

    Ukukhawulezisa ukusebenza, sasebenzisa iindlela ezimbini: ii-autotests zaqala ukusebenza kwimisonto emithathu ehambelanayo, ngethamsanqa oku kulunge kakhulu ngenxa yoyilo lwenkqubo yethu yokuthembeka. Kwaye siyishiyile indlela apho i-autotest ingenzi idatha yovavanyo ngokwayo, kodwa izama ukufumana into efanelekileyo kwinkqubo. Emva kokwenza utshintsho, ixesha lokusebenza lilonke lancitshiswa libe yimizuzu emi-3-4.

  7. Iprojekthi enovavanyo oluzenzekelayo kufuneka ikwazi ukubekwa kwiindawo ezahlukeneyo. Ekuqaleni kohambo lwethu, kwakukho iinzame zokubhala iifayile zethu ze-batch, kodwa kwacaca ukuba ukufakela okuzenzekelayo okubhaliweyo kwakusoyikeka ngokupheleleyo, kwaye saphendukela kwizisombululo zemizi-mveliso. Ngenxa yokuba iprojekthi iqulethe ikhowudi eninzi ngokuthe ngqo (okokuqala, sigcina ikhowudi ye-autotest) kunye nedatha encinci kakhulu (idatha ephambili i-metadata malunga ne-autotests), ukuphunyezwa kwiprojekthi ye-Liquibase kwaba lula kakhulu.

    Ngumthombo ovulekileyo, ithala leencwadi elizimeleyo lokulandelela, ukulawula, kunye nokunyanzelisa utshintsho lweschema sedatabase. Ilawulwa ngelayini yomyalelo okanye izakhelo ezifana neApache Maven. Umgaqo wokusebenza kweLiquibase ulula kakhulu. Sineprojekthi ehlelwe ngendlela ethile, equkethe utshintsho okanye izikripthi ezifunekayo ukuba zikhutshwe kumncedisi ojoliswe kuyo, kunye neefayile ezilawulayo ezigqiba ukuba kukuphi ukulandelelana kunye neziphi iiparitha ezi tshintsho kufuneka zifakwe.

    Kwinqanaba le-DBMS, itafile ekhethekileyo yenziwe apho i-Liquibase igcina i-rollover log. Utshintsho ngalunye lune-hash ebalwayo, ethelekiswa ixesha ngalinye phakathi kweprojekthi kunye nombuso kwisiseko sedatha. Siyabulela kwiLiquibase, sinokukhupha ngokulula utshintsho kwinkqubo yethu kuyo nayiphi na isekethe. Uvavanyo lwe-Autotest ngoku luqalisiwe kuvavanyo kunye nokukhulula iisekethe, kunye nakwizikhongozeli (iisekethe zobuqu zabaphuhlisi).

Iimvavanyo zeyunithi kwi-DBMS - siyenza njani kwi-Sportmaster, icandelo lesibini

Ke, masithethe ngeziphumo zokusebenzisa inkqubo yethu yovavanyo lweyunithi.

  1. Ewe, okokuqala, siqinisekile ukuba sele siqalisile ukuphuhlisa isoftware engcono. Uvavanyo oluzenzekelayo luqaliswa yonke imihla kwaye iimpazamo ezininzi zifunyanwa lonke ukhupho. Ngaphezu koko, ezinye zezi mpazamo zinxulumene kuphela ngokungangqalanga nokusebenza ebesifuna ukukutshintsha ngokwenene. Kukho amathandabuzo amakhulu okuba ezi mpazamo zifunyenwe ngovavanyo lwezandla.
  2. Iqela ngoku liqinisekile ukuba umsebenzi othile usebenza ngokuchanekileyo ... Okokuqala, oku kuchaphazela iinkqubo zethu ezibalulekileyo. Ngokomzekelo, kwiinyanga ezintandathu ezidlulileyo asizange sibe naziphi na iingxaki ngokusasazwa kwezaphulelo kunye neebhonasi kwiirisithi, nangona kukho utshintsho lokukhululwa, nangona kwixesha elidlulileyo kukho iimpazamo eziye zenzeka ngamaxesha athile.
  3. Sikwazile ukunciphisa inani lovavanyo oluphindaphindwayo. Ngenxa yokuba ii-autotests zibhalelwa ukusebenza okutsha, abahlalutyi kunye nabavavanyi bexeshana bafumana ikhowudi yomgangatho ophezulu, kuba sele ijongiwe.
  4. Olunye uphuhliso kuvavanyo oluzenzekelayo lusetyenziswa ngabaphuhlisi. Umzekelo, idatha yovavanyo kwizikhongozeli yenziwe kusetyenziswa imodyuli yokuvelisa into.
  5. Kubalulekile ukuba siphuhlise "ukwamkelwa" kwenkqubo yokuvavanya ngokuzenzekelayo kwicala labaphuhlisi. Kukho ukuqonda ukuba oku kubalulekile kwaye kuluncedo. Kodwa ngokwam amava ndingatsho ukuba oku kukude kwimeko. Ii-Autotests kufuneka zibhalwe, kufuneka zixhaswe kwaye ziphuhliswe, iziphumo kufuneka zihlalutywe, kwaye kaninzi ezi ndleko zexesha azifanelekanga. Kulula kakhulu ukuya kwimveliso kunye nokujongana neengxaki apho. Apha, abaphuhlisi bafola kwaye basicele ukuba sigqume umsebenzi wabo ngovavanyo oluzenzekelayo.

Yintoni elandelayo

Iimvavanyo zeyunithi kwi-DBMS - siyenza njani kwi-Sportmaster, icandelo lesibini

Makhe sithethe ngezicwangciso zophuhliso lweprojekthi yovavanyo oluzenzekelayo.

Ngokuqinisekileyo, lo gama nje inkqubo yokunyaniseka ye-Sportmaster isaphila kwaye iqhubeka nokuphuhlisa, kunokwenzeka kwakhona ukuphuhlisa i-autotests phantse ngokungapheliyo. Ngoko ke, isikhokelo esiphambili sophuhliso kukwandisa indawo yokugubungela.

Njengoko inani le-autotest landa, ixesha labo lokusebenza lilonke liya kunyuka ngokukhawuleza, kwaye siya kuphinda sibuyele kumcimbi wokusebenza. Okunokwenzeka, isisombululo siya kuba kukwandisa inani lemisonto ehambelanayo.

Kodwa ezi ziindlela ezicacileyo zophuhliso. Ukuba sithetha ngento engeyonto encinci, sigxininisa oku kulandelayo:

  1. Okwangoku, ulawulo lwe-autotest lwenziwa kwinqanaba le-DBMS, okt. ulwazi lwe-PL/SQL luyafuneka kumsebenzi oyimpumelelo. Ukuba kuyimfuneko, ulawulo lwenkqubo (umzekelo, ukuqalisa okanye ukudala imethadatha), unokwenza uhlobo oluthile lwephaneli yolawulo usebenzisa iJenkins okanye into efanayo.
  2. Wonke umntu uthanda izikhombisi zobungakanani kunye nekhwalithi. Kuvavanyo oluzenzekelayo, isilathisi esinje jikelele yiKhowudi yoFundo lweKhowudi okanye i-metric yokugubungela ikhowudi. Ukusebenzisa esi salathisi, sinokugqiba ukuba yiyiphi ipesenti yekhowudi yenkqubo yethu phantsi kovavanyo olufakwe kwii-autotests. Ukuqala kuguqulelo lwe-12.2, i-Oracle ibonelela ngokukwazi ukubala le metric kwaye inikezela ngokusetyenziswa kwephakheji eqhelekileyo ye-DBMS_PLSQL_CODE_COVERAGE.

    Inkqubo yethu yokuhlola i-autotest ingaphezulu konyaka ubudala kwaye mhlawumbi ngoku lixesha lokuvavanya ukhuseleko lwethu. Kwiprojekthi yam yokugqibela (hayi iprojekthi ye-Sportmaster) yile nto yenzekileyo. Unyaka emva kokusebenza kwii-autotests, abaphathi babeka umsebenzi wokuvavanya ukuba yiyiphi ipesenti yekhowudi esiyigubungelayo. Ngokhuseleko olungaphezulu kwe-1%, abaphathi bangavuya. Thina, abaphuhlisi, silindele umphumo malunga ne-10%. Sifake ikhowudi yokugubungela, sayilinganisa, kwaye safumana i-20%. Ukubhiyozela, siye saya kufumana ibhaso, kodwa indlela esiye ngayo ukulifumana kunye nalapho siye khona kamva libali elahluke ngokupheleleyo.

  3. Uvavanyo oluzenzekelayo lunokukhangela iinkonzo zewebhu eziveziweyo. I-Oracle isivumela ukuba siyenze kakuhle le nto, kwaye asisayi kuphinda sidibane neengxaki ezininzi.
  4. Kwaye, ewe, inkqubo yethu yovavanyo oluzenzekelayo ingasetyenziswa kwenye iprojekthi. Isisombululo esisifumeneyo sisehlabathini lonke kwaye sifuna kuphela ukusetyenziswa kwe-Oracle. Ndivile ukuba ezinye iiprojekthi ze-Sportmaster zinomdla kuvavanyo oluzenzekelayo kwaye mhlawumbi siya kuya kubo.

ezifunyanisiweyo

Makhe sishwankathele. Kwiprojekthi yenkqubo yokuthembeka kwiSportmaster, sikwazile ukuphumeza inkqubo yovavanyo oluzenzekelayo. Isekelwe kwisisombululo se-utPLSQL esivela kuStephen Feuerstein. Ngokumalunga ne-utPLSQL kukho ikhowudi yokuvavanya kunye neemodyuli ezizibhalelayo ezincedisayo: imodyuli yokuqalisa, imodyuli yokuvelisa idatha kunye nabanye. Uvavanyo oluzenzekelayo luqaliswa yonke imihla kwaye, okona kubaluleke kakhulu, luyasebenza kwaye luluncedo. Siqinisekile ukuba sele siqalisile ukukhupha isoftware ekumgangatho ophezulu. Ngexesha elifanayo, isisombululo esibangelwayo siyinto yonke kwaye sinokusetyenziswa ngokukhululekileyo kuyo nayiphi na iprojekthi apho kuyimfuneko ukuququzelela uvavanyo oluzenzekelayo kwi-Oracle DBMS.

PS Eli nqaku alichanekanga kakhulu: kukho itekisi eninzi kwaye akukho mizekelo yobugcisa. Ukuba isihloko sinomdla ngokubanzi, ngoko sikulungele ukuqhubeka kwaye sibuyele ngokuqhubekayo, apho siya kukuxelela into etshintshileyo kwiinyanga ezintandathu ezidlulileyo kwaye sinikeze imizekelo yekhowudi.

Bhala amagqabaza ukuba kukho iingongoma ezimele zigxininiswe kwixesha elizayo, okanye imibuzo efuna ingcaciso.

Ngabasebenzisi ababhalisiweyo kuphela abanokuthatha inxaxheba kuphando. Ngena, ndiyacela.

Ngaba siza kubhala ngakumbi malunga noku?

  • Ewe okuqinisekile

  • Hayi enkosi

Bangama-12 abasebenzisi abavotileyo. Abasebenzisi abangama-4 abakhange.

umthombo: www.habr.com

Yongeza izimvo