Giunsa namon gipatuman ang SonarQube ug nahibal-an ang dako nga potensyal niini

Giunsa namon gipatuman ang SonarQube ug nahibal-an ang dako nga potensyal niini

Gusto namong ipaambit ang among kasinatian sa pagpatuman sa SonarQube nga plataporma para sa padayon nga pagtuki ug pagsukod sa kalidad sa code ngadto sa kasamtangan nga mga proseso sa pag-uswag sa DPO system (dugang sa Alameda depository ug clearing accounting system) sa National Settlement Depository.

Ang National Settlement Depository (Moscow Exchange nga grupo sa mga kompanya) mao ang usa sa mga nag-unang kompanya sa pinansyal nga imprastraktura, pagtipig ug pag-account alang sa mga securities sa mga Russian ug langyaw nga mga issuer nga nagkantidad og labaw sa 50 trilyon nga rubles. Ang nagkadako nga gidaghanon sa mga operasyon nga gihimo sa sistema, ingon man ang padayon nga pagpalapad sa pagpaandar, nanginahanglan pagpadayon sa taas nga kalidad nga source code sa mga sistema. Usa ka himan aron makab-ot kini nga katuyoan mao ang SonarQube static analyzer. Niini nga artikulo atong ihulagway ang malampuson nga kasinatian sa hapsay nga pagpatuman sa SonarQube static analyzer ngadto sa kasamtangan nga mga proseso sa kalamboan sa atong departamento.

Sa mubo bahin sa departamento

Ang among katakus naglakip sa mosunod nga mga module: pagbayad sa mga kliyente sa NSD, pagdumala sa electronic document (EDF), pagproseso sa mga mensahe sa trade repository (pagparehistro sa mga over-the-counter nga mga transaksyon), mga channel sa elektronik nga interaksyon tali sa mga kliyente ug NSD, ug daghan pa. Sa kinatibuk-an, adunay daghang trabaho nga buhaton sa teknikal nga bahin sa mga kalihokan sa operasyon. Nagtrabaho kami base sa mga hangyo. Ang mga aplikasyon gikan sa mga opisyal sa operasyon giproseso sa mga analista: gikolekta nila ang mga kinahanglanon sa kustomer ug gipresentar kanamo ang ilang panan-aw kung giunsa kini angay sa programa. Sunod mao ang standard scheme: code development - ​​testing - trial operation - delivery sa code ngadto sa production circuit ngadto sa direktang customer.

Nganong SonarQube?

Kini ang una nga kasinatian sa among departamento sa pagpatuman sa usa ka plataporma alang sa pagkontrol sa kalidad sa code - kaniadto gibuhat namon kini nga mano-mano, nagpahigayon lamang sa mga pagsusi sa code. Apan ang nagkadako nga gidaghanon sa trabaho nanginahanglan automation sa kini nga proseso. Dugang pa, ang grupo naglakip usab sa mga walay kasinatian nga mga empleyado nga dili hingpit nga pamilyar sa internal nga mga regulasyon sa kalamboan ug lagmit nga makahimo og dugang nga mga sayop. Aron makontrol ang kalidad sa code, nakahukom nga ipatuman ang usa ka static analyzer. Tungod kay ang SonarQube gigamit na sa pipila ka mga sistema sa NSD, wala kini magdugay sa pagpili. Kaniadto, gigamit kini sa mga kauban gikan sa ubang mga departamento sa pag-analisar sa code sa mga microservice sa Alameda system (kaugalingon nga depository ug clearing accounting system sa NSD), sa CFT (usa ka sistema sa impormasyon alang sa pagmentinar sa accounting, balance sheet, pag-andam sa mandatory ug internal nga pagtaho), sa pipila ubang mga sistema. Alang sa mga eksperimento, nakahukom kami nga magsugod sa libre nga bersyon sa SonarQube. Busa magpadayon kita sa atong kaso.

Proseso sa pagpatuman

Kita adunay:

  • awtomatik nga sistema sa asembliya sa TeamCity;
  • ang proseso sa pag-upload sa code pinaagi sa MergeRequest gikan sa feature branch ngadto sa master branch sa GitLab na-configure na (proseso sa pagpalambo sumala sa GitHub Flow);
  • SonarQube, gi-configure aron analisahon ang code alang sa sistema sa DPO sa usa ka iskedyul.

Atong tumong: ipatuman ang awtomatikong pagtuki sa code sa mga proseso sa CI/CD sa DPO.

Kinahanglang i-configure: ang proseso sa awtomatikong pagsusi sa code gamit ang static analyzer sa matag MergeRequest sa main branch.

Mga. Ang target nga hulagway mao ang mosunod: sa diha nga ang developer mag-upload sa mga kausaban ngadto sa feature branch, ang usa ka awtomatik nga pagsusi alang sa bag-ong mga sayop sa code gilunsad. Kung wala’y mga sayup, nan ang mga pagbag-o gitugotan nga madawat, kung dili ang mga sayup kinahanglan nga tul-iron. Naa sa inisyal nga yugto nakahimo kami sa pag-ila sa usa ka piho nga gidaghanon sa mga sayup sa code. Ang sistema adunay flexible kaayo nga mga setting: kini mahimong ma-configure sa paagi nga kini molihok alang sa piho nga mga buluhaton sa mga developer, alang sa matag sistema ug estilo sa programming.

Pag-set up sa QualityGate sa SonarQube

