SonarQube nola inplementatu genuen eta bere potentzial handia konturatu genuen

SonarQube nola inplementatu genuen eta bere potentzial handia konturatu genuen

Kodearen kalitatea etengabe aztertzeko eta neurtzeko SonarQube plataforma ezartzeko gure esperientzia partekatu nahi dugu Likidazio Gordailu Nazionaleko DPO sistemaren (Alameda gordailuaren eta konpentsazio kontabilitate sistemaren gehikuntza) dauden garapen prozesuetan.

Likidazio Gordailu Nazionala (Moskuko Trukea enpresen taldea) finantza-azpiegituran funtsezko enpresa bat da, 50 bilioi errublo baino gehiago balio duten Errusiako eta atzerriko jaulkitzaileen baloreak biltegiratzeko eta kontabilizatzeko. Sistemak egiten dituen eragiketen bolumen gero eta handiagoak, baita funtzionalitatearen etengabeko hedapenak ere, sistemen kalitate handiko iturburu-kodea mantentzea eskatzen dute. Helburu hori lortzeko tresna bat SonarQube analizatzaile estatikoa da. Artikulu honetan SonarQube analizatzaile estatikoa gure saileko garapen prozesuetan ezin hobeto ezartzearen esperientzia arrakastatsua deskribatuko dugu.

Sailari buruz laburki

Gure eskumenak modulu hauek barne hartzen ditu: NSD bezeroei ordainketak, dokumentu elektronikoen kudeaketa (EDF), merkataritza-biltegiko mezuen prozesamendua (off-the-counter-eko transakzioen erregistroa), bezeroen eta NSDren arteko interakzio elektronikorako bideak, eta askoz gehiago. Oro har, lan asko dago egiteko jarduera operatiboen alde teknikoan. Eskaeren arabera lan egiten dugu. Eragiketa-arduradunen eskaerak analistek prozesatzen dituzte: bezeroaren eskakizunak biltzen dituzte eta programan nola egokitu behar den duten ikuspegia aurkezten digute. Ondoren, eskema estandarra da: kodearen garapena - probak - probako funtzionamendua - kodea produkzio-zirkuitura entregatzea bezero zuzenari.

Zergatik SonarQube?

Hau da gure departamentuaren lehen esperientzia kodearen kalitatea kontrolatzeko plataforma bat inplementatzen; aurretik eskuz egiten genuen, kodeen berrikuspenak soilik eginez. Baina gero eta lan bolumen handiagoak prozesu hau automatizatzea eskatzen du. Horrez gain, taldean esperientziarik gabeko langileak ere sartzen dira, barne garapenaren araudia guztiz ezagutzen ez dutenak eta akats gehiago egiteko joera dutenak. Kodearen kalitatea kontrolatzeko, analizatzaile estatiko bat ezartzea erabaki zen. SonarQube NSD sistema batzuetan jada erabiltzen zenez, ez zen denbora asko behar izan aukeratzeko. Aurretik, beste sail batzuetako lankideek Alameda sistemako mikrozerbitzuen kodea aztertzeko erabiltzen zuten (NSDren gordailu eta konpentsazio kontabilitate sistema propioa), CFTn (kontabilitatea, balantzeak, derrigorrezko eta barne txostenak prestatzeko informazio sistema), zenbaitetan. beste sistema batzuk. Esperimentuak egiteko, SonarQube-ren doako bertsioarekin hastea erabaki genuen. Goazen, beraz, gure kasura.

Ezarpen-prozesua

Daukagu:

  • sistema automatikoaren muntaketa TeamCity-n;
  • funtzioen adarretik GitLab-eko adar nagusira MergeRequest bidez kodea kargatzeko prozesua konfiguratu da (garapen prozesua GitHub Flow-en arabera);
  • SonarQube, DPO sistemarako kodea programazio batean aztertzeko konfiguratua.

Gure helburua: kode-analisi automatikoa ezartzea DPOko CI/CD prozesuetan.

Konfiguratu beharra: adar nagusira MergeRequest bakoitzean analizatzaile estatiko batekin kodea automatikoki egiaztatzeko prozesua.

Horiek. Xede-irudia honako hau da: garatzaileak eginbideen adarrean aldaketak kargatu bezain laster, kodean akats berrien egiaztapen automatikoa abiarazten da. Akatsik ez badago, aldaketak onartzen dira, bestela akatsak zuzendu beharko dira. Dagoeneko hasierako fasean akats kopuru jakin bat identifikatu ahal izan genuen kodean. Sistemak oso ezarpen malguak ditu: garatzaileen zeregin zehatzetarako, sistema eta programazio estilo bakoitzerako funtzionatzeko moduan konfigura daiteke.

QualityGate konfiguratzea SonarQube-n

