{"id":97620,"date":"2020-10-19T20:42:40","date_gmt":"2020-10-19T18:42:40","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kak-my-vnedrili-sonarqube-i-osoznali-ego-bolshoj-potenczial"},"modified":"2020-10-19T20:42:40","modified_gmt":"2020-10-19T18:42:40","slug":"kak-my-vnedrili-sonarqube-i-osoznali-ego-bolshoj-potenczial","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-my-vnedrili-sonarqube-i-osoznali-ego-bolshoj-potenczial","title":{"rendered":"Si si implementuam SonarQube dhe kuptuam potencialin e tij t\u00eb madh","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Si si implementuam SonarQube dhe kuptuam potencialin e tij t\u00eb madh\" src=\"\/wp-content\/uploads\/2020\/10\/81a4b69ed09d156ec71603b4bf32d587.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>D\u00ebshirojm\u00eb t\u00eb ndajm\u00eb p\u00ebrvoj\u00ebn ton\u00eb t\u00eb implementimit t\u00eb platform\u00ebs p\u00ebr analiz\u00ebn dhe matjen e vazhdueshme t\u00eb cil\u00ebsis\u00eb s\u00eb kodit SonarQube n\u00eb proceset tashm\u00eb ekzistuese t\u00eb zhvillimit t\u00eb sistemit DPO (shtes\u00eb p\u00ebr sistemin e llogarive depoja-kliring \u00abAlameda\u00bb) t\u00eb Depozitarit Komb\u00ebtar. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Depozitari Komb\u00ebtar (grupi i kompanive \u00abBursa e Mosk\u00ebs\u00bb) \u00ebsht\u00eb nj\u00eb nga kompanit\u00eb ky\u00e7e t\u00eb infrastruktur\u00ebs financiare, duke ruajtur dhe duke llogaritur p\u00ebrkat\u00ebsit\u00eb e sigurive p\u00ebr emetues rus\u00eb dhe t\u00eb huaj me nj\u00eb vler\u00eb mbi 50 trilion rubla. V\u00ebllimi n\u00eb rritje i transaksioneve t\u00eb kryera nga sistemi, si dhe zgjerimi i vazhduesh\u00ebm i funksionalitetit, k\u00ebrkon ruajtjen e nj\u00eb cil\u00ebsie t\u00eb lart\u00eb t\u00eb kodit burimor t\u00eb sistemeve. Nj\u00eb nga mjetet p\u00ebr arritjen e k\u00ebsaj \u00ebsht\u00eb analizatori statik SonarQube. N\u00eb k\u00ebt\u00eb artikull do t\u00eb p\u00ebrshkruajm\u00eb p\u00ebrvoj\u00ebn e suksesshme t\u00eb implementimit pa probleme t\u00eb analizatorit statik SonarQube n\u00eb proceset ekzistuese t\u00eb zhvillimit t\u00eb departamentit ton\u00eb. <\/p>\n<p><\/p>\n<h3 id=\"kratko-ob-otdele\">P\u00ebrmbledhje mbi departamentin<\/h3>\n<p><\/p>\n<p>N\u00eb kompetenc\u00ebn ton\u00eb jan\u00eb modulet e m\u00ebposhtme: pagesat p\u00ebr klient\u00ebt e NRD, qarkullimi elektronik i dokumenteve (EDO), p\u00ebrpunimi i mesazheve t\u00eb depozitave tregtare (regjistrimi i transaksioneve jasht\u00eb tregut), kanalet e bashk\u00ebpunimit elektronik mes klient\u00ebve dhe NRD, dhe shum\u00eb t\u00eb tjera. N\u00eb p\u00ebrgjith\u00ebsi, ka nj\u00eb sasi t\u00eb madhe pune n\u00eb an\u00ebn teknike t\u00eb veprimtaris\u00eb operative. Ne punojm\u00eb n\u00eb baz\u00eb t\u00eb k\u00ebrkesave. K\u00ebrkesat e operacionist\u00ebve p\u00ebrpunohen nga analist\u00ebt: ata mbledhin k\u00ebrkesat e klient\u00ebve dhe na paraqesin vizionin e tyre p\u00ebr m\u00ebnyr\u00ebn se si kjo duhet t\u00eb pasqyrohet n\u00eb program. M\u00eb pas, skema standarde: zhvillimi i kodit \u2013 testimi \u2013 eksperienca operuese \u2013 dor\u00ebzimi i kodit n\u00eb linj\u00ebn produktive te klienti direkt. <\/p>\n<p><\/p>\n<h3 id=\"pochemu-imenno-sonarqube\">Pse pik\u00ebrisht SonarQube?<\/h3>\n<p><\/p>\n<p>Kjo \u00ebsht\u00eb p\u00ebrvoja e par\u00eb e departamentit ton\u00eb n\u00eb implementimin e nj\u00eb platforme p\u00ebr kontrollin e cil\u00ebsis\u00eb s\u00eb kodit \u2013 m\u00eb par\u00eb e b\u00ebnim k\u00ebt\u00eb manualisht, duke zhvilluar vet\u00ebm rishikime kodimi. Por volumi n\u00eb rritje i pun\u00ebve k\u00ebrkon automatizimin e k\u00ebtij procesi. P\u00ebrve\u00e7 k\u00ebsaj, n\u00eb ekip ka edhe punonj\u00ebs t\u00eb paexperienc\u00eb, t\u00eb cil\u00ebt nuk jan\u00eb shum\u00eb t\u00eb njohur me rregullat e brendshme t\u00eb zhvillimit dhe kan\u00eb prirje p\u00ebr t\u00eb b\u00ebr\u00eb m\u00eb shum\u00eb gabime. P\u00ebr kontrollin e cil\u00ebsis\u00eb s\u00eb kodit, u vendos t\u00eb implementohet nj\u00eb analizues statik. Duke marr\u00eb parasysh se SonarQube ishte p\u00ebrdorur tashm\u00eb n\u00eb disa sisteme t\u00eb NRD, nuk ishte e nevojshme nj\u00eb zgjedhje e gjat\u00eb. M\u00eb par\u00eb, koleg\u00ebt nga departamente t\u00eb tjera kishin analizuar kodin e mikrosistemeve n\u00eb sistemin \"Alameda\" (sistemi i vet\u00eb zhvilluar i depozitimit dhe pastrimit t\u00eb NRD), n\u00eb CFT (sistemi informativ p\u00ebr mbajtjen e kontabilitetit, bilancit, dhe p\u00ebrgatitjen e raportimeve t\u00eb detyrueshme dhe t\u00eb brendshme), dhe n\u00eb disa sisteme t\u00eb tjera. P\u00ebr eksperimente, vendos\u00ebm t\u00eb fillojm\u00eb me versionin falas t\u00eb SonarQube. Tani, le t\u00eb kalojm\u00eb n\u00eb rastin ton\u00eb.<\/p>\n<p><\/p>\n<h2 id=\"process-vnedreniya\">Procesi i implementimit<\/h2>\n<p><\/p>\n<p><strong>Ne kemi<\/strong>:<\/p>\n<p><\/p>\n<ul>\n<li>nd\u00ebrtimi automatik i sistemit n\u00eb TeamCity;<\/li>\n<li>procesi i ngarkimit t\u00eb kodit \u00ebsht\u00eb vendosur p\u00ebrmes MergeRequest nga dega feature n\u00eb degen master n\u00eb GitLab (procesi i zhvillimit sipas GitHub Flow);<\/li>\n<li>SonarQube, e cila \u00ebsht\u00eb configuruar p\u00ebr analiz\u00ebn e kodit p\u00ebr sistemin DPO sipas nj\u00eb plani.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Q\u00ebllimi yn\u00eb<\/strong>: implementoni analiz\u00ebn automatike t\u00eb kodit n\u00eb proceset CI\/CD t\u00eb DPO.<\/p>\n<p><\/p>\n<p><strong>Duhet t\u00eb konfigurohet<\/strong>: procesi i kontrollit automatike t\u00eb kodit me nj\u00eb analizues statik p\u00ebr \u00e7do MergeRequest n\u00eb deg\u00ebn kryesore.<\/p>\n<p><\/p>\n<p>P\u00ebr shembull, skema q\u00ebllimore \u00ebsht\u00eb k\u00ebshtu: sa her\u00eb q\u00eb zhvilluesi ngarkon ndryshime n\u00eb deg\u00ebn feature, aktivizohet nj\u00eb kontroll automat p\u00ebr gabime t\u00eb reja n\u00eb kod. N\u00ebse nuk ka gabime, pranohet prania e ndryshimeve; ndryshe do t\u00eb duhet t\u00eb korigjohen gabimet. Q\u00eb n\u00eb fazat fillestare, arrit\u00ebm t\u00eb identifikonim nj\u00eb num\u00ebr t\u00eb caktuar gabimesh n\u00eb kod. Sistemi ka konfigurime shum\u00eb fleksib\u00ebl: mund t\u00eb konfigurohet t\u00eb punoj\u00eb p\u00ebr detyrat specifike t\u00eb zhvilluesve, p\u00ebr \u00e7do sistem dhe stil programimi. <\/p>\n<p><\/p>\n<h3 id=\"nastroyka-qualitygate-v-sonarqube\">Konfigurimi i QualityGate n\u00eb SonarQube<\/h3>\n<p><\/p>\n<p>Analiza e QualityGate \u00ebsht\u00eb nj\u00eb koncept q\u00eb e gjet\u00ebm n\u00eb thell\u00ebsit\u00eb e internetit. Fillimisht, ne p\u00ebrdornim nj\u00eb qasje tjet\u00ebr, m\u00eb t\u00eb komplikuar dhe nga ana e disa pikave t\u00eb dukshme jo t\u00eb sakt\u00eb. Fillimisht, ne e kryenim dy her\u00eb skanimin p\u00ebrmes SonarQube: skanim p\u00ebr depon e ve\u00e7orive dhe depon n\u00eb t\u00eb cil\u00ebn planifikonim t\u00eb dukej depon e ve\u00e7orive, dhe pastaj krahasonim numrin e gabimeve. Ky metod\u00eb nuk ishte e q\u00ebndrueshme dhe nuk jepte gjithmon\u00eb rezultatet e sakta. Pastaj m\u00ebsuam se \u00ebsht\u00eb e mundur, n\u00eb vend t\u00eb dyshimesh t\u00eb SonarQube, t\u00eb vendosim nj\u00eb kufi p\u00ebr numrin e gabimeve t\u00eb pranueshme (QualityGate) dhe t\u00eb analizojm\u00eb vet\u00ebm at\u00eb deg\u00eb q\u00eb po e ngarkojm\u00eb dhe krahasojm\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Si si implementuam SonarQube dhe kuptuam potencialin e tij t\u00eb madh\" src=\"\/wp-content\/uploads\/2020\/10\/1d1def0ca40039b0c61315d3b3833a33.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ende po p\u00ebrdorim nj\u00eb verifikim t\u00eb thjesht\u00eb t\u00eb kodit. \u00cbsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb theksojm\u00eb se SonarQube nuk \u00ebsht\u00eb i pajtuesh\u00ebm me disa gjuh\u00eb programimi, p\u00ebrfshir\u00eb Delphi. Aktuali, p\u00ebr sistemin ton\u00eb, po analizojm\u00eb vet\u00ebm kodin PLSql.<\/p>\n<p><\/p>\n<p>Funksionon k\u00ebshtu:<\/p>\n<p><\/p>\n<ul>\n<li>Ne analizojm\u00eb vet\u00ebm kodin PL\/SQL p\u00ebr projektin ton\u00eb.<\/li>\n<li>N\u00eb SonarQube \u00ebsht\u00eb konfiguruar QualityGate n\u00eb m\u00ebnyr\u00eb q\u00eb numri i gabimeve t\u00eb mos rritet me komitin. <\/li>\n<li>Numri i gabimeve gjat\u00eb fillimit t\u00eb par\u00eb ishte 229. N\u00ebse numri i gabimeve gjat\u00eb komitit rritet, at\u00ebher\u00eb merge nuk lejohet. <\/li>\n<li>M\u00eb pas, n\u00ebse korrigjohen gabimet, do t\u00eb jet\u00eb e mundur t\u00eb riparohen cil\u00ebsit\u00eb. <\/li>\n<li>Po ashtu, mund t\u00eb shtoni pik\u00eb t\u00eb reja p\u00ebr analiz\u00eb, si mbulimi i kodit nga testet etj.<\/li>\n<\/ul>\n<p><\/p>\n<p>Skema e pun\u00ebs:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Si si implementuam SonarQube dhe kuptuam potencialin e tij t\u00eb madh\" src=\"\/wp-content\/uploads\/2020\/10\/f904169fa87e9cfb75016c1fae4104f1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00eb komentet e pun\u00ebs s\u00eb skriptit \u00ebsht\u00eb e qart\u00eb se numri i gabimeve n\u00eb deg\u00ebn feature nuk \u00ebsht\u00eb rritur. Do t\u00eb thot\u00eb se gjith\u00e7ka \u00ebsht\u00eb n\u00eb rregull.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Si si implementuam SonarQube dhe kuptuam potencialin e tij t\u00eb madh\" src=\"\/wp-content\/uploads\/2020\/10\/004edf78aa787a2a8f6d376f64049a92.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>T\u00eb krijohet butoni Merge.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Si si implementuam SonarQube dhe kuptuam potencialin e tij t\u00eb madh\" src=\"\/wp-content\/uploads\/2020\/10\/7870448b9c13242f8e81f44bfd91d503.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00eb komentet e pun\u00ebs s\u00eb skriptit tregohet se numri i gabimeve n\u00eb deg\u00ebn feature ka tejkaluar limitin e lejuar. Do t\u00eb thot\u00eb se gjith\u00e7ka \u00ebsht\u00eb KEQ.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Si si implementuam SonarQube dhe kuptuam potencialin e tij t\u00eb madh\" src=\"\/wp-content\/uploads\/2020\/10\/b18eb07b5d46ee4cf0b71b28dfec92cc.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Butoni Merge \u00ebsht\u00eb i kuq. P\u00ebr momentin nuk ka ndales\u00eb p\u00ebr t\u00eb b\u00ebr\u00eb ndryshime n\u00eb kodin me gabime, por kjo b\u00ebhet sipas vendimit t\u00eb zhvilluesit p\u00ebrgjegj\u00ebs. N\u00eb t\u00eb ardhmen, mund t\u00eb ndalohet ndarja e k\u00ebtij lloji t\u00eb komiteteve n\u00eb deg\u00ebn kryesore.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Si si implementuam SonarQube dhe kuptuam potencialin e tij t\u00eb madh\" src=\"\/wp-content\/uploads\/2020\/10\/353f896326bca76c25d72396386cbb13.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"samostoyatelnaya-rabota-nad-oshibkami\">Pun\u00eb e pavarur mbi gabimet<\/h3>\n<p><\/p>\n<p>M\u00eb pas, \u00ebsht\u00eb e nevojshme t\u00eb kontrolloni t\u00eb gjith\u00eb gabimet e identifikuara nga sistemi, sepse SonarQube analizon sipas standardeve t\u00eb tij t\u00eb rrepta. Ajo q\u00eb ai e sheh si gabim, n\u00eb kodin ton\u00eb mund t\u00eb mos jet\u00eb nj\u00eb gabim real. Prandaj, \u00ebsht\u00eb e domosdoshme t\u00eb kontrolloni dhe t\u00eb sh\u00ebnoni n\u00ebse \u00ebsht\u00eb v\u00ebrtet nj\u00eb gabim, apo n\u00ebse nuk ka nevoj\u00eb p\u00ebr rregullime n\u00eb kushtet tona. K\u00ebshtu, ne reduktojm\u00eb numrin e gabimeve. Me kalimin e koh\u00ebs, sistemi do t\u00eb m\u00ebsoj\u00eb t\u00eb kuptoj\u00eb k\u00ebto nuanca. <\/p>\n<p><\/p>\n<h2 id=\"k-chemu-my-prishli\">Ku \u00e7far\u00eb kemi arritur<\/h2>\n<p><\/p>\n<p>Q\u00ebllimi yn\u00eb ishte t\u00eb kuptonim n\u00ebse ishte e arsyeshme t\u00eb automatisonim kontrollin e kodit. Dhe rezultati na ka p\u00ebrmbushur pritshm\u00ebrit\u00eb. SonarQube na lejon t\u00eb punojm\u00eb me gjuh\u00ebt q\u00eb na nevojiten, b\u00ebn nj\u00eb analiz\u00eb mjaft t\u00eb mir\u00eb dhe ka potencialin t\u00eb m\u00ebsoj\u00eb nga sugjerimet e zhvilluesve. N\u00eb p\u00ebrgjith\u00ebsi, ne jemi t\u00eb k\u00ebnaqur me p\u00ebrvoj\u00ebn ton\u00eb t\u00eb par\u00eb me SonarQube dhe planifikojm\u00eb t\u00eb zhvillohemi m\u00eb tej n\u00eb k\u00ebt\u00eb drejtim. Presim q\u00eb n\u00eb t\u00eb ardhmen t\u00eb mund t\u00eb kursejm\u00eb m\u00eb shum\u00eb koh\u00eb dhe p\u00ebrpjekje n\u00eb kontrollin e kodit dhe t\u00eb b\u00ebjm\u00eb at\u00eb m\u00eb cil\u00ebsore, duke eliminuar faktor\u00ebt njer\u00ebzor\u00eb. Mund t\u00eb zbulojm\u00eb mang\u00ebsit\u00eb e platform\u00ebs gjat\u00eb procesit ose, p\u00ebrkundrazi, t\u00eb konfirmojm\u00eb edhe nj\u00eb her\u00eb se kjo \u00ebsht\u00eb nj\u00eb gj\u00eb e shk\u00eblqyer me potencial t\u00eb madh. <\/p>\n<p><\/p>\n<p>N\u00eb k\u00ebt\u00eb artikull t\u00eb shqyrtimit ne treguam p\u00ebr njohjen ton\u00eb me analizuesin statik SonarQube. N\u00ebse keni pyetje, ju lutemi shkruani n\u00eb komentet. N\u00ebse jeni t\u00eb interesuar p\u00ebr k\u00ebt\u00eb tem\u00eb, n\u00eb publikimin e ri ne do ta p\u00ebrshkruajm\u00eb m\u00eb n\u00eb detaje se si ta konfigurojm\u00eb gjith\u00e7ka si duhet dhe t\u00eb shkruajm\u00eb kodin p\u00ebr t\u00eb b\u00ebr\u00eb nj\u00eb kontroll t\u00eb till\u00eb. <\/p>\n<p><\/p>\n<p>Autori i tekstit: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/atanya\/\" class=\"user_link\">atanya<\/a><\/noindex><\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nsd\/blog\/523732\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043e\u043f\u044b\u0442\u043e\u043c \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043a\u043e\u0434\u0430 SonarQube \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0414\u041f\u041e (\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0434\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u043d\u043e-\u043a\u043b\u0438\u0440\u0438\u043d\u0433\u043e\u0432\u043e\u0433\u043e \u0443\u0447\u0435\u0442\u0430 \u00ab\u0410\u043b\u0430\u043c\u0435\u0434\u0430\u00bb) \u041d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u043e\u0433\u043e \u0434\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u0438\u044f. \u041d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u044b\u0439 \u0434\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u0438\u0439 (\u0433\u0440\u0443\u043f\u043f\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u00ab\u041c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u0430\u044f \u0431\u0438\u0440\u0436\u0430\u00bb) \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u043e\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0445\u0440\u0430\u043d\u0438\u0442 \u0438 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0446\u0435\u043d\u043d\u044b\u0435 \u0431\u0443\u043c\u0430\u0433\u0438 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0445 \u0438 \u0438\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0445 \u044d\u043c\u0438\u0442\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0441\u0443\u043c\u043c\u0443 \u0431\u043e\u043b\u0435\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":97621,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-97620","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043e\u043f\u044b\u0442\u043e\u043c \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043a\u043e\u0434\u0430 SonarQube \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0414\u041f\u041e (\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0434\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u043d\u043e-\u043a\u043b\u0438\u0440\u0438\u043d\u0433\u043e\u0432\u043e\u0433\u043e \u0443\u0447\u0435\u0442\u0430 \u00ab\u0410\u043b\u0430\u043c\u0435\u0434\u0430\u00bb) \u041d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u043e\u0433\u043e \u0434\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u0438\u044f. \u041d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u044b\u0439 \u0434\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u0438\u0439 (\u0433\u0440\u0443\u043f\u043f\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u00ab\u041c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u0430\u044f \u0431\u0438\u0440\u0436\u0430\u00bb) \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u043e\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0445\u0440\u0430\u043d\u0438\u0442 \u0438 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0446\u0435\u043d\u043d\u044b\u0435 \u0431\u0443\u043c\u0430\u0433\u0438 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0445 \u0438 \u0438\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0445 \u044d\u043c\u0438\u0442\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0441\u0443\u043c\u043c\u0443 \u0431\u043e\u043b\u0435\u0435\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-my-vnedrili-sonarqube-i-osoznali-ego-bolshoj-potenczial\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u0432\u043d\u0435\u0434\u0440\u0438\u043b\u0438 SonarQube \u0438 \u043e\u0441\u043e\u0437\u043d\u0430\u043b\u0438 \u0435\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043e\u043f\u044b\u0442\u043e\u043c \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043a\u043e\u0434\u0430 SonarQube \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0414\u041f\u041e (\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0434\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u043d\u043e-\u043a\u043b\u0438\u0440\u0438\u043d\u0433\u043e\u0432\u043e\u0433\u043e \u0443\u0447\u0435\u0442\u0430 \u00ab\u0410\u043b\u0430\u043c\u0435\u0434\u0430\u00bb) \u041d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u043e\u0433\u043e \u0434\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u0438\u044f. \u041d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u044b\u0439 \u0434\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u0438\u0439 (\u0433\u0440\u0443\u043f\u043f\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u00ab\u041c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u0430\u044f \u0431\u0438\u0440\u0436\u0430\u00bb) \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u043e\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0445\u0440\u0430\u043d\u0438\u0442 \u0438 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0446\u0435\u043d\u043d\u044b\u0435 \u0431\u0443\u043c\u0430\u0433\u0438 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0445 \u0438 \u0438\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0445 \u044d\u043c\u0438\u0442\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0441\u0443\u043c\u043c\u0443 \u0431\u043e\u043b\u0435\u0435\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-my-vnedrili-sonarqube-i-osoznali-ego-bolshoj-potenczial\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-10-19T18:42:40+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-19T18:42:40+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Si e implementuam SonarQube dhe e kuptuam potencialin e tij t\u00eb madh | ProHoster","description":"D\u00ebshirojm\u00eb t\u00eb ndajm\u00eb eksperienc\u00ebn ton\u00eb n\u00eb implementimin e platform\u00ebs p\u00ebr analiz\u00ebn dhe matjen e vazhdueshme t\u00eb cil\u00ebsis\u00eb s\u00eb kodit SonarQube n\u00eb proceset ekzistuese t\u00eb zhvillimit t\u00eb sistemit DPO (shtes\u00eb p\u00ebr sistemin e depozitave dhe p\u00ebrllogaritjeve \"Alameda\") t\u00eb Depozitarit Komb\u00ebtar. Depozitari Komb\u00ebtar (grupa e kompanive \"Bursa e Mosk\u00ebs\") \u00ebsht\u00eb nj\u00eb nga kompanit\u00eb ky\u00e7e t\u00eb infrastruktur\u00ebs financiare, q\u00eb ruan dhe llogarit tituj financiar\u00eb t\u00eb emetuesve rus\u00eb dhe t\u00eb huaj me nj\u00eb vler\u00eb m\u00eb shum\u00eb se","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-my-vnedrili-sonarqube-i-osoznali-ego-bolshoj-potenczial","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u0432\u043d\u0435\u0434\u0440\u0438\u043b\u0438 SonarQube \u0438 \u043e\u0441\u043e\u0437\u043d\u0430\u043b\u0438 \u0435\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b | ProHoster","og:description":"\u041c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043e\u043f\u044b\u0442\u043e\u043c \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043a\u043e\u0434\u0430 SonarQube \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0414\u041f\u041e (\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0434\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u043d\u043e-\u043a\u043b\u0438\u0440\u0438\u043d\u0433\u043e\u0432\u043e\u0433\u043e \u0443\u0447\u0435\u0442\u0430 \u00ab\u0410\u043b\u0430\u043c\u0435\u0434\u0430\u00bb) \u041d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u043e\u0433\u043e \u0434\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u0438\u044f. \u041d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u044b\u0439 \u0434\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u0438\u0439 (\u0433\u0440\u0443\u043f\u043f\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u00ab\u041c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u0430\u044f \u0431\u0438\u0440\u0436\u0430\u00bb) \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u043e\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0445\u0440\u0430\u043d\u0438\u0442 \u0438 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0446\u0435\u043d\u043d\u044b\u0435 \u0431\u0443\u043c\u0430\u0433\u0438 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0445 \u0438 \u0438\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0445 \u044d\u043c\u0438\u0442\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0441\u0443\u043c\u043c\u0443 \u0431\u043e\u043b\u0435\u0435","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-my-vnedrili-sonarqube-i-osoznali-ego-bolshoj-potenczial","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-10-19T18:42:40+00:00","article:modified_time":"2020-10-19T18:42:40+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"97620","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:16:26","updated":"2022-09-28 13:56:02"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/97620","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=97620"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/97620\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/97621"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=97620"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=97620"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=97620"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}