{"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 e 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 e 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 e 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 ekzistuese t\u00eb zhvillimit t\u00eb sistemit DPO (shtes\u00eb p\u00ebr sistemin e llogarive depozitare dhe clearings \u00abAlameda\u00bb) t\u00eb Depositarit t\u00eb Kuvendit Komb\u00ebtar. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Depositar i Kuvendit Komb\u00ebtar (grupi i kompanive \u00abBursa e Mosk\u00ebs\u00bb) \u00ebsht\u00eb nj\u00eb nga kompanit\u00eb ky\u00e7e t\u00eb infrastruktur\u00ebs financiare, ruan dhe llogarit titujt e pron\u00ebsis\u00eb s\u00eb emituar nga kompani ruse dhe t\u00eb huaja me nj\u00eb vler\u00eb mbi 50 trilion rubla. Rritja e volumit t\u00eb operacioneve q\u00eb sistemi kryen, si dhe rritja e vazhdueshme e funksionalitetit k\u00ebrkon mbajtjen e cil\u00ebsis\u00eb s\u00eb lart\u00eb t\u00eb kodit burimor t\u00eb sistemeve. Nj\u00eb nga mjetet p\u00ebr arritjen e k\u00ebtij q\u00ebllimi \u00ebsht\u00eb analisti statik SonarQube. N\u00eb k\u00ebt\u00eb artikull do t\u00eb p\u00ebrshkruajm\u00eb p\u00ebrvoj\u00ebn ton\u00eb t\u00eb suksesshme p\u00ebr integrimin pa probleme t\u00eb analistit 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 moduli t\u00eb ndrysh\u00ebm: pagesat p\u00ebr klient\u00ebt e NRD, dokumentet elektronike (EDO), p\u00ebrpunimi i mesazheve t\u00eb depozitit tregtar (regjistrimi i transaksioneve jasht\u00eb burs\u00ebs), kanalet e bashk\u00ebpunimit elektronik mes klient\u00ebve dhe NRD e shum\u00eb t\u00eb tjera. N\u00eb p\u00ebrgjith\u00ebsi, \u00ebsht\u00eb nj\u00eb pun\u00eb e madhe mbi faqen teknike t\u00eb aktivitetit operativ. Ne punojm\u00eb mbi baz\u00ebn e k\u00ebrkesave. K\u00ebrkesat e operator\u00ebve p\u00ebrpunohen nga analist\u00ebt: ata mbledhin k\u00ebrkesat e klient\u00ebve dhe na paraqesin vizionin e tyre se si duhet t\u00eb materializohet n\u00eb program. Pastaj, skema standarde: zhvillimi i kodit \u2013 testimi \u2013 eksplorimi pilot \u2013 dor\u00ebzimi i kodit n\u00eb linj\u00ebn produktive p\u00ebr klientin p\u00ebrkat\u00ebs. <\/p>\n<p><\/p>\n<h3 id=\"pochemu-imenno-sonarqube\">Pse SonarQube?<\/h3>\n<p><\/p>\n<p>Ky \u00ebsht\u00eb p\u00ebrvoja e par\u00eb e departamentit ton\u00eb n\u00eb zbatuar nj\u00eb platform\u00eb p\u00ebr kontrollin e cil\u00ebsis\u00eb s\u00eb kodit \u2013 m\u00eb par\u00eb e b\u00ebm\u00eb k\u00ebt\u00eb manualisht, duke kryer vet\u00ebm kontrollin e kodit. 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 pakualifikuar, t\u00eb cil\u00ebt nuk jan\u00eb t\u00eb njohur me rregullat e brendshme t\u00eb zhvillimit dhe jan\u00eb m\u00eb t\u00eb prirur t\u00eb b\u00ebjn\u00eb gabime. P\u00ebr kontrollin e cil\u00ebsis\u00eb s\u00eb kodit, u vendos t\u00eb implementohet nj\u00eb analizues statik. Duke qen\u00eb se SonarQube ishte p\u00ebrdorur tashm\u00eb n\u00eb disa sisteme t\u00eb NRD-s\u00eb, nuk u desh shum\u00eb koh\u00eb p\u00ebr t\u00eb zgjedhur. M\u00eb par\u00eb, koleg\u00ebt nga departamente t\u00eb tjera kishin analizuar me ndihm\u00ebn e tij kodin e mikrosh\u00ebrbimeve n\u00eb sistemin \"Alemida\" (sistemi yn\u00eb p\u00ebr regjistrimin dhe llogarit\u00eb depozitare t\u00eb NRD-s\u00eb), n\u00eb CFT (sistemi informativ p\u00ebr mbajtjen e llogarive t\u00eb k\u00ebrkesave, 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\u00ebrtime automatike t\u00eb sistemit n\u00eb TeamCity;<\/li>\n<li>procesi i ngarkimit t\u00eb kodit p\u00ebrmes MergeRequest nga dega feature n\u00eb dega master n\u00eb GitLab (procesi i zhvillimit sipas GitHub Flow);<\/li>\n<li>SonarQube, i konfiguruar p\u00ebr analizimin e kodit p\u00ebr sistemin DPO sipas nj\u00eb orari.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Q\u00ebllimi yn\u00eb<\/strong>: t\u00eb implementohet analiza automatike e kodit n\u00eb proceset CI\/CD t\u00eb DPO-s\u00eb.<\/p>\n<p><\/p>\n<p><strong>Duhet t\u00eb konfigurohet<\/strong>: procesi i kontrollit automatike t\u00eb kodit me analizuesin statik p\u00ebr \u00e7do MergeRequest n\u00eb deg\u00ebn kryesore.<\/p>\n<p><\/p>\n<p>Pra, pamja e synuar \u00ebsht\u00eb k\u00ebshtu: sa her\u00eb q\u00eb zhvilluesi ngarkon ndryshime n\u00eb dega feature, fillon nj\u00eb kontroll automatike p\u00ebr gabime t\u00eb reja n\u00eb kod. N\u00ebse nuk ka gabime, lejohet miratimi i ndryshimeve, p\u00ebrndryshe do t\u00eb duhet t\u00eb korrigjohen gabimet. Q\u00eb n\u00eb faz\u00ebn fillestare, arrit\u00ebm t\u00eb identifikojm\u00eb nj\u00eb num\u00ebr t\u00eb caktuar gabimesh n\u00eb kod. Sistemi ka konfigurime shum\u00eb fleksibile: mund t\u00eb konfigurohet n\u00eb m\u00ebnyr\u00eb q\u00eb 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 QualityGate \u00ebsht\u00eb nj\u00eb gj\u00eb q\u00eb e p\u00ebrmend\u00ebm n\u00eb thell\u00ebsi t\u00eb internetit. Fillimisht p\u00ebrdor\u00ebm nj\u00eb qasje tjet\u00ebr, m\u00eb komplekse dhe nga nj\u00eb k\u00ebndv\u00ebshtrim, jo krejt\u00ebsisht t\u00eb sakt\u00eb. S\u00eb pari, b\u00ebm\u00eb dy her\u00eb skanimin p\u00ebrmes SonarQube: skanuam deg\u00ebn e ve\u00e7orive dhe deg\u00ebn ku do t\u00eb futnim deg\u00ebn e ve\u00e7orive, pastaj krahasuam numrin e gabimeve. Ky metod\u00eb nuk ishte i q\u00ebndruesh\u00ebm dhe nuk jepte gjithmon\u00eb rezultatet e sakta. Pastaj m\u00ebsuam se mund 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 ngrem\u00eb dhe e krahasojm\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Si e 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>P\u00ebr momentin, ne ende p\u00ebrdorim nj\u00eb verifikim t\u00eb thjesht\u00eb t\u00eb kodit. Duhet theksuar se SonarQube nuk \u00ebsht\u00eb n\u00eb p\u00ebrputhje me disa gjuh\u00eb programimi, duke p\u00ebrfshir\u00eb Delphi. Aktualisht p\u00ebr sistemin ton\u00eb analizojm\u00eb vet\u00ebm kodin PLSql.<\/p>\n<p><\/p>\n<p>Kjo ndodh k\u00ebshtu:<\/p>\n<p><\/p>\n<ul>\n<li>P\u00ebr projektin ton\u00eb analizojm\u00eb vet\u00ebm kodin PL\/SQL.<\/li>\n<li>N\u00eb SonarQube \u00ebsht\u00eb vendosur QualityGate n\u00eb nj\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 e arriti 229. N\u00ebse numri i gabimeve rritet me komitin, at\u00ebher\u00eb merge nuk lejohet. <\/li>\n<li>Pastaj, n\u00ebse gabimet korrigjohen, mund t\u00eb rikonfigurohet QualityGate. <\/li>\n<li>Po ashtu, mund t\u00eb shtohen pika t\u00eb reja p\u00ebr analiz\u00eb, si\u00e7 \u00ebsht\u00eb mbulimi i kodit me teste etj.<\/li>\n<\/ul>\n<p><\/p>\n<p>Skema e pun\u00ebs:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Si e 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 shihet q\u00eb numri i gabimeve n\u00eb deg\u00ebn e ve\u00e7orive nuk \u00ebsht\u00eb rritur. K\u00ebshtu q\u00eb gjith\u00e7ka \u00ebsht\u00eb n\u00eb rregull.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Si e 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>B\u00ebnte e disponueshme butonin Merge.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Si e 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 shihet se numri i gabimeve n\u00eb deg\u00ebn e ve\u00e7orive ka tejkaluar kufirin e pranuesh\u00ebm. K\u00ebshtu q\u00eb gjith\u00e7ka \u00ebsht\u00eb keq.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Si e 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. Aktualisht nuk ka ndalim p\u00ebr t\u00eb shp\u00ebrndar\u00eb ndryshimet p\u00ebr kodin me gabime, por kjo b\u00ebhet sipas vendimit t\u00eb zhvilluesit t\u00eb p\u00ebrgjegjsh\u00ebm. N\u00eb t\u00eb ardhmen, mund t\u00eb ndalohet b\u00ebrja e komiteve t\u00eb tilla n\u00eb deg\u00ebn kryesore.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Si e 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\">Puna e pavarur mbi gabimet<\/h3>\n<p><\/p>\n<p>Pastaj \u00ebsht\u00eb e nevojshme t\u00eb kontrolloni t\u00eb gjitha gabimet e shkaktuara nga sistemi, sepse SonarQube analizon sipas standardeve t\u00eb tij strikte. Ajo q\u00eb ai e sheh si gabim, n\u00eb kodin ton\u00eb ndoshta nuk \u00ebsht\u00eb e till\u00eb. Prandaj, duhet t\u00eb kontrollojm\u00eb dhe t\u00eb sh\u00ebnojm\u00eb, n\u00ebse \u00ebsht\u00eb v\u00ebrtet gabim, ose n\u00ebse \u00ebsht\u00eb di\u00e7ka q\u00eb n\u00eb kushtet tona nuk ka nevoj\u00eb t\u00eb korrigjohet. K\u00ebshtu 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\">\u00c7far\u00eb arrijm\u00eb<\/h2>\n<p><\/p>\n<p>Q\u00ebllimi yn\u00eb ishte t\u00eb kuptonim n\u00ebse ishte e arsyeshme n\u00eb rastin ton\u00eb t\u00eb shnd\u00ebrronim kontrollin e kodit n\u00eb automatizim. Dhe rezultati e justifikoi 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 sakt\u00eb dhe ka potencialin p\u00ebr t'u m\u00ebsuar nga sugjerimet e zhvilluesve. N\u00eb p\u00ebrgjith\u00ebsi, 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. Prandaj, 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 ta b\u00ebjm\u00eb at\u00eb m\u00eb cil\u00ebsor, duke eliminuar faktor\u00ebt njer\u00ebzor\u00eb. Ndoshta, gjat\u00eb procesit, do t\u00eb zbulojm\u00eb mang\u00ebsi t\u00eb platform\u00ebs ose, p\u00ebrndryshe, do t\u00eb konfirmojm\u00eb s\u00ebrish se kjo \u00ebsht\u00eb nj\u00eb gj\u00eb e shk\u00eblqyer me shum\u00eb potencial. <\/p>\n<p><\/p>\n<p>N\u00eb k\u00ebt\u00eb artikull p\u00ebrmbledh\u00ebs, ne b\u00ebm\u00eb t\u00eb njohur SonarQube, analizuesin statik. N\u00ebse keni pyetje, ju lutemi shkruani n\u00eb komentet. N\u00ebse jeni t\u00eb interesuar n\u00eb k\u00ebt\u00eb tem\u00eb, n\u00eb nj\u00eb publikim t\u00eb ri do t\u00eb p\u00ebrshkruajm\u00eb m\u00eb n\u00eb detaje si t\u00eb vendosni gjith\u00e7ka si\u00e7 duhet dhe t\u00eb shkruani kodin n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb b\u00ebni 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 5.0.2.1 - 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.\" \/>\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) 5.0.2.1\" \/>\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.\" \/>\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":"Duam t\u00eb ndajm\u00eb.","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.","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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"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}]}}