Deuchainnean aonad ann an DBMS - mar a nì sinn e ann an Sportmaster, pàirt a h-aon

Hi Habr!

Is e m’ ainm Maxim Ponomarenko agus tha mi nam leasaiche aig Sportmaster. Tha 10 bliadhna de eòlas agam ann an raon IT. Thòisich e na dhreuchd ann an deuchainn làimhe, agus an uairsin ghluais e gu leasachadh stòr-dàta. Airson na 4 bliadhna a dh’ fhalbh, a’ cruinneachadh an eòlais a fhuair mi ann an deuchainn agus leasachadh, tha mi air a bhith a’ dèanamh deuchainn fèin-ghluasadach aig ìre DBMS.

Tha mi air a bhith air sgioba Sportmaster airson beagan a bharrachd air bliadhna agus tha mi a’ leasachadh deuchainnean fèin-ghluasadach air aon de na prìomh phròiseactan. Anns a’ Ghiblean, bhruidhinn na balaich bho Sportmaster Lab agus mise aig co-labhairt ann an Krasnodar, chaidh an aithisg agam ainmeachadh mar “Deuchainnean aonad ann an DBMS,” agus a-nis tha mi airson a roinn leat. Bidh tòrr teacsa ann, agus mar sin chuir mi romham an aithisg a roinn ann an dà phost. Anns a 'chiad, bidh sinn a' bruidhinn mu dheidhinn autotests agus deuchainn san fharsaingeachd, agus anns an dàrna, bidh mi a 'fuireach ann am barrachd mionaideachd air ar siostam deuchainn aonad agus toraidhean a chur an gnìomh.

Deuchainnean aonad ann an DBMS - mar a nì sinn e ann an Sportmaster, pàirt a h-aon

An toiseach, beagan teòiridheach dòrainneach. Dè a th’ ann an deuchainn fèin-ghluasadach? Is e seo deuchainn a tha air a dhèanamh le bathar-bog, agus ann an IT an latha an-diugh tha e air a chleachdadh barrachd is barrachd ann an leasachadh bathar-bog. Tha seo air sgàth gu bheil companaidhean a’ fàs, tha na siostaman fiosrachaidh aca a’ fàs agus, a rèir sin, tha an ìre de ghnìomhachd a dh’ fheumar a dhearbhadh a’ fàs. Tha a bhith a’ dèanamh deuchainnean làimhe a’ fàs nas daoire.

Bha mi ag obair do chompanaidh mhòr a bhios a’ sgaoileadh a-mach gach dà mhìos. Aig an aon àm, chaidh mìos slàn a chosg gus dusan neach-dearbhaidh a sgrùdadh le làimh. Mar thoradh air buileachadh fèin-ghluasad le sgioba bheag de luchd-leasachaidh, bha e comasach dhuinn an ùine deuchainn a lughdachadh gu 2 sheachdain ann am bliadhna gu leth. Chan e a-mhàin gu bheil sinn air astar an deuchainn àrdachadh, ach cuideachd air càileachd a leasachadh. Bidh deuchainnean fèin-ghluasadach air an cur air bhog gu cunbhalach agus bidh iad an-còmhnaidh a ’dèanamh a’ chùrsa iomlan de sgrùdaidhean a tha air an toirt a-steach annta, is e sin, bidh sinn a ’dùnadh a-mach am bàillidh daonna.

Tha IT ùr-nodha air a chomharrachadh leis an fhìrinn gum faodadh gum feum leasaiche chan ann a-mhàin còd toraidh a sgrìobhadh, ach cuideachd deuchainnean aonad a sgrìobhadh a bheir sùil air a’ chòd seo.

Ach dè ma tha an siostam agad stèidhichte gu sònraichte air loidsig an fhrithealaiche? Chan eil fuasgladh uile-choitcheann no cleachdaidhean as fheàrr air a’ mhargaidh. Mar riaghailt, bidh companaidhean a 'fuasgladh na duilgheadas seo le bhith a' cruthachadh an siostam dearbhaidh fèin-sgrìobhaidh aca fhèin. Is e seo an siostam dearbhaidh fèin-ghluasadach fèin-sgrìobhte againn fhèin a chaidh a chruthachadh air a’ phròiseact againn agus bruidhnidh mi mu dheidhinn san aithisg agam.

Deuchainnean aonad ann an DBMS - mar a nì sinn e ann an Sportmaster, pàirt a h-aon

A 'dèanamh deuchainn air dìlseachd

