Chav ntsuas hauv DBMS - peb ua li cas hauv Sportmaster, ib feem

Hlo Habr!

Kuv lub npe yog Maxim Ponomarenko thiab kuv yog tus tsim tawm ntawm Sportmaster. Kuv muaj 10 xyoo ntawm kev paub hauv IT field. Nws pib nws txoj haujlwm hauv kev xeem ntawv, tom qab ntawd hloov mus rau kev txhim kho database. Rau 4 lub xyoos dhau los, khaws cov kev paub tau txais hauv kev sim thiab kev txhim kho, Kuv tau ua qhov kev sim automation ntawm qib DBMS.

Kuv tau nyob hauv pab pawg Sportmaster tsuas yog ib xyoos xwb thiab tab tom txhim kho kev xeem tsis siv neeg ntawm ib qho ntawm cov haujlwm loj. Thaum lub Plaub Hlis, cov txiv neej los ntawm Sportmaster Lab thiab kuv tau hais lus ntawm lub rooj sib tham hauv Krasnodar, kuv daim ntawv tshaj tawm tau hu ua "Unit tests in DBMS," thiab tam sim no kuv xav qhia rau koj. Yuav muaj ntau cov ntawv nyeem, yog li kuv tau txiav txim siab faib cov ntawv tshaj tawm ua ob nqe lus. Hauv thawj zaug, peb yuav tham txog autotests thiab kev xeem feem ntau, thiab qhov thib ob, kuv yuav nyob hauv kev nthuav dav ntxiv ntawm peb qhov kev sim ntsuas thiab cov txiaj ntsig ntawm nws daim ntawv thov.

Chav ntsuas hauv DBMS - peb ua li cas hauv Sportmaster, ib feem

Ua ntej, me ntsis tho txawv txoj kev xav. Dab tsi yog automated xeem? Qhov no yog kev sim uas tau ua los ntawm kev siv software, thiab hauv IT niaj hnub no nws tau siv ntau dua hauv kev txhim kho software. Qhov no yog vim lub fact tias cov tuam txhab loj hlob, lawv cov ntaub ntawv systems yog loj hlob thiab, raws li, tus nqi ntawm functionality uas yuav tsum tau mus kuaj yog loj hlob. Kev ntsuas phau ntawv tau dhau los ua kim dua.

Kuv ua haujlwm rau ib lub tuam txhab loj uas nws tso tawm txhua ob lub hlis. Nyob rau tib lub sijhawm, ib hlis tag nrho tau siv rau kev muaj lub kaum os cov neeg kuaj xyuas cov haujlwm ua haujlwm. Ua tsaug rau kev siv automation los ntawm pab pawg me ntawm cov neeg tsim khoom, peb tuaj yeem txo lub sijhawm sim mus rau 2 lub lis piam hauv ib xyoos thiab ib nrab. Peb tsis tau tsuas yog nce qhov ceev ntawm kev sim, tab sis kuj txhim kho nws qhov zoo. Cov kev ntsuam xyuas tsis siv neeg tau pib tsis tu ncua thiab lawv ib txwm ua tiav tag nrho cov kev kuaj xyuas suav nrog hauv lawv, uas yog, peb tsis suav nrog tib neeg qhov tseem ceeb.

Niaj hnub no IT yog tus cwj pwm los ntawm qhov tseeb tias tus tsim tawm yuav tsum tsis yog sau cov khoom lag luam nkaus xwb, tab sis kuj tseem sau cov ntawv xeem uas kuaj cov lej no.

Tab sis yuav ua li cas yog tias koj lub kaw lus ua raws feem ntau ntawm server logic? Tsis muaj kev daws teeb meem thoob ntiaj teb lossis kev coj ua zoo tshaj plaws ntawm kev ua lag luam. Raws li txoj cai, cov tuam txhab daws qhov teeb meem no los ntawm kev tsim lawv tus kheej-sau ntawv xeem system. Qhov no yog peb tus kheej sau ntawv automated xeem system uas tau tsim nyob rau hauv peb tes num thiab kuv yuav tham txog nws nyob rau hauv kuv daim ntawv qhia.

Chav ntsuas hauv DBMS - peb ua li cas hauv Sportmaster, ib feem

Kev ntsuam xyuas loyalty

Ua ntej, cia peb tham txog qhov project uas peb tau siv lub tshuab ntsuas hluav taws xob. Peb qhov project yog Sportmaster loyalty system (los ntawm txoj kev, peb twb tau sau txog nws nyob rau hauv tsab ntawv no).

