Momwe tidathandizira SonarQube ndikuzindikira kuthekera kwake kwakukulu

Momwe tidathandizira SonarQube ndikuzindikira kuthekera kwake kwakukulu

Tikufuna kugawana zomwe takumana nazo pakukhazikitsa nsanja ya SonarQube yowunikira mosalekeza komanso kuyeza mtundu wa ma code munjira zomwe zilipo kale za DPO system (kuwonjezera ku Alameda depository and clearing accounting system) ya National Settlement Depository.

National Settlement Depository (Moscow Exchange gulu la makampani) ndi imodzi mwamakampani ofunikira pazachuma, kusunga ndi kuwerengera zachitetezo chaotulutsa aku Russia ndi akunja omwe ndi ofunika kuposa ma ruble 50 thililiyoni. Kuchulukirachulukira kwa magwiridwe antchito omwe amachitidwa ndi dongosololi, komanso kukulitsa kosalekeza kwa magwiridwe antchito, kumafunikira kusunga ma code apamwamba a machitidwe. Chida chimodzi chokwaniritsa cholinga ichi ndi SonarQube static analyzer. Munkhaniyi tifotokoza zomwe zidachitika bwino pakukhazikitsa SonarQube static analyzer munjira zomwe zidalipo kale mu dipatimenti yathu.

Mwachidule za dipatimenti

Luso lathu limaphatikizapo magawo otsatirawa: malipiro kwa makasitomala a NSD, kasamalidwe ka zikalata pakompyuta (EDF), kukonza mauthenga osungiramo malonda (kulembetsa kubwereketsa), njira zolumikizirana zamagetsi pakati pa makasitomala ndi NSD, ndi zina zambiri. Nthawi zambiri, pali ntchito yambiri yoti ichitike paukadaulo wa ntchito zogwirira ntchito. Timagwira ntchito potengera zopempha. Zofunsira kuchokera kwa oyang'anira ntchito zimakonzedwa ndi akatswiri: amasonkhanitsa zomwe kasitomala amafuna ndikutipatsa masomphenya awo momwe ziyenera kukhalira mu pulogalamuyi. Chotsatira ndi chiwembu chokhazikika: kukula kwa ma code - kuyesa - kuyesa - kutumiza kachidindo kudera lopanga kwa kasitomala mwachindunji.

Chifukwa SonarQube?

