Jinsi tulivyotekeleza SonarQube na kutambua uwezo wake mkubwa

Jinsi tulivyotekeleza SonarQube na kutambua uwezo wake mkubwa

Tungependa kushiriki uzoefu wetu wa kutekeleza jukwaa la uchanganuzi endelevu na upimaji wa ubora wa msimbo wa SonarQube katika michakato iliyopo ya kuunda mfumo wa DPO (ziada ya mfumo wa uwekaji amana na uwekaji hesabu wa Alameda) wa Hifadhi ya Kitaifa ya Makazi.

Hifadhi ya Kitaifa ya Makazi (Kundi la Makampuni ya Kubadilishana ya Moscow) ni moja wapo ya kampuni kuu za miundombinu ya kifedha ambayo huhifadhi na kurekodi dhamana za watoaji wa Urusi na wa kigeni wenye thamani ya zaidi ya rubles trilioni 50. Kiasi kinachoongezeka cha shughuli zinazofanywa na mfumo, pamoja na ongezeko la kuendelea la utendaji, zinahitaji kudumisha ubora wa juu wa msimbo wa chanzo wa mifumo. Moja ya zana za kufikia lengo hili ni kichanganuzi tuli cha SonarQube. Katika nakala hii, tunaelezea uzoefu uliofaulu wa kutekeleza bila mshono kichanganuzi tuli cha SonarQube katika michakato iliyopo ya maendeleo ya idara yetu.

Kwa kifupi kuhusu idara

Uwezo wetu unajumuisha moduli zifuatazo: malipo kwa wateja wa NSD, usimamizi wa hati za kielektroniki (EDF), usindikaji wa ujumbe wa hazina ya biashara (usajili wa miamala ya nje ya kubadilishana), njia za mwingiliano wa kielektroniki kati ya wateja na NSD, na mengi zaidi. Kwa ujumla, safu kubwa ya kazi kwa upande wa kiufundi wa shughuli. Tunafanya kazi kwa misingi ya maombi. Maombi ya wakala huchakatwa na wachanganuzi: wao hukusanya mahitaji ya wateja na kuwasilisha maono yao ya jinsi yanafaa kuingia kwenye mpango. Zaidi ya hayo, mpango wa kawaida: maendeleo ya kanuni - kupima - uendeshaji wa majaribio - utoaji wa kanuni kwa mzunguko wa uzalishaji kwa mteja wa moja kwa moja.

Kwa nini SonarQube?

Hii ni tajriba ya kwanza ya idara yetu katika kutekeleza jukwaa la udhibiti wa ubora wa msimbo - hapo awali tuliifanya wenyewe, tu ukaguzi wa kanuni. Lakini kiasi kinachoongezeka cha kazi kinahitaji automatisering ya mchakato huu. Kwa kuongeza, pia kuna wafanyakazi wasio na ujuzi katika timu ambao hawajui kabisa kanuni za maendeleo ya ndani na huwa na makosa zaidi. Ili kudhibiti ubora wa kanuni, iliamuliwa kutekeleza analyzer tuli. Kwa kuwa SonarQube tayari imetumika katika baadhi ya mifumo ya NSD, haikuchukua muda mrefu kuchagua. Hapo awali, wenzake kutoka mgawanyiko mwingine walitumia kuchambua kanuni za huduma ndogo katika mfumo wa Alameda (mfumo wa uhasibu wa hifadhi na uhasibu wa NSD), katika CFT (mfumo wa habari wa uhasibu, mizani, utayarishaji wa taarifa za lazima na za ndani), katika baadhi nyingine. mifumo. Kwa majaribio, tuliamua kuanza na toleo la bure la SonarQube. Kwa hivyo wacha tuendelee kwenye kesi yetu.

Mchakato wa utekelezaji

Tuna:

  • mkusanyiko wa moja kwa moja wa mfumo katika TeamCity;
  • weka mchakato wa kupakia msimbo kupitia MergeRequest kutoka kwa tawi la kipengele hadi tawi kuu katika GitLab (mchakato wa maendeleo kulingana na GitHub Flow);
  • SonarQube imesanidiwa kuchanganua msimbo wa mfumo wa DPO kwa ratiba.

Lengo letu: tekeleza uchanganuzi wa msimbo otomatiki katika michakato ya CI/CD ya AVE.

Haja ya kubinafsisha: mchakato wa kuangalia kiotomatiki msimbo na kichanganuzi tuli na kila MergeRequest kwa tawi kuu.

Wale. picha inayolengwa ni kama ifuatavyo: punde tu msanidi anapopakia mabadiliko kwenye tawi la kipengele, ukaguzi wa kiotomatiki wa hitilafu mpya katika msimbo huanza. Ikiwa hakuna makosa, basi mabadiliko yanaruhusiwa kukubalika, vinginevyo makosa yatastahili kusahihishwa. Tayari katika hatua ya awali, tuliweza kutambua idadi fulani ya makosa katika kanuni. Mfumo una mipangilio rahisi sana: inaweza kusanidiwa kwa namna ambayo inafanya kazi kwa kazi maalum za watengenezaji, kwa kila mfumo na mtindo wa programu.

Inasanidi QualityGate katika SonarQube