Ang pagtuki sa QualityGate usa ka butang nga atong mabasa sa kahiladman sa Internet. Sa sinugdan, migamit kami ug lahi nga paagi, mas komplikado ug, sa pipila ka paagi, dili hingpit nga husto. Una, gipadagan namo ang scan kaduha pinaagi sa SonarQube: among gi-scan ang feature branch ug ang branch diin among i-merge ang feature branch, ug dayon itandi ang gidaghanon sa mga sayop. Kini nga pamaagi dili lig-on ug dili kanunay makahatag sa husto nga resulta. Ug unya nahibal-an namon nga imbes nga magdagan ang SonarQube kaduha, mahimo namon nga magtakda og limitasyon sa gidaghanon sa mga sayup nga nahimo (QualityGate) ug analisahon ra ang sanga nga imong gi-upload ug gitandi.

Giunsa namon gipatuman ang SonarQube ug nahibal-an ang dako nga potensyal niini

Sa pagkakaron naggamit gihapon kami og usa ka primitive code review. Angay nga matikdan nga ang SonarQube dili compatible sa pipila ka mga programming language, lakip ang Delphi. Sa pagkakaron, among analisa lang ang PLSql code para sa among system.

Kini molihok sama niini:

  • PL/SQL code lang ang among analisa para sa among proyekto.
  • Ang SonarQube adunay QualityGate nga gi-configure aron ang gidaghanon sa mga sayup dili madugangan sa usa ka pasalig.
  • Ang gidaghanon sa mga kasaypanan sa unang paglansad mao ang 229. Kung adunay daghang mga sayup sa panahon sa usa ka commit, nan ang paghiusa dili gitugotan.
  • Dugang pa, kung ang mga sayup gitul-id, posible nga i-reconfigure ang QualityGate.
  • Mahimo ka usab makadugang bag-ong mga punto alang sa pagtuki, pananglitan, pagsakop sa code nga adunay mga pagsulay, ug uban pa.

Skema sa trabaho:

Giunsa namon gipatuman ang SonarQube ug nahibal-an ang dako nga potensyal niini

Ang mga komento sa script nagpakita nga ang gidaghanon sa mga sayup sa bahin nga sanga wala modaghan. So okay ra ang tanan.

Giunsa namon gipatuman ang SonarQube ug nahibal-an ang dako nga potensyal niini

Mahimong magamit ang buton sa Paghiusa.

Giunsa namon gipatuman ang SonarQube ug nahibal-an ang dako nga potensyal niini

Sa mga komento sa script, imong makita nga ang gidaghanon sa mga sayup sa bahin nga sanga nahimong labaw pa sa madawat. Busa ang tanan BAD.

Giunsa namon gipatuman ang SonarQube ug nahibal-an ang dako nga potensyal niini

Pula ang buton sa Paghiusa. Sa pagkakaron, wala'y pagdili sa pag-upload sa mga pagbag-o base sa sayop nga code, apan kini gihimo sa pagkabuotan sa responsable nga developer. Sa umaabot, mahimo nimong mapugngan ang ingon nga mga pasalig nga idugang sa panguna nga sanga.

Giunsa namon gipatuman ang SonarQube ug nahibal-an ang dako nga potensyal niini

Independyenteng trabaho sa mga kasaypanan

Sunod, kinahanglan nimo nga susihon ang tanan nga mga sayup nga nakit-an sa sistema, tungod kay ang SonarQube nag-analisar sumala sa higpit nga mga sumbanan niini. Ang iyang gikonsiderar nga usa ka sayup mahimong dili usa sa atong code. Busa, kinahanglan nimo nga susihon ug timan-an kung kini ba usa ka sayup, o kung wala’y kinahanglan nga i-edit sa among mga kondisyon. Niining paagiha mamenosan nato ang gidaghanon sa mga sayop. Sa paglabay sa panahon, ang sistema makakat-on sa pagsabut niini nga mga nuances.

Unsa ang atong naabot

Ang among katuyoan mao ang pagsabut kung maayo ba sa among kaso nga ibalhin ang pagrepaso sa code sa automation. Ug ang resulta mituman sa gipaabot. Gitugotan kami sa SonarQube nga magtrabaho kauban ang mga sinultian nga among gikinahanglan, naghimo og patas nga pagtuki, ug adunay potensyal nga makakat-on gikan sa mga tip sa developer. Sa kinatibuk-an, nalipay kami sa among unang kasinatian sa paggamit sa SonarQube ug nagplano nga molambo pa niini nga direksyon. Gipaabot namo nga sa umaabot makadaginot kami ug dugang panahon ug paningkamot sa pagrepaso sa code ug himoon kini nga mas maayo pinaagi sa pagwagtang sa tawhanong hinungdan. Tingali sa proseso atong madiskobrehan ang mga kakulangan sa plataporma o, sa kasukwahi, kita makombinsir pag-usab nga kini usa ka cool nga butang nga adunay dako nga potensyal.

Sa kini nga artikulo sa pagrepaso naghisgot kami bahin sa among kaila sa SonarQube static analyzer. Kung naa kay pangutana, palihog isulat sa comments. Kung interesado ka niini nga hilisgutan, sa usa ka bag-ong publikasyon among ihulagway sa mas detalyado kung giunsa ang pag-set up sa tanan nga husto ug pagsulat sa code aron mahimo ang ingon nga tseke.

Tagsulat sa teksto: atanya

Source: www.habr.com

Idugang sa usa ka comment