Ichi ndi chokumana nacho choyamba cha dipatimenti yathu pakukhazikitsa nsanja yowongolera ma code - m'mbuyomu tidachita izi pamanja, ndikungowunika ma code okha. Koma kuchuluka kwa ntchito kumafuna kuti izi zizichitika zokha. Kuonjezera apo, gululi limaphatikizapo antchito osadziwa zambiri omwe sadziwa bwino malamulo a chitukuko cha mkati ndipo amakonda kulakwitsa zambiri. Kuti muwongolere mtundu wa kachidindo, zidasankhidwa kukhazikitsa static analyzer. Popeza SonarQube idagwiritsidwa ntchito kale m'makina ena a NSD, sizinatengere nthawi kuti asankhe. M'mbuyomu, ogwira nawo ntchito m'madipatimenti ena adagwiritsa ntchito kusanthula ma code of microservices mu Alameda system (NSD's own depository and clearing accounting system), mu CFT (kachitidwe kachidziwitso kasungidwe ka accounting, ma balance sheet, kukonzekera zovomerezeka ndi malipoti amkati), mwa zina. machitidwe ena . Pazoyeserera, tidaganiza zoyamba ndi mtundu waulere wa SonarQube. Choncho tiyeni tipitirire ku nkhani yathu.

Kukhazikitsa ndondomeko

Ife tiri:

  • kusonkhana kwadongosolo ku TeamCity;
  • njira yoyika kachidindo kudzera pa MergeRequest kuchokera kunthambi yopita kunthambi yayikulu ku GitLab yakonzedwa (njira yachitukuko molingana ndi GitHub Flow);
  • SonarQube, idakonzedwa kuti iwunike kachidindo ka DPO pa ndandanda.

Cholinga chathu: gwiritsani ntchito kusanthula kwa ma code mu CI/CD njira za DPO.

Muyenera sintha: njira yodziwonera yokha code ndi static analyzer ndi MergeRequest iliyonse kunthambi yayikulu.

Iwo. Chithunzi choyang'ana ndi chotsatirachi: Wokonzayo akangotumiza kusintha ku nthambi ya mawonekedwe, fufuzani kuti muwone zolakwika zatsopano mu code. Ngati palibe zolakwika, ndiye kuti zosinthazo zimaloledwa kuvomerezedwa, apo ayi zolakwikazo ziyenera kukonzedwa. Kale pa siteji yoyamba tinatha kuzindikira chiwerengero cha zolakwika mu code. Dongosololi lili ndi zosintha zosinthika kwambiri: zitha kukhazikitsidwa m'njira yoti zigwire ntchito zapadera za opanga, padongosolo lililonse ndi kalembedwe ka pulogalamu.

Kukhazikitsa QualityGate ku SonarQube

Kusanthula kwa QualityGate ndichinthu chomwe timawerenga mozama pa intaneti. Poyamba, tinagwiritsa ntchito njira yosiyana, yovuta kwambiri ndipo, mwa njira zina, osati yolondola. Choyamba, tidayendetsa jambulani kawiri kudzera pa SonarQube: tidasanthula nthambi ndi nthambi komwe timaphatikizira nthambi, ndikufanizira kuchuluka kwa zolakwika. Njirayi sinali yokhazikika ndipo nthawi zonse sinatulutse zotsatira zolondola. Ndiyeno tinapeza kuti m'malo mothamanga SonarQube kawiri, tikhoza kuika malire pa chiwerengero cha zolakwika zomwe zinapangidwa (QualityGate) ndikusanthula nthambi yokhayo yomwe mumayika ndikuyerekezera.

Momwe tidathandizira SonarQube ndikuzindikira kuthekera kwake kwakukulu

Pakadali pano tikugwiritsabe ntchito kuwunika kwa code kwakanthawi. Ndizofunikira kudziwa kuti SonarQube sigwirizana ndi zilankhulo zina zamapulogalamu, kuphatikiza Delphi. Pakadali pano, timasanthula kachidindo ka PLSql kokha pamakina athu.

Zimagwira ntchito motere:

  • Timasanthula kachidindo ka PL/SQL pa projekiti yathu.
  • SonarQube yakhazikitsa QualityGate kuti kuchuluka kwa zolakwika zisachuluke ndikudzipereka.
  • Chiwerengero cha zolakwika pakuyambitsa koyamba chinali 229. Ngati pali zolakwika zambiri panthawi ya mgwirizano, ndiye kuti kuphatikiza sikuloledwa.
  • Kupitilira apo, ngati zolakwika zikonzedwa, zitha kukonzanso QualityGate.
  • Mukhozanso kuwonjezera mfundo zatsopano zowunikira, mwachitsanzo, kuphimba ma code ndi mayesero, ndi zina zotero.

Chigawo cha ntchito:

Momwe tidathandizira SonarQube ndikuzindikira kuthekera kwake kwakukulu

Ndemanga za script zikuwonetsa kuti kuchuluka kwa zolakwika munthambi yowonekera sikunachuluke. Ndiye zonse zili bwino.

Momwe tidathandizira SonarQube ndikuzindikira kuthekera kwake kwakukulu

Batani la Merge likupezeka.

Momwe tidathandizira SonarQube ndikuzindikira kuthekera kwake kwakukulu

Mu ndemanga za script, mukhoza kuona kuti chiwerengero cha zolakwika mu gawo la nthambi zakhala zovomerezeka. Ndiye zonse ndi ZABWINO.

Momwe tidathandizira SonarQube ndikuzindikira kuthekera kwake kwakukulu

Batani la Merge ndi lofiira. Pakadali pano, palibe choletsa kutsitsa zosintha kutengera ma code olakwika, koma izi zimachitika mwakufuna kwa wopangayo. M'tsogolomu, mutha kuletsa kuchita izi kuti zisawonjezedwe kunthambi yayikulu.

Momwe tidathandizira SonarQube ndikuzindikira kuthekera kwake kwakukulu

Ntchito yodziyimira pawokha pazolakwa

Kenako, muyenera kuyang'ana zolakwika zonse zomwe zidadziwika ndi makinawo, chifukwa SonarQube imasanthula molingana ndi miyezo yake yolimba. Zomwe amaona kuti ndi zolakwika sizingakhale m'gulu lathu. Chifukwa chake, muyenera kuyang'ana ndikuwona ngati izi ndi zolakwika, kapena ngati palibe chifukwa chosinthira momwe tilili. Mwanjira iyi timachepetsa kuchuluka kwa zolakwika. Pakapita nthawi, dongosololi lidzaphunzira kumvetsetsa ma nuances awa.

Tabwera ku chiyani

Cholinga chathu chinali kumvetsetsa ngati kungakhale koyenera kwa ife kusamutsa kuwunika kwa ma code ku automation. Ndipo zotsatira zake zinali zogwirizana ndi zomwe ankayembekezera. SonarQube imatilola kugwira ntchito ndi zilankhulo zomwe timafunikira, kusanthula moyenera, komanso kuthekera kophunzira kuchokera ku maupangiri opanga. Ponseponse, ndife okondwa ndi zomwe takumana nazo koyamba pogwiritsa ntchito SonarQube ndikukonzekera kupititsa patsogolo mbali iyi. Tikuyembekeza kuti m'tsogolomu tidzatha kusunga nthawi yambiri ndi khama pa kubwereza kachidindo ndikupangitsa kuti zikhale bwino pochotsa chinthu chaumunthu. Mwinamwake muzochitikazo tidzapeza zofooka za nsanja kapena, mosiyana, tidzakhala otsimikiza kuti ichi ndi chinthu chozizira ndi kuthekera kwakukulu.

M'nkhaniyi takambirana za kudziwa kwathu ndi SonarQube static analyzer. Ngati muli ndi mafunso, chonde lembani mu ndemanga. Ngati muli ndi chidwi ndi mutuwu, m'buku latsopano tidzafotokoza mwatsatanetsatane momwe tingakhazikitsire zonse molondola ndikulemba kachidindo kuti tichite cheke choterocho.

Wolemba: atanya

Source: www.habr.com

Kuwonjezera ndemanga