Yog tias koj lub tuam txhab loj txaus, ces koj qhov kev ntseeg siab yuav muaj peb yam khoom zoo:

  • Koj qhov system yuav raug thauj khoom heev
  • Koj qhov system yuav muaj cov txheej txheem suav ua haujlwm nyuaj
  • Koj qhov system yuav ua kom zoo dua qub.

Cia peb mus nyob rau hauv kev txiav txim ... Nyob rau hauv tag nrho, yog hais tias peb xav txog tag nrho cov Sportmaster hom, ces peb muaj ntau tshaj 1000 khw muag khoom nyob rau hauv Russia, Ukraine, Tuam Tshoj, Kazakhstan thiab Belarus. Txog 300 kev yuav khoom tau ua hauv cov khw no txhua hnub. Ntawd yog, txhua qhov thib ob 000-3 daim tshev nkag rau hauv peb lub cev. Lawm, peb loyalty system yog loaded heev. Thiab txij li nws tau nquag siv, peb yuav tsum muab cov qauv siab tshaj plaws ntawm nws qhov zoo, vim tias muaj kev ua yuam kev hauv software txhais tau tias nyiaj txiag loj, lub koob npe nrov thiab lwm yam kev poob.

Nyob rau tib lub sijhawm, Sportmaster khiav ntau tshaj li ib puas qhov kev txhawb nqa sib txawv. Muaj ntau yam kev tshaj tawm: muaj kev tshaj tawm cov khoom lag luam, muaj cov nplooj siab rau hnub ntawm lub lim tiam, muaj cov khi rau ib lub khw tshwj xeeb, muaj kev txhawb nqa rau tus nqi ntawm daim ntawv txais nyiaj, muaj rau cov khoom muag. Feem ntau, tsis phem. Cov neeg siv khoom muaj nyiaj tshwj xeeb thiab cov lej tshaj tawm uas siv thaum ua kev yuav khoom. Tag nrho cov no ua rau lub fact tias xam ib qho kev txiav txim yog ib tug heev tsis tseem ceeb txoj hauj lwm.

Lub algorithm uas siv cov txheej txheem kev txiav txim yog qhov txaus ntshai thiab nyuaj. Thiab txhua qhov kev hloov pauv rau qhov algorithm no yog qhov txaus ntshai heev. Nws zoo nkaus li tias qhov kev hloov pauv tsis tseem ceeb tshaj plaws tuaj yeem ua rau muaj kev cuam tshuam tsis zoo. Tab sis nws yog qhov tseeb xws li cov txheej txheem suav nrog, tshwj xeeb tshaj yog cov uas siv cov haujlwm tseem ceeb, uas yog cov neeg sib tw zoo tshaj plaws rau automation. Kev tshuaj xyuas kaum ob ntawm cov xwm txheej zoo sib xws los ntawm tes yog siv sijhawm ntau heev. Thiab txij li thaum lub ntsiab lus nkag mus rau hauv cov txheej txheem tsis hloov pauv, tau piav qhia nws ib zaug, koj tuaj yeem tsim cov kev xeem tsis siv neeg sai thiab ntseeg siab tias cov haujlwm yuav ua haujlwm.

Txij li thaum peb qhov system tau siv zog, kev lag luam yuav xav tau qee yam tshiab los ntawm koj, nyob nrog lub sijhawm thiab ua tus neeg siv khoom. Hauv peb txoj kev ntseeg siab, kev tshaj tawm tawm txhua ob lub hlis. Qhov no txhais tau hais tias txhua txhua ob lub hlis peb yuav tsum tau ua kom tiav regression ntawm tag nrho cov system. Nyob rau tib lub sijhawm, ib txwm, ib yam li hauv IT niaj hnub no, kev txhim kho tsis tam sim ntawd los ntawm tus tsim tawm mus rau kev tsim khoom. Nws pib los ntawm tus tsim tawm lub voj voog, tom qab ntawd ua tiav dhau los ntawm lub rooj zaum xeem, tso tawm, kev lees txais, thiab tsuas yog tom qab ntawd xaus rau hauv kev tsim khoom. Yam tsawg kawg nkaus, ntawm qhov kev sim thiab tso tawm circuits, peb yuav tsum ua kom tiav qhov kev rov qab los ntawm tag nrho cov kab ke.

Cov khoom piav qhia yog tus qauv rau yuav luag txhua qhov kev ntseeg siab. Cia peb tham txog cov yam ntxwv ntawm peb qhov project.

