Чӣ гуна мо SonarQube-ро татбиқ кардем ва иқтидори бузурги онро дарк кардем

Чӣ гуна мо SonarQube-ро татбиқ кардем ва иқтидори бузурги онро дарк кардем

Мо мехоҳем таҷрибаи худро оид ба татбиқи платформаи таҳлили пайваста ва андозагирии сифати коди SonarQube ба равандҳои мавҷудаи таҳияи системаи DPO (илова ба депозитарии Аламеда ва системаи ҳисобдории клиринг) -и Депозитарии миллии ҳисоббаробаркунӣ мубодила кунем.

Депозитарии миллии ҳисоббаробаркунӣ (Гурӯҳи ширкатҳои биржаи Маскав) яке аз ширкатҳои калидии инфрасохтори молиявӣ мебошад, ки коғазҳои қиматноки эмитентҳои Русия ва хориҷиро ба маблағи беш аз 50 триллион рубл нигоҳдорӣ ва сабт мекунад. Ҳаҷми афзояндаи амалиёте, ки система анҷом медиҳад, инчунин афзоиши пайвастаи функсияҳо нигоҳ доштани сифати баланди коди ибтидоии системаҳоро талаб мекунад. Яке аз воситаҳо барои ноил шудан ба ин ҳадаф таҳлилгари статикии SonarQube мебошад. Дар ин мақола мо таҷрибаи бомуваффақияти бефосила татбиқи анализатори статикии SonarQubeро дар равандҳои мавҷудаи рушди шӯъбаи мо тавсиф мекунем.

Мухтасар дар бораи кафедра

Салоҳияти мо модулҳои зеринро дар бар мегирад: пардохтҳо ба мизоҷони NSD, идоракунии ҳуҷҷатҳои электронӣ (EDF), коркарди паёмҳои репозиторийии тиҷоратӣ (бақайдгирии амалиёти берун аз биржа), каналҳои электронии ҳамкории байни мизоҷон ва NSD ва ғайра. Умуман, як қабати калони кор дар тарафи техникии амалиёт. Мо дар асоси аризахо кор мекунем. Аризаҳои кассаро таҳлилгарон баррасӣ мекунанд: онҳо талаботи муштариёнро ҷамъоварӣ мекунанд ва ба мо нуқтаи назари худро дар бораи он, ки он бояд ба барнома мувофиқат кунад, пешниҳод мекунанд. Минбаъд, схемаи стандартӣ: таҳияи код - озмоиш - амалиёти озмоишӣ - расонидани код ба схемаи истеҳсолӣ ба фармоишгари мустақим.

Чаро SonarQube?

Ин аввалин таҷрибаи шӯъбаи мо дар татбиқи платформаи назорати сифати код мебошад - қаблан мо онро дастӣ мекардем, танҳо баррасии код. Аммо хачми рузафзуни кор автоматй кунондани ин процессро талаб мекунад. Гайр аз ин, дар коллектив коркунони камтачриба низ хастанд, ки бо коидахои дохилии тараккиёт комилан ошно нестанд ва майли бештар ба хатогихо рох медиханд. Барои назорат кардани сифати код карор дода шуд, ки анализатори статикй чорй карда шавад. Азбаски SonarQube аллакай дар баъзе системаҳои NSD истифода шудааст, барои интихоб вақти зиёд лозим нашуд. Қаблан, ҳамкасбон аз дигар бахшҳо онро барои таҳлили коди хидматрасонии микросервисҳо дар системаи Аламеда (системаи депозитарӣ ва баҳисобгирии клирингии NSD), дар CFT (системаи иттилоотӣ барои баҳисобгирӣ, тавозун, таҳияи ҳисоботи ҳатмӣ ва дохилӣ) истифода мебурданд. системахо. Барои озмоиш, мо тасмим гирифтем, ки бо версияи ройгони SonarQube оғоз кунем. Пас биёед ба қазияи худ гузарем.

Раванди татбиқ

Мо дорем:

  • васлкунии автоматии система дар TeamCity;
  • раванди боркунии кодро тавассути MergeRequest аз як филиал ба филиали асосӣ дар GitLab танзим кунед (раванди таҳия мувофиқи GitHub Flow);
  • SonarQube барои таҳлили коди системаи DPO мувофиқи ҷадвал танзим шудааст.

Ҳадафи мо: татбиқи таҳлили автоматии код дар равандҳои CI/CD-и AVE.

Мутобиқ кардан лозим аст: раванди ба таври худкор тафтиш кардани код аз ҷониби таҳлилгари статикӣ бо ҳар як MergeRequest ба шохаи асосӣ.

Онхое. тасвири мақсаднок чунин аст: ҳамин ки таҳиякунанда тағиротро ба шохаи хусусият бор мекунад, санҷиши автоматии хатогиҳои нав дар код оғоз мешавад. Агар ягон хатогӣ вуҷуд надошта бошад, пас қабул кардани тағирот иҷозат дода мешавад, вагарна хатогиҳо бояд ислоҳ карда шаванд. Аллакай дар марҳилаи аввал мо тавонистем шумораи муайяни хатогиҳоро дар код муайян кунем. Система танзимоти хеле чандир дорад: онро метавон тавре танзим кард, ки он барои вазифаҳои мушаххаси таҳиягарон, барои ҳар як система ва услуби барномасозӣ кор кунад.

Танзими QualityGate дар SonarQube