An toiseach, bruidhnidh sinn mun phròiseact far an do chuir sinn an sàs siostam deuchainn fèin-ghluasadach. Is e ar pròiseact siostam dìlseachd Sportmaster (co-dhiù, tha sinn mu thràth air sgrìobhadh mu dheidhinn am post seo).

Ma tha do chompanaidh mòr gu leòr, bidh trì feartan àbhaisteach aig an t-siostam dìlseachd agad:

  • Bidh an siostam agad làn luchdachadh
  • Bidh pròiseasan coimpiutaireachd iom-fhillte anns an t-siostam agad
  • Thèid an siostam agad a leasachadh gu gnìomhach.

Rachamaid ann an òrdugh... Gu h-iomlan, ma bheachdaicheas sinn air a h-uile suaicheantas Sportmaster, tha còrr air 1000 stòr againn san Ruis, san Úcráin, ann an Sìona, ann an Kazakhstan agus Belarus. Bithear a’ ceannach timcheall air 300 gach latha anns na stòran sin. Is e sin, bidh a h-uile dàrna sgrùdadh 000-3 a’ dol a-steach don t-siostam againn. Gu nàdarra, tha an siostam dìlseachd againn làn luchd. Agus leis gu bheil e air a chleachdadh gu gnìomhach, feumaidh sinn na h-ìrean càileachd as àirde a thoirt seachad, oir tha mearachd sam bith anns a ’bhathar-bog a’ ciallachadh call mòr airgid, cliù agus eile.

Aig an aon àm, tha Sportmaster a’ ruith còrr air ceud sanasachd eadar-dhealaichte. Tha measgachadh de sanasachd ann: tha sanasachd toraidh ann, tha an fheadhainn a tha coisrigte do latha na seachdain, tha an fheadhainn ceangailte ri stòr sònraichte, tha sanasachd ann airson meud a ’chuidhteas, tha an àireamh de bhathar ann. San fharsaingeachd, chan eil dona. Tha bònasan agus còdan brosnachaidh aig teachdaichean a thathas a’ cleachdadh nuair a bhios iad a’ ceannach. Tha seo uile a’ leantainn gu bheil a bhith ag obrachadh a-mach òrdugh sam bith na obair glè neo-bheag.

Tha an algairim a tha a 'cur an gnìomh giollachd òrdugh fìor uamhasach agus iom-fhillte. Agus tha atharrachaidhean sam bith air an algairim seo gu math cunnartach. Bha e coltach gum faodadh na h-atharrachaidhean as lugha a rèir coltais leantainn gu buaidhean nach robh dùil. Ach is e pròiseasan coimpiutaireachd dìreach cho iom-fhillte, gu sònraichte an fheadhainn a tha a’ cur an gnìomh gnìomh èiginneach, a tha nan tagraichean as fheàrr airson fèin-ghluasad. Bheir e ùine mhòr a bhith a’ sgrùdadh dhusanan de chùisean coltach ris le làimh. Agus leis gu bheil an t-àite inntrigidh don phròiseas gun atharrachadh, às deidh dhut a mhìneachadh aon uair, faodaidh tu deuchainnean fèin-ghluasadach a chruthachadh gu sgiobalta agus a bhith misneachail gun obraich an gnìomh.

Leis gu bheil an siostam againn air a chleachdadh gu gnìomhach, bidh an gnìomhachas ag iarraidh rudeigin ùr bhuat, a bhith beò leis na h-amannan agus a bhith ag amas air teachdaichean. Anns an t-siostam dìlseachd againn, thig fiosan a-mach gach dà mhìos. Tha seo a’ ciallachadh gum feum sinn ath-thilleadh iomlan a dhèanamh air an t-siostam gu lèir a h-uile dà mhìos. Aig an aon àm, gu nàdarra, mar ann an IT ùr-nodha sam bith, chan eil leasachadh a 'dol sa bhad bhon leasaiche gu riochdachadh. Bidh e a ’tighinn bho chuairt an leasaiche, agus an uairsin a’ dol tron ​​​​bheing deuchainn, leigeil ma sgaoil, gabhail ris, agus dìreach an uairsin thig e gu crìch ann an cinneasachadh. Aig a 'char as lugha, air na cuairtean deuchainn agus fuasglaidh, feumaidh sinn ath-thilleadh iomlan a dhèanamh air an t-siostam gu lèir.

Tha na togalaichean a chaidh a mhìneachadh àbhaisteach airson cha mhòr siostam dìlseachd sam bith. Bruidhnidh sinn mu fheartan a’ phròiseict againn.