Technologically, 90% ntawm cov logic ntawm peb cov kev ntseeg siab yog server-raws li thiab siv rau Oracle. Muaj ib tus neeg siv khoom nthuav tawm hauv Delphi, uas ua haujlwm ntawm tus thawj tswj hwm qhov chaw ua haujlwm. Muaj cov kev pabcuam hauv lub vev xaib rau cov ntawv thov sab nraud (piv txwv li lub vev xaib). Yog li ntawd, nws yog ib qho laj thawj heev uas yog tias peb xa ib qho kev sim ua haujlwm, peb yuav ua nws ntawm Oracle.

Lub loyalty system nyob rau hauv Sportmaster muaj nyob rau ntau tshaj 7 xyoo thiab yog tsim los ntawm ib tug developers ... Qhov nruab nrab tus naj npawb ntawm developers ntawm peb tes num nyob rau hauv lub 7 xyoo no yog 3-4 tus neeg. Tab sis xyoo dhau los, peb pab neeg tau loj hlob tuaj, thiab tam sim no muaj 10 tus neeg ua haujlwm ntawm qhov project. Ntawd yog, cov neeg tuaj rau qhov project uas tsis paub txog cov haujlwm, cov txheej txheem, thiab kev tsim vaj tsev. Thiab muaj kev pheej hmoo ntxiv uas peb yuav nco ua yuam kev.

Qhov project yog tus cwj pwm los ntawm qhov tsis muaj cov neeg kuaj mob siab ua haujlwm ua haujlwm. Muaj, tau kawg, kev sim, tab sis kev sim yog ua los ntawm cov kws tshuaj ntsuam, ntxiv rau lawv cov luag haujlwm tseem ceeb: kev sib txuas lus nrog cov neeg siv khoom lag luam, cov neeg siv, tsim cov kev cai, thiab lwm yam. thiab lwm yam ... Txawm tias qhov tseeb tias kev sim ua tau zoo heev (qhov no yog qhov tshwj xeeb tshaj yog tsim nyog los hais, txij li qee tus kws tshuaj ntsuam yuav ntes lub qhov muag ntawm daim ntawv qhia no), qhov ua tau zoo ntawm kev tshwj xeeb thiab kev xav ntawm ib yam tsis tau muab tso tseg. .

Xav txog tag nrho cov saum toj no, txhawm rau txhim kho qhov zoo ntawm cov khoom xa tuaj thiab txo lub sijhawm txhim kho, lub tswv yim ntawm kev ntsuas automating ntawm ib qhov project zoo li muaj laj thawj. Thiab nyob rau theem sib txawv ntawm qhov kev ntseeg siab ntawm qhov muaj nyob, tus neeg tsim tawm tau siv zog los npog lawv cov cai nrog kev sim ntsuas. Zuag qhia tag nrho nws yog txheej txheem tsis sib haum xeeb, nrog txhua tus siv lawv tus kheej architecture thiab cov txheej txheem. Cov txiaj ntsig kawg tau tshwm sim rau chav ntsuas: cov kev sim tau tsim, siv rau qee lub sijhawm, khaws cia hauv cov ntaub ntawv khaws cia, tab sis qee lub sijhawm lawv nres thiab tsis nco qab. Ua ntej ntawm tag nrho cov, qhov no yog vim qhov tseeb hais tias cov kev ntsuam xyuas tau khi ntau dua rau ib tus neeg ua yeeb yam tshwj xeeb, thiab tsis yog rau qhov project.

utPLSQL los cawm

Chav ntsuas hauv DBMS - peb ua li cas hauv Sportmaster, ib feem

Koj puas paub dab tsi txog Stephen Feuerstein?

Qhov no yog ib tug txiv neej ntse uas tau mob siab rau ntev ntawm nws txoj hauj lwm los ua haujlwm nrog Oracle thiab PL / SQL, thiab tau sau ntau yam haujlwm ntawm cov ncauj lus no. Ib ntawm nws cov phau ntawv nto moo hu ua: β€œOracle PL/SQL. Rau cov kws tshaj lij. " Nws yog Stephen uas tau tsim cov kev daws teeb meem utPLSQL, lossis, raws li nws sawv cev rau, Chav ntsuas ntsuas rau Oracle PL / SQL. Qhov kev daws teeb meem utPLSQL tau tsim nyob rau hauv 2016, tab sis nws tseem ua haujlwm tau zoo thiab cov qauv tshiab raug tso tawm. Thaum lub sijhawm tshaj tawm, qhov tseeb version hnub rov qab rau lub Peb Hlis 24, 2019.
Nws yog dab tsi. Qhov no yog qhov qhib qhov project cais. Nws hnyav ob peb megabytes, suav nrog cov piv txwv thiab cov ntaub ntawv. Lub cev, nws yog ib qho kev sib cais hauv ORACLE cov ntaub ntawv nrog cov pob khoom thiab cov rooj rau kev teeb tsa chav kuaj. Kev teeb tsa yuav siv ob peb feeb. Ib qho tshwj xeeb ntawm utPLSQL yog nws qhov yooj yim ntawm kev siv.
Thoob plaws ntiaj teb, utPLSQL yog ib lub tswv yim rau kev khiav cov kev xeem hauv chav tsev, qhov twg ib chav ntsuas tau nkag siab zoo li cov txheej txheem Oracle batch zoo tib yam, lub koom haum uas ua raws qee cov cai. Ntxiv rau kev tshaj tawm, utPLSQL khaws cov ntaub ntawv ntawm tag nrho koj cov kev xeem khiav, thiab tseem muaj cov ntaub ntawv qhia sab hauv.