Таҳлили QualityGate чизест, ки мо дар дохили Интернет мехонем. Дар аввал мо равиши дигарро истифода бурдем, ки мураккабтар ва гӯё тамоман дуруст нест. Аввалан, мо сканро тавассути SonarQube ду маротиба иҷро кардем: мо шохаи хусусият ва шохаеро, ки мо шохаи хусусиятро якҷоя карданӣ будем, скан кардем ва сипас шумораи хатогиҳоро муқоиса кардем. Ин усул устувор набуд ва на хамеша натичаи дуруст медод. Ва он гоҳ мо фаҳмидем, ки ба ҷои ду маротиба кор кардани SonarQube, шумо метавонед шумораи хатогиҳои содиршударо маҳдуд кунед (QualityGate) ва танҳо филиалеро, ки шумо бор мекунед ва муқоиса мекунед, таҳлил кунед.

Чӣ гуна мо SonarQube-ро татбиқ кардем ва иқтидори бузурги онро дарк кардем

Дар айни замон, мо то ҳол санҷиши коди оддиро истифода мебарем. Бояд қайд кард, ки SonarQube бо баъзе забонҳои барномасозӣ, аз ҷумла Delphi мувофиқ нест. Дар айни замон, барои системаи мо, мо танҳо рамзи PLSql-ро таҳлил мекунем.

Ин чунин кор мекунад:

  • Мо барои лоиҳаи худ танҳо рамзи PL/SQL-ро таҳлил мекунем.
  • QualityGate дар SonarQube конфигуратсия карда шудааст, то ки шумораи хатогиҳо бо иҷрои ӯҳдадорӣ зиёд нашавад.
  • Шумораи хатогиҳо дар даври аввал 229-ро ташкил дод. Агар дар давоми иҷро хатогиҳо зиёд бошанд, якҷоя кардан иҷозат дода намешавад.
  • Ғайр аз он, бо назардошти ислоҳи хатогиҳо, QualityGate-ро аз нав танзим кардан мумкин аст.
  • Шумо инчунин метавонед ҷузъҳои навро барои таҳлил илова кунед, масалан, фарогирии код бо тестҳо ва ғайра.

Нақшаи кор:

Чӣ гуна мо SonarQube-ро татбиқ кардем ва иқтидори бузурги онро дарк кардем

Дар шарҳҳои скрипт шумо мебинед, ки шумораи хатогиҳо дар шохаи хусусият зиёд нашудааст. Пас, ҳама чиз хуб аст.

Чӣ гуна мо SonarQube-ро татбиқ кардем ва иқтидори бузурги онро дарк кардем

Тугмаи Якҷоя дастрас мешавад.

Чӣ гуна мо SonarQube-ро татбиқ кардем ва иқтидори бузурги онро дарк кардем

Дар шарҳҳои скрипт шумо мебинед, ки шумораи хатогиҳо дар шохаи хусусият аз ҳадди иҷозатшуда зиёдтар шудааст. Пас, ҳама чиз БАД аст.

Чӣ гуна мо SonarQube-ро татбиқ кардем ва иқтидори бузурги онро дарк кардем

Тугмаи якҷоякунӣ сурх аст. Дар айни замон, манъи боркунии тағирот ба рамзи хато вуҷуд надорад, аммо ин бо ихтиёри таҳиягари масъул анҷом дода мешавад. Дар оянда шумо метавонед ин гуна ӯҳдадориҳоро ба филиали асосӣ пешгирӣ кунед.

Чӣ гуна мо SonarQube-ро татбиқ кардем ва иқтидори бузурги онро дарк кардем

Муносибати худ бо хатогиҳо

Баъдан, шумо бояд ҳамаи хатогиҳои аз ҷониби система ошкоршударо тафтиш кунед, зеро SonarQube мувофиқи стандартҳои қатъии худ таҳлил мекунад. Он чизе ки ӯ хато меҳисобад, метавонад дар кодекси мо бошад. Аз ин рӯ, шумо бояд тафтиш кунед ва қайд кунед, ки оё ин воқеан хато аст ё дар шароити мо зарурати таҳрир нест. Ҳамин тариқ, мо шумораи хатогиҳоро кам мекунем. Бо мурури замон, система фаҳмидани ин нозукиҳоро меомӯзад.

Мо ба чй омадем

Ҳадафи мо фаҳмидани он буд, ки оё дар ҳолати мо интиқол додани санҷиши код ба автоматизатсия мувофиқ аст ё не. Ва натиҷа ба интизориҳо мувофиқат кард. SonarQube ба мо имкон медиҳад, ки бо забонҳое, ки ба мо лозим аст, кор кунем, таҳлили басо салоҳиятнок анҷом диҳем ва имкони омӯхтани маслиҳатҳои таҳиягаронро дорад. Умуман, мо аз таҷрибаи аввалини худ бо SonarQube қаноатмандем ва нақша дорем, ки минбаъд дар ин самт рушд кунем. Мо интизорем, ки дар оянда мо метавонем вақт ва кӯшиши бештарро дар баррасии код сарфа кунем ва тавассути аз байн бурдани омили инсонӣ онро беҳтар кунем. Шояд дар рафти он мо камбудихои платформаро ошкор кунем, ё баръакс, бори дигар боварй хосил кунем, ки ин чизи олихимматонаест, ки потенциали калон дорад.

Дар ин мақолаи мухтасар, мо дар бораи шиносоии худ бо анализатори статикии SonarQube сӯҳбат кардем. Агар шумо савол дошта бошед, лутфан дар шарҳҳо нависед. Агар шумо ба ин мавзӯъ таваҷҷӯҳ дошта бошед, дар нашрияи нав мо ба таври муфассал шарҳ медиҳем, ки чӣ гуна ҳама чизро дуруст танзим кардан ва рамз навиштанро барои анҷом додани чунин чек шарҳ медиҳем.

Муаллифи матн: атаня

Манбаъ: will.com

Илова Эзоҳ