Gu teicneòlach, tha 90% de loidsig ar siostam dìlseachd stèidhichte air frithealaiche agus air a bhuileachadh air Oracle. Tha cleachdaiche fosgailte ann an Delphi, a bhios a 'coileanadh obair rianadair àite-obrach fèin-ghluasadach. Tha seirbheisean lìn fosgailte ann airson tagraidhean bhon taobh a-muigh (mar eisimpleir làrach-lìn). Mar sin, tha e gu math loidsigeach ma chleachdas sinn siostam deuchainn fèin-ghluasadach, gun dèan sinn e air Oracle.

Tha an siostam dìlseachd ann an Sportmaster air a bhith ann airson còrr air 7 bliadhna agus chaidh a chruthachadh le luchd-leasachaidh singilte... B’ e 7-3 neach an àireamh chuibheasach de luchd-leasachaidh air a’ phròiseact againn anns na bliadhnaichean 4 seo. Ach thar na bliadhna a dh’ fhalbh, tha an sgioba againn air fàs gu mòr, agus a-nis tha 10 neach ag obair air a’ phròiseact. Is e sin, thig daoine chun phròiseact nach eil eòlach air gnìomhan àbhaisteach, pròiseasan agus ailtireachd. Agus tha cunnart nas motha ann gun caill sinn mearachdan.

Tha am pròiseact air a chomharrachadh le dìth luchd-dearbhaidh sònraichte mar aonadan luchd-obrach. Tha deuchainn ann, gu dearbh, ach bidh luchd-anailis a’ dèanamh deuchainn, a bharrachd air na prìomh dhleastanasan eile aca: conaltradh le luchd-ceannach gnìomhachais, luchd-cleachdaidh, leasachadh riatanasan siostam, msaa. msaa... A dh’ aindeoin gu bheil deuchainnean air an dèanamh de chàileachd fìor àrd (tha seo gu sònraichte iomchaidh airson iomradh a thoirt, leis gum faodadh cuid de luchd-anailis sùil na h-aithisge seo a ghlacadh), cha deach èifeachdas speisealachadh agus fòcas air aon rud a chuir dheth. .

A 'beachdachadh air a h-uile rud gu h-àrd, gus càileachd an toraidh a tha air a lìbhrigeadh a leasachadh agus an ùine leasachaidh a lùghdachadh, tha coltas gu math reusanta air a' bheachd a bhith a 'dèanamh deuchainn fèin-ghluasadach air pròiseact. Agus aig diofar ìrean de bhith ann an siostam dìlseachd, rinn luchd-leasachaidh fa leth oidhirpean gus an còd aca a chòmhdach le deuchainnean aonaid. Uile gu lèir b’ e pròiseas caran neo-cheangailte a bh’ ann, leis a h-uile duine a’ cleachdadh an ailtireachd agus na dòighean aca fhèin. Bha na toraidhean deireannach cumanta airson deuchainnean aonad: chaidh deuchainnean a leasachadh, a chleachdadh airson ùine, air an stòradh ann an stòradh faidhle dreach, ach aig àm air choreigin stad iad a 'ruith agus chaidh an dìochuimhneachadh. An toiseach, bha seo air sgàth 's gu robh na deuchainnean ceangailte nas motha ri neach-cluiche sònraichte, agus chan ann ris a' phròiseact.

thig utPLSQL gu teasairginn

Deuchainnean aonad ann an DBMS - mar a nì sinn e ann an Sportmaster, pàirt a h-aon

A bheil fios agad càil mu Stephen Feuerstein?