Cia peb saib ib qho piv txwv ntawm qhov kev sim ntsuas chav tsev zoo li cas, ua raws li cov txheej txheem no.

Chav ntsuas hauv DBMS - peb ua li cas hauv Sportmaster, ib feem

Yog li, qhov screen qhia cov cai rau ib qho kev qhia tshwj xeeb ntawm pob khoom nrog cov kev sim ntsuas. Dab tsi yog qhov yuav tsum tau ua? Cov pob ntawv yuav tsum tau ua ntej nrog "utp_". Tag nrho cov txheej txheem nrog rau kev xeem yuav tsum muaj raws nraim tib yam ua ntej. Lub pob yuav tsum muaj ob txheej txheem txheej txheem: "utp_setup" thiab "utp_teardown". Thawj cov txheej txheem hu ua los ntawm kev rov pib dua txhua chav ntsuas, qhov thib ob - tom qab tso tawm.

"utp_setup", raws li txoj cai, npaj peb lub kaw lus los khiav ib chav ntsuas, piv txwv li, tsim cov ntaub ntawv xeem. "utp_teardown" - ntawm qhov tsis sib xws, txhua yam rov qab mus rau qhov qub chaw thiab rov pib dua cov txiaj ntsig tso tawm.

Ntawm no yog ib qho piv txwv ntawm qhov kev sim yooj yim tshaj plaws uas kuaj xyuas qhov normalization ntawm tus neeg siv xov tooj nkag mus rau tus qauv qauv rau peb qhov kev ntseeg siab. Tsis muaj cov qauv uas yuav tsum tau ua los ntawm kev sau cov txheej txheem nrog cov kev xeem hauv chav. Raws li txoj cai, kev hu xov tooj yog ua rau ib txoj hauv kev hauv kev sim, thiab cov txiaj ntsig rov qab los ntawm txoj kev no yog muab piv nrog rau qhov siv ib qho. Nws yog ib qho tseem ceeb uas qhov kev sib piv ntawm cov txiaj ntsig siv thiab qhov tau txais tshwm sim los ntawm cov txheej txheem utPLSQL.

Ib chav ntsuas ntsuas tuaj yeem muaj pes tsawg daim tshev. Raws li tuaj yeem pom los ntawm qhov piv txwv, peb ua plaub qhov sib law liag mus rau txoj kev sim kom normalize tus xov tooj thiab ntsuas qhov tshwm sim tom qab txhua qhov hu. Thaum tsim ib qho kev sim ntsuas, koj yuav tsum coj mus rau hauv tus account tias muaj cov tshev uas tsis cuam tshuam rau qhov system hauv txhua txoj kev, thiab tom qab qee qhov koj yuav tsum yob rov qab mus rau qhov qub ntawm lub system.
Piv txwv li, nyob rau hauv qhov kev ntsuam xyuas chav tsev peb tsuas format lub input xov tooj, uas tsis cuam tshuam rau lub loyalty system nyob rau hauv ib txoj kev.

Thiab yog tias peb sau cov ntawv xeem uas siv cov qauv ntawm kev tsim cov neeg siv khoom tshiab, tom qab txhua qhov kev sim, tus neeg siv khoom tshiab yuav raug tsim nyob rau hauv qhov system, uas tuaj yeem cuam tshuam rau qhov kev sim tom ntej.

Chav ntsuas hauv DBMS - peb ua li cas hauv Sportmaster, ib feem

Qhov no yog li cas cov kev sim ntsuas ntsuas tau khiav. Muaj ob txoj kev xaiv tso tawm: khiav tag nrho cov kev sim ntsuas los ntawm ib pob tshwj xeeb lossis khiav ib qho kev sim ntsuas hauv ib pob tshwj xeeb.

Chav ntsuas hauv DBMS - peb ua li cas hauv Sportmaster, ib feem