QualityGate azterketa Interneten sakonean irakurtzen dugun zerbait da. Hasieran, beste ikuspegi bat erabili genuen, konplexuagoa eta, nolabait, ez guztiz zuzena. Lehenik eta behin, eskaneatzea bi aldiz egin genuen SonarQube bidez: ezaugarrien adarra eta ezaugarrien adarra bateratuko genuen adar eskaneatu genuen, eta gero akats kopurua alderatu genuen. Metodo hau ez zen egonkorra eta ez zuen beti emaitza zuzena ematen. Eta orduan jakin genuen SonarQube bi aldiz exekutatu beharrean, egindako errore-kopuruari muga bat ezarri genezakeela (QualityGate) eta kargatu eta konparatzen duzun adarra soilik aztertu dezakegula.

SonarQube nola inplementatu genuen eta bere potentzial handia konturatu genuen

Oraingoz oraindik kode berrikuspen primitiboa erabiltzen ari gara. Aipatzekoa da SonarQube ez dela bateragarria programazio-lengoaia batzuekin, Delphi barne. Momentuz, gure sistemarako PLSql kodea bakarrik aztertzen dugu.

Honela funtzionatzen du:

  • Gure proiekturako PL/SQL kodea bakarrik aztertzen dugu.
  • SonarQube-k QualityGate konfiguratuta dauka, akatsen kopurua konpromezuarekin batera handitu ez dadin.
  • Lehen abiaraztean errore-kopurua 229 izan zen. Konpromiso batean akats gehiago egonez gero, ez da onartzen bateratzea.
  • Gainera, akatsak zuzentzen badira, QualityGate berriro konfiguratu ahal izango da.
  • Analisirako puntu berriak ere gehi ditzakezu, adibidez, kodeen estaldura testekin, etab.

Lan eskema:

SonarQube nola inplementatu genuen eta bere potentzial handia konturatu genuen

Gidoiaren iruzkinek erakusten dute ezaugarrien adarrean akatsen kopurua ez dela handitu. Beraz, dena ondo dago.

SonarQube nola inplementatu genuen eta bere potentzial handia konturatu genuen

Batu botoia erabilgarri egongo da.

SonarQube nola inplementatu genuen eta bere potentzial handia konturatu genuen

Gidoiaren iruzkinetan, ezaugarrien adarreko akatsen kopurua onargarriagoa bihurtu dela ikus dezakezu. Beraz, dena TXARRA da.

SonarQube nola inplementatu genuen eta bere potentzial handia konturatu genuen

Batu botoia gorria da. Momentuz, ez dago debekurik kode okerrean oinarritutako aldaketak kargatzeko, baina garatzaile arduradunaren erabakiaren arabera egiten da. Etorkizunean, horrelako konpromisoak adar nagusira gehitzea saihestu dezakezu.

SonarQube nola inplementatu genuen eta bere potentzial handia konturatu genuen

Akatsen gaineko lan independentea

Ondoren, sistemak detektatu dituen akats guztiak egiaztatu behar dituzu, SonarQube-k bere estandar zorrotzen arabera aztertzen duelako. Akatstzat hartzen duena agian ez da gure kodean. Hori dela eta, egiaztatu eta ohartu behar duzu hau benetan errore bat den edo gure baldintzetan editatu beharrik ez dagoen. Horrela akatsen kopurua murrizten dugu. Denborarekin, sistemak Γ±abardura horiek ulertzen ikasiko du.

Zertara heldu gara

Gure helburua zen ulertzea ea komenigarria izango zen gure kasuan kodearen berrikuspena automatizaziora pasatzea. Eta emaitzak itxaropenak bete zituen. SonarQube-k behar ditugun hizkuntzekin lan egiteko aukera ematen digu, nahiko analisi konpetentea egiten du eta garatzaileen aholkuetatik ikasteko aukera du. Orokorrean, pozik gaude SonarQube erabiliz egindako lehen esperientziarekin eta norabide horretan gehiago garatzeko asmoa dugu. Espero dugu etorkizunean denbora eta esfortzu gehiago aurreztuko dugula kodearen berrikuspenean eta hobetu egingo dugula giza faktorea ezabatuz. Agian, prozesuan plataformaren gabeziak ezagutuko ditugu edo, alderantziz, berriro ere sinetsiko gara potentzial handiko gauza polita dela.

Berrikuspen-artikulu honetan SonarQube analizatzaile estatikoarekin dugun ezagutzari buruz hitz egin dugu. Galderarik baduzu, idatzi iruzkinetan. Gai hau interesatzen bazaizu, argitalpen berri batean zehatzago azalduko dugu nola konfiguratu dena behar bezala eta nola idatzi kodea nola egin egiaztapen hori egiteko.

Testuaren egilea: atanya

Iturria: www.habr.com

Gehitu iruzkin berria