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. Kuv pib kuv txoj haujlwm hauv kev sim tes, tom qab ntawd hloov mus rau kev tsim kho database. Rau plaub xyoos dhau los, kuv tau sau cov kev paub uas kuv tau txais hauv kev sim thiab kev txhim kho kom ua tiav kev sim ntawm qib DBMS.
Kuv tau yog ib feem ntawm pab pawg Sportmaster tau ntau tshaj ib xyoos, thiab kuv tab tom tsim kev sim ua haujlwm tsis siv neeg ntawm ib qho ntawm lawv cov haujlwm tseem ceeb. Thaum lub Plaub Hlis, cov txiv neej los ntawm Sportmaster Lab thiab kuv tau nthuav tawm ntawm lub rooj sib tham hauv Krasnodar. Kuv zaj lus tau hu ua "Kev Ntsuas Chav Hauv DBMS," thiab kuv xav qhia rau koj tam sim no. Nws yog ib zaj dab neeg ntev, yog li kuv tau txiav txim siab faib nws ua ob qho ntawv tshaj tawm. Hauv thawj zaug, peb yuav tham txog kev sim ua haujlwm tsis siv neeg thiab kev sim ua haujlwm dav dav, thiab hauv qhov thib ob, kuv yuav nkag mus rau hauv peb lub kaw lus sim ua haujlwm thiab cov txiaj ntsig ntawm nws txoj kev siv.
Ua ntej, me ntsis kev xav tsis thoob. Kev sim ua haujlwm tsis siv neeg yog dab tsi? Nws yog kev sim ua los ntawm kev siv cov cuab yeej software, thiab hauv IT niaj hnub no, nws siv ntau dua hauv kev tsim kho software. Qhov no yog vim tias cov tuam txhab loj hlob, lawv cov txheej txheem cov ntaub ntawv loj hlob, thiab qhov ntau ntawm cov haujlwm uas xav tau kev sim loj hlob raws li. Kev sim tes ua haujlwm kim dua.
Kuv ua haujlwm rau ib lub tuam txhab loj uas tso tawm software txhua ob lub hlis. Ib hlis tag nrho tau siv tes los kuaj xyuas kev ua haujlwm nrog kaum ob tus neeg sim. Los ntawm kev siv automation nrog pab pawg me me ntawm cov neeg tsim khoom, peb tau txo lub sijhawm kuaj mus rau ob lub lis piam hauv ib xyoos thiab ib nrab. Peb tsis yog tsuas yog ua kom qhov ceev ntawm kev kuaj xwb tab sis kuj txhim kho nws qhov zoo. Kev kuaj tsis siv neeg khiav tsis tu ncua thiab ib txwm ua tiav tag nrho lawv cov kev kuaj, tshem tawm qhov yuam kev ntawm tib neeg.
Ib qho yam ntxwv ntawm IT niaj hnub no yog tias tus tsim tawm yuav tsum tsis txhob tsuas yog sau cov lej khoom xwb, tab sis kuj tseem yuav tsum sau cov kev sim chav tsev uas txheeb xyuas cov lej ntawd.
Tab sis yog tias koj lub system vam khom rau server-side logic xwb ces ua li cas? Tsis muaj ib txoj kev daws teeb meem uas siv tau rau txhua tus neeg siv lossis tsis muaj kev coj ua zoo tshaj plaws hauv kev ua lag luam. Feem ntau cov tuam txhab daws qhov teeb meem no los ntawm kev tsim lawv tus kheej lub system kuaj xyuas. Qhov no yog lub system kuaj xyuas uas peb tau tsim rau peb qhov project, thiab kuv yuav tham txog nws hauv kuv zaj lus.

