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

A' chiad phàirt - an seo.

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

Smaoinich air an t-suidheachadh. Tha e mar dhleastanas ort comas-gnìomh ùr a leasachadh. Tha leasachaidhean agad bhon fheadhainn a thàinig roimhe. Ma tha sinn a’ gabhail ris nach eil dleastanasan moralta sam bith ort, dè a dhèanadh tu?

Mar as trice, thèid na seann leasachaidhean a dhìochuimhneachadh agus tòisichidh a h-uile càil a-rithist. Chan eil duine dèidheil air cladhach a-steach do chòd cuideigin eile, ach ma tha tìde agad, carson nach tòisich thu air an siostam agad fhèin a chruthachadh? Is e dòigh-obrach àbhaisteach a tha seo, agus tha e gu ìre mhòr ceart. Ach anns a’ phròiseact againn rinn sinn ceàrr e. Stèidhich sinn an siostam deuchainn fèin-ghluasadach san àm ri teachd air na leasachaidhean ann an deuchainnean aonad air utPLSQL bho ar sinnsirean, agus an uairsin chaidh sinn gu obair ann an grunn stiùiridhean co-shìnte.

  1. Luchdaich a-nuas deuchainnean airson seann aonad. Tha ath-bheothachadh a’ ciallachadh a bhith ag atharrachadh dheuchainnean a rèir staid an t-siostam dìlseachd a th’ ann mar-thà agus ag atharrachadh dheuchainnean a rèir inbhean utPLSQL.
  2. Fuasgladh duilgheadas le tuigse air dè dìreach, dè na dòighean agus na pròiseasan a tha còmhdaichte le autotests. Feumaidh tu an dàrna cuid am fiosrachadh seo a chumail nad cheann, no co-dhùnaidhean a dhèanamh stèidhichte gu dìreach air a’ chòd autotest. Mar sin, chuir sinn romhainn catalog a chruthachadh. Shònraich sinn còd cuimhneachail sònraichte do gach autotest, chruthaich sinn tuairisgeul agus na roghainnean clàraichte (mar eisimpleir, fo na cumhaichean a bu chòir a chuir air bhog, no dè a bu chòir tachairt ma dh’ fhailicheas an deuchainn). Gu bunaiteach, chuir sinn a-steach na meata-dàta mu na autotests agus chuir sinn am meata-dàta sin ann an clàran sgeama utPLSQL àbhaisteach.
  3. A’ mìneachadh an ro-innleachd leudachaidh, i.e. taghadh de ghnìomhachd a tha fo ùmhlachd dearbhadh le deuchainnean fèin-ghluasadach. Cho-dhùin sinn aire a thoirt do thrì rudan: leasachaidhean siostam ùr, tachartasan cinneasachaidh, agus prìomh phròiseasan siostam. Mar sin, tha sinn a’ leasachadh ann an co-shìnte ris an fhoillseachadh, a’ dèanamh cinnteach à càileachd nas àirde, aig an aon àm a’ leudachadh farsaingeachd ath-thilleadh agus a’ dèanamh cinnteach à earbsachd an t-siostaim ann an àiteachan èiginneach. B’ e a’ chiad bhotal den leithid am pròiseas a bhith a’ sgaoileadh lasachaidhean agus bònasan air seic.
  4. Gu nàdarra, thòisich sinn a’ leasachadh autotests ùra. B’ e aon de na ciad ghnìomhan fuasglaidh measadh a dhèanamh air coileanadh sampallan ro-mhìnichte den t-siostam dìlseachd. Tha bloc de cheistean SQL stèidhichte gu cruaidh aig a’ phròiseact againn a bhios a’ taghadh teachdaichean stèidhichte air suidheachaidhean. Mar eisimpleir, faigh liosta den luchd-ceannach air fad aig an robh an ceannach mu dheireadh ann am baile-mòr sònraichte, no liosta de luchd-ceannach aig a bheil an ìre ceannach cuibheasach os cionn luach sònraichte. Às deidh deuchainnean fèin-sgrìobhaidh a sgrìobhadh, rinn sinn sgrùdadh air sampallan ro-mhìnichte, chlàraich sinn crìochan coileanaidh slat-tomhais, agus a bharrachd air sin bha deuchainn luchdan againn.
  5. Bu chòir obrachadh le autotests a bhith goireasach. Is e an dà ghnìomh as cumanta a bhith a’ ruith autotests agus a’ cruthachadh dàta deuchainn. Seo mar a nochd dà mhodal taiceil san t-siostam againn: modal cur air bhog agus modal gineadh dàta.

    Tha an lannsair air a riochdachadh mar aon mhodh-obrach uile-choitcheann le aon paramadair cuir a-steach teacsa. Mar pharamadair, faodaidh tu a dhol seachad air a’ chòd cuimhneachail fèin-ghluasadach, ainm pacaid, ainm deuchainn, suidheachadh deuchainn fèin-ghluasadach, no prìomh fhacal glèidhte. Bidh am modh-obrach a’ taghadh agus a’ ruith a h-uile deuchainn fèin-ghluasadach a choinnicheas ri cumhachan.

    Tha am modal gineadh dàta air a thaisbeanadh ann an cruth pasgan anns a bheil airson gach nì den t-siostam fo dheuchainn (clàr san stòr-dàta), chaidh modh-obrach sònraichte a chruthachadh a chuireas a-steach dàta an sin. Anns a 'mhodh-obrachaidh seo, tha na luachan bunaiteach air an lìonadh cho mòr' s as urrainn, a nì cinnteach gun tèid stuthan a chruthachadh gu litireil le cliogadh meur. Agus airson a bhith furasta an cleachdadh, chaidh teamplaidean airson an dàta a chaidh a chruthachadh a chruthachadh. Mar eisimpleir, cruthaich neach-dèiligidh de dh'aois shònraichte le fòn deuchainn agus ceannach crìochnaichte.

  6. Bu chòir do dheuchainnean fèin-ghluasadach tòiseachadh agus ruith ann an àm a tha iomchaidh don t-siostam agad. Mar sin, chaidh cur air bhog oidhche làitheil a chuir air dòigh, stèidhichte air na toraidhean agus tha aithisg air na toraidhean air a chruthachadh agus air a chuir chun sgioba leasachaidh gu lèir tro phost corporra. Às deidh seann autotests ath-nuadhachadh agus feadhainn ùra a chruthachadh, b ’e an ùine obrachaidh iomlan 30 mionaid. Bha an coileanadh seo freagarrach don a h-uile duine, leis gun deach an cur air bhog taobh a-muigh uairean obrach.

    Ach bha againn ri bhith ag obair air astar na h-obrach a bharrachadh. Tha an siostam dìlseachd ann an riochdachadh air ùrachadh air an oidhche. Mar phàirt de aon de na fiosan, bha againn ri atharrachaidhean èiginneach a dhèanamh air an oidhche. Le bhith a 'feitheamh leth uair a thìde airson toraidhean fèin-dheuchainn aig trì uairean sa mhadainn cha do rinn an neach a bha an urra ris an naidheachd toilichte (fàilteachas dòigheil gu Alexey Vasyukov!), Agus an ath mhadainn chaidh mòran fhaclan coibhneil a ràdh mun t-siostam againn. Ach mar thoradh air an sin, chaidh ìre 5-mionaidean obrach a stèidheachadh.

    Gus coileanadh a luathachadh, chleachd sinn dà dhòigh: thòisich autotests a 'ruith ann an trì snàithleanan co-shìnte, gu fortanach tha seo gu math freagarrach air sgàth ailtireachd ar siostam dìlseachd. Agus thrèig sinn an dòigh-obrach far nach bi an autotest a’ cruthachadh dàta deuchainn dha fhèin, ach a’ feuchainn ri rudeigin iomchaidh a lorg san t-siostam. Às deidh na h-atharrachaidhean a dhèanamh, chaidh an ùine obrachaidh iomlan a lughdachadh gu 3-4 mionaidean.

  7. Bu chòir gum biodh e comasach pròiseact le deuchainnean fèin-ghluasadach a chuir a-steach aig diofar ionadan. Aig toiseach ar turais, bha oidhirpean ann na faidhlichean baidse againn fhèin a sgrìobhadh, ach dh’ fhàs e soilleir gu robh stàladh fèin-sgrìobhte fèin-ghluasadach na uamhas iomlan, agus thionndaidh sinn gu fuasglaidhean gnìomhachais. Leis gu bheil tòrr còd dìreach anns a 'phròiseact (an toiseach, bidh sinn a' stòradh a 'chòd autotest) agus glè bheag de dhàta (is e meata-dàta a th' anns a 'phrìomh dàta mu dheidhinn autotests), bha buileachadh a' phròiseict Liquibase gu math sìmplidh.

    Tha e na leabharlann stòr-dàta fosgailte, neo-eisimeileach airson lorg, riaghladh agus cur an gnìomh atharrachaidhean sgeamaichean stòr-dàta. Air a riaghladh tron ​​​​loidhne àithne no frèaman leithid Apache Maven. Tha prionnsabal obrachadh Liquibase gu math sìmplidh. Tha pròiseact againn air a chuir air dòigh ann an dòigh sònraichte, anns a bheil atharrachaidhean no sgriobtaichean a dh’ fheumar a chuir a-steach don t-seirbheisiche targaid, agus faidhlichean smachd a bhios a ’dearbhadh dè an t-sreath agus dè na paramadairean a bu chòir na h-atharrachaidhean sin a chuir a-steach.

    Aig ìre DBMS, tha clàr sònraichte air a chruthachadh anns am bi Liquibase a 'stòradh an log rollover. Tha hash àireamhaichte aig gach atharrachadh, a tha air a choimeas gach uair eadar am pròiseact agus an stàit anns an stòr-dàta. Taing do Liquibase, is urrainn dhuinn gu furasta atharrachaidhean air an t-siostam againn a chuir a-steach gu cuairt sam bith. Tha autotests a-nis air an cur air bhog air cuairtean deuchainn is fuasglaidh, a bharrachd air soithichean (cuairtean pearsanta luchd-leasachaidh).

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

