{"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\/de\/blog\/administrirovanie\/kak-my-vnedrili-sonarqube-i-osoznali-ego-bolshoj-potenczial","title":{"rendered":"Wie wir SonarQube implementiert haben und sein gro\u00dfes Potenzial erkannt haben","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Wie wir SonarQube implementiert haben und sein gro\u00dfes Potenzial erkannt haben\" src=\"\/wp-content\/uploads\/2020\/10\/81a4b69ed09d156ec71603b4bf32d587.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Wir m\u00f6chten unsere Erfahrungen mit der Implementierung der Plattform zur kontinuierlichen Analyse und Messung der Codequalit\u00e4t SonarQube in die bestehenden Entwicklungsprozesse des DPO-Systems (Erg\u00e4nzung zum Depot- und Clearing-System \u201eAlameda\u201c) der Nationalen Abwicklungsstelle teilen. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Die Nationale Abwicklungsstelle (Gruppe der Moskauer B\u00f6rse) ist eines der Schl\u00fcsselunternehmen der Finanzinfrastruktur und verwahrt und erfasst Wertpapiere russischer und ausl\u00e4ndischer Emittenten im Wert von \u00fcber 50 Billionen Rubel. Das wachsende Volumen der von der system durchgef\u00fchrten Operationen sowie die kontinuierliche Erweiterung der Funktionalit\u00e4t erfordern die Aufrechterhaltung einer hohen Qualit\u00e4t des Quellcodes der Systeme. Ein Instrument zur Erreichung dieses Ziels ist der statische Code-Analyzer SonarQube. In diesem Artikel beschreiben wir unsere erfolgreiche Erfahrung mit der nahtlosen Integration des statischen Analyzers SonarQube in die bestehenden Entwicklungsprozesse unserer Abteilung. <\/p>\n<p><\/p>\n<h3 id=\"kratko-ob-otdele\">Kurzes \u00fcber die Abteilung<\/h3>\n<p><\/p>\n<p>In unserem Kompetenzbereich befinden sich die folgenden Module: Zahlungen an Kunden der NRD, elektronischer Dokumentenverkehr (E-Dokumentation), Verarbeitung von Nachrichten des Handelsrepositories (Registrierung au\u00dferb\u00f6rslicher Gesch\u00e4fte), elektronische Kommunikationskan\u00e4le zwischen Kunden und NRD und vieles mehr. Insgesamt umfasst dies einen erheblichen Arbeiten an der technischen Seite der operativen T\u00e4tigkeiten. Wir arbeiten auf Basis von Anfragen. Die Anfragen der Operateure werden von Analysten bearbeitet: Sie sammeln die Anforderungen des Kunden und pr\u00e4sentieren uns ihre Vorstellungen, wie dies in das Programm integriert werden soll. Danach folgt das Standardverfahren: Codierung \u2013 Testen \u2013 Erprobungsbetrieb \u2013 Auslieferung des Codes an den direkten Kunden. <\/p>\n<p><\/p>\n<h3 id=\"pochemu-imenno-sonarqube\">Warum gerade SonarQube?<\/h3>\n<p><\/p>\n<p>Dies ist die erste Erfahrung unserer Abteilung bei der Implementierung einer Plattform zur Qualit\u00e4tskontrolle des Codes \u2013 zuvor haben wir dies manuell durchgef\u00fchrt und lediglich Code-Reviews gemacht. Doch das wachsende Arbeitsvolumen erfordert eine Automatisierung dieses Prozesses. Dar\u00fcber hinaus gibt es im Team auch unerfahrene Mitarbeiter, die nicht ganz mit den internen Entwicklungsrichtlinien vertraut sind und eher dazu neigen, Fehler zu machen. Um die Codequalit\u00e4t zu \u00fcberwachen, haben wir beschlossen, einen statischen Analyse-Tool einzuf\u00fchren. Da SonarQube bereits in einigen Systemen der NERD verwendet wurde, fiel die Wahl schnell. Zuvor analysierten Kollegen aus anderen Abteilungen damit den Code von Mikrodiensten im System \u201eAlameda\u201c (eigenes System f\u00fcr depot- und clearingtechnische Buchf\u00fchrung der NERD), in der CFT (Informationssystem zur F\u00fchrung der Buchhaltung, Bilanz sowie zur Erstellung der Pflicht- und internen Berichterstattung) und in einigen anderen Systemen. F\u00fcr Experimente haben wir uns entschieden, mit der kostenlosen Version von SonarQube zu beginnen. Lassen Sie uns also zu unserem Fall \u00fcbergehen.<\/p>\n<p><\/p>\n<h2 id=\"process-vnedreniya\">Implementierungsprozess<\/h2>\n<p><\/p>\n<p><strong>Wir haben<\/strong>:<\/p>\n<p><\/p>\n<ul>\n<li>automatische Systembuild in TeamCity;<\/li>\n<li>der Prozess des Code-Uploads durch MergeRequest von der Feature-Branch in die Master-Branch in GitLab ist eingerichtet (Entwicklungsprozess gem\u00e4\u00df GitHub Flow);<\/li>\n<li>SonarQube, konfiguriert zur Code-Analyse des DPO-Systems nach einem Zeitplan.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Unser Ziel<\/strong>: die automatisierte Code-Analyse in die CI\/CD-Prozesse des DPO zu integrieren.<\/p>\n<p><\/p>\n<p><strong>Einstellungen anpassen<\/strong>: der Prozess der automatischen Code\u00fcberpr\u00fcfung durch einen statischen Analyzer bei jedem Merge Request in den Hauptzweig.<\/p>\n<p><\/p>\n<p>Das Ziel ist folgendes: Sobald ein Entwickler \u00c4nderungen in den Feature-Zweig einpflegt, wird eine automatische \u00dcberpr\u00fcfung auf neue Fehler im Code ausgel\u00f6st. Wenn keine Fehler vorhanden sind, wird das Einpflegen der \u00c4nderungen genehmigt; andernfalls m\u00fcssen die Fehler behoben werden. Bereits in der Anfangsphase konnten wir eine bestimmte Anzahl an Fehlern im Code identifizieren. Das System bietet sehr flexible Einstellungen: Es kann so konfiguriert werden, dass es f\u00fcr die spezifischen Anforderungen der Entwickler sowie f\u00fcr jedes System und jeden Programmierstil funktioniert. <\/p>\n<p><\/p>\n<h3 id=\"nastroyka-qualitygate-v-sonarqube\">QualityGate-Konfiguration in SonarQube<\/h3>\n<p><\/p>\n<p>Die Analyse des QualityGate ist eine Erkenntnis, die wir aus den Tiefen des Internets gewonnen haben. Anfangs verfolgten wir einen anderen, komplizierteren und in gewisser Weise ungenauen Ansatz. Zun\u00e4chst f\u00fchrten wir zweimal Scans \u00fcber SonarQube durch: wir scannten den Feature-Branch und den Branch, in den wir den Feature-Branch einpflegen wollten, und verglichen dann die Anzahl der Fehler. Diese Methode war nicht stabil und lieferte nicht immer korrekte Ergebnisse. Dann erfuhren wir, dass wir anstelle eines doppelten Durchlaufs von SonarQube ein Limit f\u00fcr die zul\u00e4ssige Anzahl von Fehlern (QualityGate) setzen und nur den Branch analysieren konnten, den wir einpflegen und vergleichen m\u00f6chten.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Wie wir SonarQube implementiert haben und sein gro\u00dfes Potenzial erkannt haben\" src=\"\/wp-content\/uploads\/2020\/10\/1d1def0ca40039b0c61315d3b3833a33.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Derzeit verwenden wir noch eine ziemlich primitive Code-\u00dcberpr\u00fcfung. Es ist erw\u00e4hnenswert, dass SonarQube mit einigen Programmiersprachen, einschlie\u00dflich Delphi, nicht kompatibel ist. Aktuell analysieren wir nur PL\/SQL-Code f\u00fcr unser System.<\/p>\n<p><\/p>\n<p>So funktioniert das:<\/p>\n<p><\/p>\n<ul>\n<li>Wir analysieren f\u00fcr unser Projekt nur PL\/SQL-Code.<\/li>\n<li>Im SonarQube ist das QualityGate so konfiguriert, dass die Anzahl der Fehler mit jedem Commit nicht zunimmt. <\/li>\n<li>Bei unserem ersten Scan sind 229 Fehler aufgetreten. Wenn die Anzahl der Fehler beim Commit steigt, wird der Merge nicht genehmigt. <\/li>\n<li>Nach der Behebung der Fehler kann das QualityGate neu konfiguriert werden. <\/li>\n<li>Es k\u00f6nnen auch neue Punkte zur Analyse hinzugef\u00fcgt werden, wie z.B. die Testabdeckung des Codes usw.<\/li>\n<\/ul>\n<p><\/p>\n<p>Ablaufdiagramm:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Wie wir SonarQube implementiert haben und sein gro\u00dfes Potenzial erkannt haben\" src=\"\/wp-content\/uploads\/2020\/10\/f904169fa87e9cfb75016c1fae4104f1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>In den Kommentaren der Skriptausf\u00fchrung ist zu sehen, dass die Anzahl der Fehler im Feature-Branch nicht gestiegen ist. Das bedeutet, alles ist in Ordnung.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Wie wir SonarQube implementiert haben und sein gro\u00dfes Potenzial erkannt haben\" src=\"\/wp-content\/uploads\/2020\/10\/004edf78aa787a2a8f6d376f64049a92.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Der Merge-Button wird verf\u00fcgbar.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Wie wir SonarQube implementiert haben und sein gro\u00dfes Potenzial erkannt haben\" src=\"\/wp-content\/uploads\/2020\/10\/7870448b9c13242f8e81f44bfd91d503.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>In den Kommentaren der Skriptausf\u00fchrung ist zu sehen, dass die Anzahl der Fehler im Feature-Branch den zul\u00e4ssigen Wert \u00fcberschritten hat. Das bedeutet, es ist schlecht.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Wie wir SonarQube implementiert haben und sein gro\u00dfes Potenzial erkannt haben\" src=\"\/wp-content\/uploads\/2020\/10\/b18eb07b5d46ee4cf0b71b28dfec92cc.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Der Merge-Button ist rot. Momentan gibt es kein Verbot, \u00c4nderungen mit fehlerhaftem Code zu pushen, jedoch liegt dies im Ermessen des zust\u00e4ndigen Entwicklers. Zuk\u00fcnftig kann das Einpflegen solcher Commits in den Hauptbranch untersagt werden.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Wie wir SonarQube implementiert haben und sein gro\u00dfes Potenzial erkannt haben\" 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\">Eigenst\u00e4ndige Bearbeitung der Fehler<\/h3>\n<p><\/p>\n<p>Es ist notwendig, alle vom System aufgedeckten Fehler zu \u00fcberpr\u00fcfen, da SonarQube nach seinen strengen Standards analysiert. Was er als Fehler ansieht, muss daher nicht unbedingt ein tats\u00e4chlicher Fehler in unserem Code sein. Deshalb ist eine Pr\u00fcfung und Kennzeichnung erforderlich, um festzustellen, ob es sich wirklich um einen Fehler handelt oder ob in unseren Bedingungen keine \u00c4nderungen n\u00f6tig sind. Auf diese Weise reduzieren wir die Anzahl der Fehler. Im Laufe der Zeit wird das System lernen, diese Nuancen zu verstehen. <\/p>\n<p><\/p>\n<h2 id=\"k-chemu-my-prishli\">Was wir erreicht haben<\/h2>\n<p><\/p>\n<p>Unser Ziel war es zu verstehen, ob es sinnvoll ist, die Codepr\u00fcfung zu automatisieren. Das Ergebnis hat unsere Erwartungen \u00fcbertroffen. SonarQube erm\u00f6glicht es uns, mit den von uns ben\u00f6tigten Programmiersprachen zu arbeiten, bietet eine vern\u00fcnftige Analyse und hat das Potenzial, aus den Hinweisen der Entwickler zu lernen. Insgesamt sind wir mit unserer ersten Erfahrung mit SonarQube zufrieden und planen, in diesem Bereich weiterzuentwickeln. Wir erwarten, dass wir in Zukunft mehr Zeit und Ressourcen bei der Codepr\u00fcfung einsparen und die Qualit\u00e4t verbessern k\u00f6nnen, indem wir den menschlichen Faktor ausschlie\u00dfen. M\u00f6glicherweise werden wir im Verlauf einige Nachteile der Plattform entdecken oder, umgekehrt, uns erneut davon \u00fcberzeugen, dass es sich um ein gro\u00dfartiges Tool mit gro\u00dfem Potenzial handelt. <\/p>\n<p><\/p>\n<p>In diesem \u00dcberblicksartikel haben wir \u00fcber unsere Bekanntschaft mit dem statischen Analyse-Tool SonarQube berichtet. Wenn Sie Fragen haben, schreiben Sie bitte in die Kommentare. Wenn Sie an diesem Thema interessiert sind, werden wir in einer neuen Ver\u00f6ffentlichung detaillierter erl\u00e4utern, wie Sie alles richtig einrichten und Code schreiben, um eine solche Pr\u00fcfung durchzuf\u00fchren. <\/p>\n<p><\/p>\n<p>Autor des Textes: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/atanya\/\" class=\"user_link\">atanya<\/a><\/noindex><\/p>\n<p>Quelle: <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\/de\/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=\"de_DE\" \/>\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\/de\/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\udd47Wie wir SonarQube eingef\u00fchrt haben und sein gro\u00dfes Potenzial erkannt haben | ProHoster","description":"Wir m\u00f6chten unsere Erfahrungen mit der Einf\u00fchrung der Plattform zur kontinuierlichen Analyse und Messung der Codequalit\u00e4t SonarQube in die bestehenden Entwicklungsprozesse des DPO-Systems (Erg\u00e4nzung zum System der Depot- und Clearingbuchhaltung \u201eAlameda\u201c) des Nationalen Abrechnungseinrichtungs teilen. Die Nationale Abrechnungseinrichtung (Gruppe der Unternehmen \u201eMoskauer B\u00f6rse\u201c) ist eines der Schl\u00fcsselunternehmen der Finanzinfrastruktur und verwahrt sowie verwaltet Wertpapiere von russischen und ausl\u00e4ndischen Emittenten im Wert von \u00fcber","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-my-vnedrili-sonarqube-i-osoznali-ego-bolshoj-potenczial","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/97620","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=97620"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/97620\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/97621"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=97620"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=97620"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=97620"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}