Kev sim siab ncaj ncees
Ua ntej, cia peb tham txog qhov project uas peb tau xa ib lub tshuab kuaj xyuas tsis siv neeg. Peb qhov project yog Sportmaster lub tshuab ua siab ncaj (los ntawm txoj kev, peb twb tau sau txog nws hauv ).
Yog tias koj lub tuam txhab loj txaus, koj lub kaw lus ua siab ncaj yuav muaj peb yam ntxwv txheem:
- Koj lub system yuav loaded sai heev.
- Koj lub system yuav muaj cov txheej txheem suav lej nyuaj.
- Koj lub cev yuav raug txhim kho kom zoo.
Cia peb ua ib kauj ruam zuj zus ... Zuag qhia tag nrho, xav txog txhua lub npe Sportmaster, peb muaj ntau dua 1000 lub khw thoob plaws Russia, Ukraine, Tuam Tshoj, Kazakhstan, thiab Belarus. Cov khw no ua tiav kwv yees li 300,000 qhov kev yuav khoom txhua hnub. Qhov no txhais tau tias 3-4 daim ntawv txais nyiaj tau ua tiav hauv peb lub kaw lus txhua ob. Ntawm chav kawm, peb lub kaw lus ncaj ncees tau thauj khoom ntau heev. Thiab txij li thaum nws siv nquag, peb yuav tsum tswj hwm cov qauv zoo tshaj plaws, vim tias txhua qhov yuam kev software tuaj yeem ua rau muaj kev poob nyiaj txiag, lub koob npe nrov, thiab lwm yam.
Sportmaster muaj ntau tshaj ib puas qhov kev tshaj tawm sib txawv uas khiav txhua lub sijhawm. Cov kev tshaj tawm no muaj ntau yam: qee qhov yog tshwj xeeb rau cov khoom, qee qhov yog tshwj xeeb rau hnub ntawm lub lim tiam, qee qhov yog tshwj xeeb rau lub khw, qee qhov yog raws li tag nrho cov nyiaj ntawm qhov kev txiav txim, thiab qee qhov yog raws li qhov ntau ntawm cov khoom. Zuag qhia tag nrho, nws yog qhov kev tshaj tawm loj heev. Cov neeg siv khoom tau txais cov nyiaj ntxiv thiab cov lej tshaj tawm uas tuaj yeem siv thaum ua kev yuav khoom. Tag nrho cov no ua rau kev xam tus nqi ntawm txhua qhov kev txiav txim yog ib txoj haujlwm nyuaj heev.
Cov algorithm uas siv cov txheej txheem ua tiav qhov kev txiav txim yog qhov txaus ntshai thiab nyuaj heev. Thiab txhua qhov kev hloov pauv rau cov algorithm no muaj kev pheej hmoo heev. Txawm tias qhov kev hloov pauv uas zoo li tsis tseem ceeb tuaj yeem ua rau muaj txiaj ntsig tsis tau kwv yees. Txawm li cas los xij, nws yog cov txheej txheem suav lej nyuaj, tshwj xeeb tshaj yog cov uas siv cov haujlwm tseem ceeb, uas yog cov neeg sib tw zoo tshaj plaws rau kev ua haujlwm tsis siv neeg. Kev sim ntau kaum ob ntawm cov xwm txheej zoo sib xws siv sijhawm ntau heev. Thiab txij li thaum qhov nkag mus rau cov txheej txheem tsis hloov pauv, thaum nws tau piav qhia, koj tuaj yeem tsim cov kev sim tsis siv neeg sai sai thiab ntseeg siab rau qhov ua haujlwm.
Vim tias peb lub kaw lus siv tas li, cov lag luam yuav xav tau ib yam dab tsi tshiab los ntawm koj, ua raws li lub sijhawm, thiab tsom mus rau cov neeg siv khoom. Peb lub kaw lus ua siab ncaj tso tawm txhua ob lub hlis. Qhov no txhais tau tias peb yuav tsum ua qhov kev rov qab tag nrho ntawm tag nrho lub kaw lus txhua ob lub hlis. Ntawm chav kawm, zoo li hauv txhua qhov chaw IT niaj hnub no, kev tsim kho tsis txav tam sim ntawd los ntawm tus tsim tawm mus rau kev tsim khoom. Nws pib ntawm qhov kawg ntawm tus tsim tawm, tom qab ntawd dhau los ntawm qhov chaw sim, qhov chaw tso tawm, qhov chaw txais, thiab tsuas yog tom qab ntawd mus txog qhov tsim khoom. Peb yuav tsum ua qhov kev rov qab tag nrho ntawm tag nrho lub kaw lus tsawg kawg ntawm qhov chaw sim thiab tso tawm.
Cov khoom uas tau piav qhia yog tus qauv rau yuav luag txhua lub tshuab ua siab ncaj. Cia peb tham txog cov ntsiab lus ntawm peb txoj haujlwm.
Txog kev siv tshuab, 90% ntawm peb lub tshuab ua haujlwm ncaj ncees yog siv los ntawm lub server thiab siv rau ntawm Oracle. Peb muaj ib lub Delphi client uas ua haujlwm ua tus thawj coj ua haujlwm. Peb kuj muaj cov kev pabcuam web rau cov ntawv thov sab nraud (xws li lub vev xaib). Yog li ntawd, nws yog qhov tsim nyog uas yog tias peb yuav tsum xa ib lub tshuab kuaj xyuas tsis siv neeg, peb yuav ua li ntawd rau ntawm Oracle.
Sportmaster lub tshuab ua haujlwm ncaj ncees tau muaj nyob rau ntau tshaj xya xyoo thiab tau tsim los ntawm ib pab pawg neeg tsim khoom. Tus lej nruab nrab ntawm cov neeg tsim khoom hauv peb qhov project dhau xya xyoo no yog peb txog plaub. Tab sis dhau xyoo dhau los, peb pab neeg tau loj hlob ntau heev, thiab tam sim no peb muaj kaum tus neeg ua haujlwm rau qhov project. Qhov no txhais tau tias qhov project no tau ua haujlwm los ntawm cov neeg tsis paub txog cov haujlwm, cov txheej txheem, thiab cov qauv vaj tsev. Qhov no ua rau muaj kev pheej hmoo ntawm peb uas ploj lawm kab laum.
Qhov project no yog ib qho uas tsis muaj cov neeg kuaj mob siab ua haujlwm puv sijhawm. Kev kuaj yeej muaj, tab sis nws yog ua los ntawm cov kws tshuaj ntsuam xyuas, ntxiv rau lawv lwm lub luag haujlwm tseem ceeb: sib txuas lus nrog cov neeg siv khoom lag luam thiab cov neeg siv, tsim cov kev cai ntawm lub kaw lus, thiab lwm yam. Txawm hais tias kev kuaj zoo heev (qhov no yog qhov tseem ceeb, vim qee tus kws tshuaj ntsuam xyuas yuav pom daim ntawv tshaj tawm no), qhov ua tau zoo ntawm kev tshwj xeeb thiab kev tsom mus rau tseem muaj.
Muab tag nrho cov saum toj no, lub tswv yim ntawm kev sim ua haujlwm tsis siv neeg ntawm qhov project zoo li muaj laj thawj los txhim kho qhov zoo ntawm cov khoom xa tuaj thiab txo lub sijhawm tsim kho. Ntawm ntau theem ntawm lub kaw lus ncaj ncees, cov neeg tsim khoom ib leeg tau siv zog los npog lawv cov lej nrog kev sim chav. Qhov no feem ntau yog ib qho txheej txheem tsis sib haum xeeb, nrog txhua tus neeg tsim khoom siv lawv tus kheej architecture thiab cov txheej txheem. Cov xov sib xws khiav los ntawm kev sim chav yog cov hauv qab no: kev sim tau tsim, siv rau ib ntus, khaws cia rau hauv cov ntaub ntawv versioned, tab sis thaum qee lub sijhawm, lawv tsis khiav thiab raug hnov qab. Qhov no feem ntau tshwm sim vim tias kev sim tau khi ntau dua rau tus tsim tawm tshwj xeeb dua li rau qhov project.
utPLSQL los cawm