Mar sin, bruidhnidh sinn mu thoraidhean cleachdadh ar siostam deuchainn aonad.

  1. Gu dearbh, an toiseach, tha sinn cinnteach gu bheil sinn air tòiseachadh a 'leasachadh bathar-bog nas fheàrr. Thèid autotests a chuir air bhog gach latha agus lorgar dusanan de mhearachdan a h-uile brath. A bharrachd air an sin, tha cuid de na mearachdan sin dìreach ceangailte gu neo-dhìreach ris a’ ghnìomhachd a bha sinn dha-rìribh ag iarraidh atharrachadh. Tha teagamhan mòra ann gun deach na mearachdan sin a lorg le deuchainn làimhe.
  2. Tha misneachd aig an sgioba a-nis gu bheil gnìomhan sònraichte ag obair gu ceart... An toiseach, tha seo co-cheangailte ris na pròiseasan riatanach againn. Mar eisimpleir, thairis air na sia mìosan a dh’ fhalbh cha robh duilgheadas sam bith againn le bhith a’ sgaoileadh lasachaidhean agus bònasan air cuidhteasan, a dh’ aindeoin na h-atharrachaidhean fuasglaidh, ged a thachair mearachdan ann an amannan roimhe seo le beagan tricead.
  3. Chaidh againn air an àireamh de thursan deuchainn a lughdachadh. Leis gu bheil fèin-dheuchainnean air an sgrìobhadh airson comas-gnìomh ùr, gheibh sgrùdairean agus luchd-dearbhaidh pàirt-ùine còd de chàileachd nas àirde, air sgàth tha e air a sgrùdadh mu thràth.
  4. Tha cuid de na leasachaidhean ann an deuchainn fèin-ghluasadach air an cleachdadh le luchd-leasachaidh. Mar eisimpleir, thèid dàta deuchainn air soithichean a chruthachadh a’ cleachdadh modal gineadh stuthan.
  5. Tha e cudromach gu bheil sinn air “gabhail” ris an t-siostam deuchainn fèin-ghluasadach le luchd-leasachaidh. Tha tuigse ann gu bheil seo cudromach agus feumail. Ach bhon eòlas agam fhìn faodaidh mi a ràdh gu bheil seo fada bhon chùis. Feumar autotests a sgrìobhadh, feumaidh iad a bhith air an taic agus air an leasachadh, feumar na toraidhean a sgrùdadh, agus gu tric chan fhiach na cosgaisean ùine sin. Tha e tòrr nas fhasa a dhol gu cinneasachadh agus dèiligeadh ri duilgheadasan an sin. An seo, bidh luchd-leasachaidh ag ullachadh agus ag iarraidh oirnn an comas-gnìomh a chòmhdach le fèin-dheuchainnean.