Qhov no yog qhov piv txwv ntawm qhov kev tshaj tawm sab hauv zoo li. Raws li cov txiaj ntsig ntawm chav ntsuas ntsuas, utPLSQL tsim ib daim ntawv qhia me me. Hauv nws peb pom qhov tshwm sim rau txhua qhov kev kuaj xyuas tshwj xeeb thiab tag nrho cov txiaj ntsig ntawm chav ntsuas ntsuas.

6 txoj cai ntawm autotests

Ua ntej pib tsim cov txheej txheem tshiab rau kev ntsuas kev ua haujlwm ntawm kev ua siab ncaj, ua ke nrog kev tswj hwm, peb tau txiav txim siab cov ntsiab lus uas peb cov kev xeem automated yav tom ntej yuav tsum ua raws.

Chav ntsuas hauv DBMS - peb ua li cas hauv Sportmaster, ib feem

  1. Autotests yuav tsum muaj txiaj ntsig thiab yuav tsum muaj txiaj ntsig. Peb muaj cov neeg tsim khoom zoo, uas yuav tsum tau hais txog, vim qee qhov ntawm lawv yuav pom daim ntawv tshaj tawm no, thiab lawv sau cov lej zoo. Tab sis txawm tias lawv txoj cai zoo tsis zoo tag nrho thiab muaj, muaj, thiab tseem yuav muaj qhov yuam kev. Autotests yuav tsum tau mus nrhiav cov yuam kev no. Yog tias qhov no tsis yog qhov teeb meem, ces peb tab tom sau ntawv tsis zoo autotests, lossis peb tau tuaj rau thaj chaw tuag uas, hauv paus ntsiab lus, tsis tau tsim. Hauv ob qho xwm txheej, peb tab tom ua ib yam dab tsi tsis ncaj ncees lawm, thiab peb txoj hauv kev tsuas yog tsis muaj txiaj ntsig.
  2. Autotests yuav tsum tau siv. Nws tsis muaj txiaj ntsig los siv sijhawm ntau thiab siv zog los sau cov khoom lag luam software, muab tso rau hauv qhov chaw cia khoom thiab tsis nco qab nws. Kev ntsuam xyuas yuav tsum tau khiav, thiab khiav kom tsis tu ncua li sai tau.
  3. Autotests yuav tsum ua haujlwm ruaj khov. Txawm hais tias lub sijhawm nruab hnub, qhov chaw tso tawm thiab lwm yam kev teeb tsa, kev sim ua haujlwm yuav tsum ua rau tib qho txiaj ntsig. Raws li txoj cai, qhov no tau lees paub los ntawm qhov tseeb tias autotests ua haujlwm nrog cov ntaub ntawv ntsuas tshwj xeeb nrog cov teeb tsa ruaj khov.
  4. Autotests yuav tsum ua haujlwm ntawm qhov ceev uas tau txais rau koj qhov project. Lub sijhawm no yog txiav txim siab tus kheej rau txhua qhov system. Qee tus neeg tuaj yeem them taus ua haujlwm txhua hnub, thaum lwm tus pom tias nws tseem ceeb ua nws hauv vib nas this. Kuv yuav qhia koj me ntsis tom qab seb cov qauv ceev peb ua tiav hauv peb qhov project.
  5. Autotest txoj kev loj hlob yuav tsum hloov tau. Nws tsis pom zoo kom tsis kam sim ib qho kev ua haujlwm tsuas yog vim peb tsis tau ua nws ua ntej lossis rau qee qhov laj thawj. utPLSQL tsis txwv kev txhim kho, thiab Oracle, hauv txoj cai, tso cai rau koj siv ntau yam. Feem ntau cov teeb meem muaj kev daws teeb meem, nws tsuas yog teeb meem ntawm lub sijhawm thiab kev siv zog.
  6. Kev siv tau. Peb muaj ob peb qhov chaw uas peb yuav tsum tau mus xeem xeem. Ntawm txhua qhov chaw muag khoom, cov ntaub ntawv pov tseg tuaj yeem hloov kho txhua lub sijhawm. Nws yog ib qho tsim nyog los ua ib qhov project nrog cov kev ntsuam xyuas tsis siv neeg hauv txoj hauv kev uas koj tuaj yeem ua tiav nws qhov kev teeb tsa tag nrho lossis ib nrab.

Thiab nyob rau hauv lub thib ob ncej nyob rau hauv ob peb hnub kuv yuav qhia rau koj seb peb tau ua dab tsi thiab dab tsi tshwm sim peb ua tiav.

Tau qhov twg los: www.hab.com

Ntxiv ib saib