Is e duine snasail a tha seo a chuir seachad pàirt fhada de a chùrsa-beatha ag obair le Oracle agus PL/SQL, agus a tha air àireamh mhòr de dh’ obraichean a sgrìobhadh air a’ chuspair seo. Canar aon de na leabhraichean ainmeil aige: “Oracle PL/SQL. Airson proifeiseantaich. ” B’ e Stephen a leasaich am fuasgladh utPLSQL, no, mar a tha e, frèam Deuchainn Aonad airson Oracle PL/SQL. Chaidh am fuasgladh utPLSQL a chruthachadh ann an 2016, ach thathas fhathast ag obair air agus tha dreachan ùra gan leigeil ma sgaoil. Aig àm an aithris, tha an dreach as ùire a’ dol air ais gu 24 Màrt 2019.
Dè a th’ ann. Is e pròiseact stòr fosgailte air leth a tha seo. Tha cuideam no dhà megabytes ann, a’ toirt a-steach eisimpleirean agus sgrìobhainnean. Gu corporra, tha e na sgeama air leth ann an stòr-dàta ORACLE le seata de phasganan agus chlàran airson deuchainn aonad a chuir air dòigh. Bidh an stàladh a 'toirt beagan dhiog. Is e feart sònraichte de utPLSQL cho furasta a chleachdadh.
Gu cruinneil, tha utPLSQL na dhòigh air deuchainnean aonaid a ruith, far a bheilear a’ tuigsinn deuchainn aonad mar mhodhan àbhaisteach baidse Oracle, agus bidh a’ bhuidheann a’ leantainn riaghailtean sònraichte. A bharrachd air cur air bhog, bidh utPLSQL a’ stòradh log de na ruith deuchainn agad gu lèir, agus tha siostam aithris a-staigh aige cuideachd.

Bheir sinn sùil air eisimpleir de cò ris a tha còd deuchainn an aonaid coltach, air a chuir an gnìomh a’ cleachdadh an dòigh seo.

Deuchainnean aonad ann an DBMS - mar a nì sinn e ann an Sportmaster, pàirt a h-aon

Mar sin, tha an sgrion a’ sealltainn a’ chòd airson sònrachadh pacaid àbhaisteach le deuchainnean aonaid. Dè na riatanasan èigneachail? Feumaidh "utp_" ro-leasachan a' phacaid. Feumaidh an aon ro-leasachan a bhith aig a h-uile modh-obrach le deuchainnean. Feumaidh dà dhòigh-obrach àbhaisteach a bhith sa phacaid: “utp_setup” agus “utp_teardown”. Canar a’ chiad mhodh-obrach le bhith ag ath-thòiseachadh gach deuchainn aonad, an dàrna fear - às deidh a chuir air bhog.

Bidh “utp_setup”, mar riaghailt, ag ullachadh ar siostam airson deuchainn aonad a ruith, mar eisimpleir, a’ cruthachadh dàta deuchainn. “utp_teardown” - air an làimh eile, bidh a h-uile càil a ’tilleadh gu na roghainnean tùsail agus ag ath-shuidheachadh na toraidhean tòiseachaidh.

Seo eisimpleir den deuchainn aonad as sìmplidh a nì sgrùdadh air gnàthachadh àireamh fòn teachdaiche a-steach don fhoirm àbhaisteach airson ar siostam dìlseachd. Chan eil inbhean èigneachail ann a thaobh mar a sgrìobhas tu modhan-obrach le deuchainnean aonaid. Mar riaghailt, thèid gairm a dhèanamh gu modh an t-siostam fo dheuchainn, agus tha an toradh air a thilleadh leis an dòigh seo air a choimeas ris an fhear iomraidh. Tha e cudromach gun tachair coimeas eadar an toradh iomraidh agus an toradh a gheibhear tro dhòighean àbhaisteach utPLSQL.

Faodaidh àireamh de sgrùdaidhean a bhith aig deuchainn aonad. Mar a chithear bhon eisimpleir, bidh sinn a’ dèanamh ceithir fiosan an dèidh a chèile chun an dòigh deuchainneach gus an àireamh fòn a dhèanamh àbhaisteach agus an toradh a mheasadh às deidh gach gairm. Nuair a bhios tu a 'leasachadh deuchainn aonad, feumaidh tu aire a thoirt gu bheil sgrùdaidhean ann nach eil a' toirt buaidh air an t-siostam ann an dòigh sam bith, agus an dèidh cuid feumaidh tu a dhol air ais gu staid tùsail an t-siostaim.
Mar eisimpleir, anns an deuchainn aonad a tha air a thaisbeanadh bidh sinn dìreach a’ cruth an àireamh fòn cuir a-steach, nach toir buaidh air an t-siostam dìlseachd ann an dòigh sam bith.

Agus ma sgrìobhas sinn deuchainnean aonad a’ cleachdadh an dòigh air teachdaiche ùr a chruthachadh, an uairsin às deidh gach deuchainn thèid teachdaiche ùr a chruthachadh san t-siostam, a bheir buaidh air foillseachadh na deuchainn às deidh sin.

Deuchainnean aonad ann an DBMS - mar a nì sinn e ann an Sportmaster, pàirt a h-aon