Dè tha ri thighinn

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

Bruidhnidh sinn mu na planaichean leasachaidh airson a’ phròiseact deuchainn fèin-ghluasadach.

Gu dearbh, fhad ‘s a tha siostam dìlseachd Sportmaster beò agus a’ leantainn air adhart a ’leasachadh, tha e comasach cuideachd autotests a leasachadh cha mhòr gun chrìoch. Mar sin, is e am prìomh stiùireadh leasachaidh leudachadh air an raon còmhdaich.

Mar a bhios an àireamh de dheuchainnean fèin-ghluasadach a’ dol am meud, meudaichidh an ùine obrachaidh iomlan aca gu cunbhalach, agus feumaidh sinn a-rithist tilleadh gu cùis coileanaidh. Nas coltaiche, is e am fuasgladh an àireamh de snàithleanan co-shìnte a mheudachadh.

Ach tha iad sin nan dòighean leasachaidh follaiseach. Ma bhruidhneas sinn mu rudeigin nach eil cho beag, bidh sinn a’ comharrachadh na leanas:

  1. An-dràsta, tha riaghladh fèin-ghluasadach air a dhèanamh aig ìre DBMS, i.e. tha eòlas air PL/SQL riatanach airson obair shoirbheachail. Ma tha feum air, riaghladh siostam (mar eisimpleir, cur air bhog no cruthachadh meata-dàta), faodaidh tu seòrsa de phannal rianachd a chruthachadh a’ cleachdadh Jenkins no rudeigin coltach ris.
  2. Tha a h-uile duine dèidheil air comharran cainneachdail agus càileachdail. Airson deuchainn fèin-ghluasadach, is e comharra coitcheann mar sin Còmhdach Còd no meatrach còmhdach còd. A 'cleachdadh a' chomharra seo, is urrainn dhuinn dearbhadh dè an àireamh sa cheud de chòd an t-siostam againn fo dheuchainn a tha còmhdaichte le autotests. A’ tòiseachadh bho dhreach 12.2, tha Oracle a’ toirt comas air a’ mheatrach seo obrachadh a-mach agus a’ tabhann cleachdadh na pacaid àbhaisteach DBMS_PLSQL_CODE_COVERAGE.

    Tha an siostam fèin-dheuchainn againn beagan a bharrachd air bliadhna a dh'aois agus is dòcha gur e seo an t-àm airson ar còmhdach a mheasadh. Anns a’ phròiseact mu dheireadh agam (chan e pròiseact Sportmaster) is e seo a thachair. Bliadhna às deidh a bhith ag obair air fèin-dheuchainnean, chuir an luchd-stiùiridh an gnìomh measadh a dhèanamh air an àireamh sa cheud den chòd a tha sinn a’ còmhdach. Le còmhdach de chòrr air 1%, bhiodh an riaghladh toilichte. Bha sinne, an luchd-leasachaidh, an dùil ri toradh timcheall air 10%. Chuir sinn a-steach còmhdach còd, thomhais sinn e, agus fhuair sinn 20%. Airson comharrachadh, chaidh sinn airson an duais fhaighinn, ach mar a chaidh sinn ga fhaighinn agus far an deach sinn nas fhaide air adhart tha e na sgeulachd gu tur eadar-dhealaichte.

  3. Faodaidh Autotests sgrùdadh a dhèanamh air seirbheisean lìn fosgailte. Leigidh Oracle leinn seo a dhèanamh gu math, agus cha tig sinn tarsainn air grunn dhuilgheadasan tuilleadh.
  4. Agus, gu dearbh, faodar an siostam dearbhaidh fèin-ghluasadach againn a chuir an sàs ann am pròiseact eile. Tha am fuasgladh a fhuair sinn uile-choitcheann agus chan fheum sinn ach Oracle a chleachdadh. Chuala mi gu bheil ùidh aig pròiseactan Sportmaster eile ann an deuchainn fèin-ghluasadach agus is dòcha gun tèid sinn thuca.