Koj puas paub dab tsi txog Stephen Feuerstein?
Nov yog ib tug txiv neej ntse uas tau mob siab rau nws txoj haujlwm ua haujlwm nrog Oracle thiab PL/SQL, sau ntau yam haujlwm ntawm qhov kev kawm no. Ib phau ntawv paub zoo ntawm nws yog hu ua "Oracle PL/SQL: Rau Cov Kws Tshaj Lij." Stephen tau txais txiaj ntsig los ntawm kev tsim cov kev daws teeb meem utPLSQL, lossis, raws li nws sawv cev rau, Unit Testing Framework rau Oracle PL/SQL. utPLSQL tau tsim nyob rau hauv 2016, tab sis nws tseem niaj hnub tsim thiab hloov kho tshiab. Thaum lub sijhawm ntawm qhov kev nthuav qhia no, qhov tseeb version tau tso tawm rau lub Peb Hlis 24, 2019.
Nws yog dab tsi? Nws yog ib qho project qhib-qhov chaw uas sawv daws siv tau. Nws hnyav ob peb megabytes, suav nrog cov piv txwv thiab cov ntaub ntawv. Nws yog ib daim schema sib cais hauv Oracle database nrog ib pawg ntawm cov pob khoom thiab cov rooj rau kev sim unit. Kev teeb tsa siv sijhawm ob peb feeb xwb. Ib qho tshwj xeeb ntawm utPLSQL yog nws yooj yim siv.
Feem ntau, utPLSQL yog ib txoj hauv kev rau kev khiav cov kev sim unit, qhov twg cov kev sim unit yog txhais tias yog cov txheej txheem Oracle batch uas tau teeb tsa raws li qee txoj cai. Ntxiv rau kev khiav cov kev sim, utPLSQL khaws cov ntaub ntawv teev cia ntawm tag nrho koj cov kev sim khiav thiab muaj ib lub kaw lus tshaj tawm sab hauv.
Cia peb saib ib qho piv txwv ntawm cov lej kuaj chav tsev zoo li cas thaum siv cov txheej txheem no.