Seo mar a tha deuchainnean aonad air an ruith. Tha dà roghainn cur air bhog comasach: ruith a h-uile deuchainn aonad bho phasgan sònraichte no ruith deuchainn aonad sònraichte ann am pasgan sònraichte.

Deuchainnean aonad ann an DBMS - mar a nì sinn e ann an Sportmaster, pàirt a h-aon

Seo mar a tha eisimpleir de shiostam aithris a-staigh coltach. Stèidhichte air toraidhean deuchainn an aonaid, bidh utPLSQL a’ togail aithisg bheag. An seo chì sinn an toradh airson gach sgrùdadh sònraichte agus toradh iomlan deuchainn an aonaid.

6 riaghailtean airson autotests

Mus tòisich sinn air siostam ùr a chruthachadh airson deuchainn fèin-ghluasadach air an t-siostam dìlseachd, còmhla ris an luchd-stiùiridh, cho-dhùin sinn na prionnsapalan ris am bu chòir ar deuchainnean fèin-ghluasadach san àm ri teachd cumail ris.

Deuchainnean aonad ann an DBMS - mar a nì sinn e ann an Sportmaster, pàirt a h-aon

  1. Feumaidh autotests a bhith èifeachdach agus feumaidh iad a bhith feumail. Tha luchd-leasachaidh mìorbhaileach againn, a dh'fheumas iomradh a thoirt orra gu cinnteach, oir is dòcha gum faic cuid dhiubh an aithisg seo, agus bidh iad a 'sgrìobhadh còd mìorbhaileach. Ach chan eil eadhon an còd mìorbhaileach aca foirfe agus tha, tha, agus bidh mearachdan ann fhathast. Tha feum air fèin-dheuchainnean gus na mearachdan sin a lorg. Mura h-eil seo fìor, an dàrna cuid tha sinn a 'sgrìobhadh droch autotests, no tha sinn air tighinn gu àite marbh nach eil, ann am prionnsabal, ga leasachadh. Anns an dà chùis, tha sinn a 'dèanamh rudeigin ceàrr, agus chan eil ar dòigh-obrach dìreach a' dèanamh ciall.
  2. Bu chòir autotests a chleachdadh. Chan eil e ciallach tòrr ùine is oidhirp a chaitheamh air toradh bathar-bog a sgrìobhadh, a chuir ann an stòr agus a dhìochuimhneachadh. Bu chòir deuchainnean a bhith air an ruith, agus a ruith cho cunbhalach 'sa ghabhas.
  3. Bu chòir autotests obrachadh gu seasmhach. Ge bith dè an t-àm den latha, an ionad cur air bhog agus suidheachaidhean siostam eile, bu chòir ruith deuchainn leantainn chun an aon toradh. Mar riaghailt, tha seo air a dhèanamh cinnteach leis gu bheil autotests ag obair le dàta deuchainn sònraichte le suidheachaidhean siostam stèidhichte.
  4. Bu chòir dha fèin-dheuchainnean obrachadh aig astar a tha iomchaidh airson do phròiseact. Tha an ùine seo air a dhearbhadh leotha fhèin airson gach siostam. Faodaidh cuid de dhaoine pàigheadh ​​​​airson a bhith ag obair fad an latha, agus cuid eile ga fhaighinn deatamach a dhèanamh ann an diogan. Innsidh mi beagan nas fhaide air adhart dè na h-ìrean astair a choilean sinn sa phròiseact againn.
  5. Bu chòir leasachadh autotest a bhith sùbailte. Chan eil e ciallach diùltadh gnìomh sam bith a dhearbhadh dìreach leis nach do rinn sinn e roimhe no airson adhbhar air choireigin eile. Chan eil utPLSQL a’ cur bacadh sam bith air leasachadh, agus tha Oracle, ann am prionnsapal, a’ leigeil leat grunn rudan a chuir an gnìomh. Tha fuasgladh aig a’ mhòr-chuid de dhuilgheadasan, chan eil ann ach beagan ùine agus oidhirp.
  6. Deployability. Tha grunn sheasamh againn far am feum sinn deuchainnean a ruith. Aig gach ionad, faodar dump dàta ùrachadh aig àm sam bith. Feumar pròiseact a dhèanamh le deuchainnean fèin-ghluasadach ann an dòigh gus an urrainn dhut an stàladh slàn no pàirt a dhèanamh gun phian.

Agus anns an dàrna post ann an latha no dhà innsidh mi dhut dè a rinn sinn agus dè na toraidhean a choilean sinn.

Source: www.habr.com

Cuir beachd ann