Uchambuzi wa QualityGate ni jambo ambalo tunasoma kwenye matumbo ya mtandao. Hapo awali, tulitumia mbinu tofauti, ngumu zaidi na, kwa njia fulani, sio sahihi kabisa. Kwanza, tulichanganua kupitia SonarQube mara mbili: tulichanganua tawi la kipengele na tawi ambapo tungeunganisha tawi la kipengele, na kisha tukalinganisha idadi ya makosa. Njia hii haikuwa thabiti na haikutoa kila wakati matokeo sahihi. Na kisha tulijifunza kuwa badala ya kuendesha SonarQube mara mbili, unaweza kuweka kikomo kwa idadi ya makosa yaliyofanywa (QualityGate) na kuchambua tu tawi ambalo unapakia na kulinganisha.

Jinsi tulivyotekeleza SonarQube na kutambua uwezo wake mkubwa

Kwa sasa, bado tunatumia ukaguzi wa awali wa msimbo. Ikumbukwe kwamba SonarQube haiendani na baadhi ya lugha za programu, ikiwa ni pamoja na Delphi. Kwa sasa, kwa mfumo wetu, tunachambua msimbo wa PLSql pekee.

Inafanya kazi kama hii:

  • Tunachanganua msimbo wa PL/SQL pekee kwa mradi wetu.
  • QualityGate imesanidiwa katika SonarQube ili idadi ya makosa isiongezeke na ahadi.
  • Idadi ya makosa wakati wa utekelezaji wa kwanza ilikuwa 229. Ikiwa kuna makosa zaidi wakati wa ahadi, basi kuunganisha hairuhusiwi.
  • Zaidi ya hayo, kulingana na urekebishaji wa makosa, itawezekana kusanidi upya QualityGate.
  • Unaweza pia kuongeza vipengee vipya kwa uchambuzi, kwa mfano, chanjo ya msimbo na majaribio, nk.

Mpango wa kazi:

Jinsi tulivyotekeleza SonarQube na kutambua uwezo wake mkubwa

Katika maoni ya hati, unaweza kuona kwamba idadi ya makosa katika tawi la kipengele haijaongezeka. Kwa hivyo kila kitu ni sawa.

Jinsi tulivyotekeleza SonarQube na kutambua uwezo wake mkubwa

Kitufe cha Kuunganisha kinapatikana.

Jinsi tulivyotekeleza SonarQube na kutambua uwezo wake mkubwa

Katika maoni ya hati, unaweza kuona kwamba idadi ya makosa katika tawi la kipengele imekuwa zaidi ya kuruhusiwa. Kwa hivyo kila kitu ni KIBAYA.

Jinsi tulivyotekeleza SonarQube na kutambua uwezo wake mkubwa

Kitufe cha Kuunganisha ni nyekundu. Kwa sasa, hakuna marufuku ya kupakia mabadiliko kwenye msimbo wenye makosa, lakini hii inafanywa kwa hiari ya msanidi programu anayewajibika. Katika siku zijazo, unaweza kuzuia ahadi kama hizo kufanywa kwa tawi kuu.

Jinsi tulivyotekeleza SonarQube na kutambua uwezo wake mkubwa

Kujishughulisha na mende

Ifuatayo, unahitaji kuangalia makosa yote yaliyogunduliwa na mfumo, kwa sababu SonarQube inachambua kulingana na viwango vyake vikali. Kile anachokiona kama hitilafu kinaweza kisiwe kimoja katika msimbo wetu. Kwa hivyo, unahitaji kuangalia na kutambua ikiwa hii ni kosa, au ikiwa hakuna haja ya kuhariri katika hali zetu. Kwa hivyo, tunapunguza idadi ya makosa. Baada ya muda, mfumo utajifunza kuelewa nuances hizi.

Tumefika nini

Lengo letu lilikuwa kuelewa ikiwa inafaa kwa upande wetu kuhamisha uthibitishaji wa msimbo hadi kiotomatiki. Na matokeo yaliishi kulingana na matarajio. SonarQube huturuhusu kufanya kazi na lugha tunazohitaji, hufanya uchanganuzi unaofaa, na ina uwezo wa kujifunza kutoka kwa vidokezo vya wasanidi programu. Kwa ujumla, tumefurahishwa na uzoefu wetu wa kwanza na SonarQube na tunapanga kuendeleza zaidi katika mwelekeo huu. Tunatarajia kwamba katika siku zijazo tutaweza kuokoa muda na juhudi zaidi kwenye ukaguzi wa msimbo na kuifanya kuwa bora zaidi kwa kuondoa sababu ya kibinadamu. Labda katika mchakato tutagundua mapungufu ya jukwaa, au, kinyume chake, tutahakikisha tena kwamba hii ni jambo la baridi na uwezo mkubwa.

Katika nakala hii ya muhtasari, tulizungumza juu ya kufahamiana kwetu na analyzer tuli ya SonarQube. Ikiwa una maswali, tafadhali andika kwenye maoni. Ikiwa una nia ya mada hii, katika uchapishaji mpya tutaelezea kwa undani zaidi jinsi ya kuweka kila kitu kwa usahihi na kuandika msimbo wa kufanya hundi hiyo.

Mwandishi wa maandishi: atanya

Chanzo: mapenzi.com

Kuongeza maoni