Yog li, cov lej rau cov lus qhia txog pob khoom kuaj ib txwm muaj nyob rau ntawm qhov screen. Cov kev cai yuav tsum ua yog dab tsi? Lub pob khoom yuav tsum muaj "utp_" prefix. Txhua cov txheej txheem kuaj yuav tsum muaj tib lub prefix. Lub pob khoom yuav tsum muaj ob txoj kev txheej txheem txheem: "utp_setup" thiab "utp_teardown." Cov txheej txheem thawj zaug raug hu thaum txhua qhov kev xeem ib txwm rov pib dua, thiab qhov thib ob raug hu tom qab nws tau pib.
"utp_setup" feem ntau npaj peb lub cev rau kev khiav ib qho kev sim unit, piv txwv li, los ntawm kev tsim cov ntaub ntawv sim. "utp_teardown," ntawm qhov tod tes, rov qab txhua yam mus rau qhov chaw qub thiab pib dua cov txiaj ntsig khiav.
Nov yog ib qho piv txwv ntawm kev sim ua ib chav yooj yim heev, uas xyuas seb tus lej xov tooj ntawm cov neeg siv khoom nkag mus rau hauv hom ntawv tus qauv rau peb lub kaw lus ua siab ncaj. Tsis muaj cov qauv yuav tsum tau sau cov txheej txheem sim ua ib chav. Feem ntau, ib txoj kev ntawm lub kaw lus uas raug sim raug hu, thiab qhov tshwm sim rov qab los ntawm txoj kev no raug piv nrog qhov tshwm sim siv. Nws yog ib qho tseem ceeb uas kev sib piv ntawm qhov tshwm sim siv thiab qhov tshwm sim tau txais yog ua tiav siv cov txheej txheem utPLSQL tus qauv.
Ib qho kev sim unit tuaj yeem muaj ntau qhov kev kuaj xyuas. Raws li qhov piv txwv qhia, peb ua plaub qhov kev hu sib law liag rau txoj kev uas raug sim kom ua kom tus lej xov tooj zoo li qub, thiab soj ntsuam qhov tshwm sim tom qab txhua qhov kev hu. Thaum tsim ib qho kev sim unit, nws yog ib qho tseem ceeb uas yuav tsum xav txog tias qee qhov kev kuaj xyuas tsis cuam tshuam rau lub kaw lus li cas, thaum lwm tus xav tau kev rov qab mus rau lub xeev qub ntawm lub kaw lus.
Piv txwv li, hauv qhov kev sim chav tsev uas tau nthuav tawm, peb tsuas yog tsim cov lej xov tooj nkag, uas tsis cuam tshuam rau lub kaw lus ncaj ncees hauv txhua txoj kev.
Yog tias peb sau cov kev xeem unit siv txoj kev tsim cov neeg siv khoom tshiab, tom qab txhua qhov kev kuaj xyuas, yuav muaj ib tus neeg siv khoom tshiab tsim nyob rau hauv lub system, uas yuav cuam tshuam rau kev sim tom ntej.

Nov yog li cas kev sim chav tsev raug khiav. Muaj ob txoj kev xaiv ua tau: khiav tag nrho cov kev sim chav tsev los ntawm ib pob tshwj xeeb lossis khiav ib qho kev sim chav tsev tshwj xeeb hauv ib pob tshwj xeeb.