toraidhean

Leig dhuinn geàrr-chunntas. Air pròiseact siostam dìlseachd ann an Sportmaster, chaidh againn air siostam deuchainn fèin-ghluasadach a chuir an gnìomh. Tha e stèidhichte air fuasgladh utPLSQL bho Stephen Feuerstein. Timcheall air utPLSQL tha còd autotest agus modalan fèin-sgrìobhte cuideachail: modal cur air bhog, modal gineadh dàta agus feadhainn eile. Bidh autotests air an cur air bhog gach latha agus, nas cudromaiche, bidh iad ag obair agus tha iad feumail. Tha sinn misneachail gu bheil sinn air tòiseachadh air bathar-bog de chàileachd nas àirde a leigeil ma sgaoil. Aig an aon àm, tha am fuasgladh a thig às a seo uile-choitcheann agus faodar a chuir an sàs gu saor ann am pròiseact sam bith far a bheil feum air deuchainnean fèin-ghluasadach a chuir air dòigh air an Oracle DBMS.

PS Chan eil an artaigil seo gu math sònraichte: tha tòrr teacsa ann agus cha mhòr nach eil eisimpleirean teicnigeach ann. Ma tha an cuspair inntinneach san fharsaingeachd, tha sinn deiseil airson leantainn air adhart agus a thighinn air ais le leantainn, far an innis sinn dhut dè a tha air atharrachadh thairis air na sia mìosan a dh’ fhalbh agus a bheir seachad eisimpleirean còd.

Sgrìobh beachdan ma tha puingean ann air am bu chòir cuideam a chur orra san àm ri teachd, no ceistean a dh’ fheumas foillseachadh.

Chan fhaod ach luchd-cleachdaidh clàraichte pàirt a ghabhail san sgrùdadh. Soidhnig a-steach, mas e do thoil e.

An sgrìobh sinn tuilleadh mu dheidhinn seo?

  • Tha, gu dearbh

  • Chan eil taing

Bhòt 12 neach-cleachdaidh. Cha do stad 4 neach-cleachdaidh.

Source: www.habr.com

Cuir beachd ann