Nov yog ib qho piv txwv ntawm lub kaw lus tshaj tawm sab hauv. Raws li cov txiaj ntsig ntawm kev sim ib chav, utPLSQL tsim ib daim ntawv qhia me me. Nws qhia cov txiaj ntsig rau txhua qhov kev kuaj xyuas tshwj xeeb thiab tag nrho cov txiaj ntsig ntawm kev sim chav.
6 txoj cai ntawm kev sim tsis siv neeg
Ua ntej peb pib tsim ib lub tshuab kuaj kev ncaj ncees tshiab, peb tau ua haujlwm nrog cov thawj coj los txhais cov ntsiab cai uas peb cov kev kuaj kev ncaj ncees yav tom ntej yuav tsum ua raws li.

- Kev sim ua haujlwm tsis siv neeg yuav tsum ua tau zoo thiab muaj txiaj ntsig. Peb muaj cov neeg tsim khoom zoo heev, uas tsim nyog tau hais tshwj xeeb - ib tus neeg yuav pom qhov kev hais lus no - thiab lawv sau cov lej zoo heev. Tab sis txawm tias lawv cov lej zoo kawg nkaus tsis zoo tag nrho; nws muaj, muaj, thiab yuav txuas ntxiv muaj qhov yuam kev. Kev sim ua haujlwm tsis siv neeg yuav tsum nrhiav cov yuam kev no. Yog tias lawv tsis ua, ces peb tab tom sau cov kev sim ua haujlwm tsis zoo lossis peb tau poob rau hauv thaj chaw tuag uas tsis tau ua tiav. Hauv ob qho tib si, peb tab tom ua qee yam tsis raug, thiab peb txoj hauv kev tsuas yog tsis muaj txiaj ntsig.
- Yuav tsum siv cov kev sim ua haujlwm tsis siv neeg. Tsis muaj qab hau siv sijhawm thiab lub zog ntau los sau cov khoom software, tsim ib lub chaw khaws ntaub ntawv, thiab tom qab ntawd tsis nco qab txog nws. Kev sim yuav tsum tau khiav, thiab khiav tsis tu ncua li sai tau.
- Kev sim ua haujlwm tsis siv neeg yuav tsum khiav tau zoo. Txawm hais tias lub sijhawm ntawm ib hnub, kev teeb tsa kev sim, thiab lwm yam kev teeb tsa ntawm lub kaw lus, kev sim khiav yuav tsum tsim cov txiaj ntsig zoo ib yam. Qhov no feem ntau tau lees paub los ntawm kev khiav kev sim ua haujlwm tsis siv neeg ntawm cov ntaub ntawv sim tshwj xeeb nrog cov chaw teeb tsa ntawm lub kaw lus ruaj khov.
- Kev sim ua haujlwm tsis siv neeg yuav tsum khiav ntawm qhov ceev uas koj qhov project txais tau. Lub sijhawm no yog txiav txim siab ib leeg rau txhua lub system. Qee qhov tuaj yeem khiav tau ib hnub, thaum lwm tus yuav tsum khiav hauv ob peb feeb xwb. Kuv yuav qhia cov qauv ceev uas peb tau ua tiav hauv peb qhov project me ntsis tom qab.
- Kev tsim cov kev sim tsis siv neeg yuav tsum muaj kev ywj pheej. Nws tsis zoo rau kev tso tseg kev sim ib qho tshwj xeeb vim peb tsis tau ua nws ua ntej lossis rau qee qhov laj thawj. utPLSQL tsis muaj kev txwv kev tsim kho, thiab Oracle tso cai rau ntau yam kev siv. Feem ntau cov teeb meem muaj kev daws teeb meem; nws tsuas yog ib qho teeb meem ntawm lub sijhawm thiab kev siv zog.
- Kev Siv Tau. Peb muaj ntau lub chaw sim uas peb xav tau los khiav cov kev sim. Cov ntaub ntawv pov tseg tuaj yeem hloov kho tshiab txhua lub sijhawm ntawm txhua lub chaw sim. Peb yuav tsum tswj hwm qhov project nrog kev sim tsis siv neeg hauv txoj kev uas tso cai rau kev xa tawm tag nrho lossis ib nrab yam tsis muaj teeb meem.
Thiab hauv tsab ntawv thib ob ob peb hnub kuv yuav qhia rau koj paub tias peb tau ua dab tsi thiab peb tau txais txiaj ntsig dab tsi.
Tau qhov twg los: www.hab.com
