Как Π²Π½Π΅Π΄Ρ€ΠΈΡ…ΠΌΠ΅ SonarQube ΠΈ ΠΎΡΡŠΠ·Π½Π°Ρ…ΠΌΠ΅ нСговия голям ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»

Как Π²Π½Π΅Π΄Ρ€ΠΈΡ…ΠΌΠ΅ SonarQube ΠΈ ΠΎΡΡŠΠ·Π½Π°Ρ…ΠΌΠ΅ нСговия голям ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»

ИскамС Π΄Π° сподСлим ΠΎΠΏΠΈΡ‚ с внСдряванСто Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ Π°Π½Π°Π»ΠΈΠ· ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€Π²Π°Π½Π΅ Π½Π° качСството Π½Π° ΠΊΠΎΠ΄Π° SonarQube Π² ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅ процСси Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° систСмата Π”ΠŸΠž (допълнСниС към систСмата Π·Π° Π΄Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€Π½ΠΎ-ΠΊΠ»ΠΈΡ€ΠΈΠ½Π³ΠΎΠ²ΠΎ ΠΎΡ‚Ρ‡ΠΈΡ‚Π°Π½Π΅ "АламСда") Π½Π° Националния расчСтСн Π΄Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€.

Националният расчСтСн Π΄Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ (Π³Ρ€ΡƒΠΏΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ "Московска борса") Π΅ Π΅Π΄Π½Π° ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ във финансовата инфраструктура, ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° ΠΈ отбСлязва Ρ†Π΅Π½Π½ΠΈ ΠΊΠ½ΠΈΠΆΠ° Π½Π° руски ΠΈ чуТдСстранни Π΅ΠΌΠΈΡ‚Π΅Π½Ρ‚ΠΈ Π½Π° стойност Π½Π°Π΄ 50 Ρ‚Ρ€Π»Π½ Ρ€ΡƒΠ±Π»ΠΈ. Растящият ΠΎΠ±Π΅ΠΌ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅, ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½ΠΈ ΠΎΡ‚ систСмата, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ΠΎΡ‚ΠΎ Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Π½Π΅ Π½Π° функционалността изискват ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅ Π½Π° високо качСство Π½Π° изходния ΠΊΠΎΠ΄ Π½Π° систСмитС. Π•Π΄ΠΈΠ½ ΠΎΡ‚ инструмСнтитС Π·Π° постиганС Π½Π° Ρ‚Π°Π·ΠΈ Ρ†Π΅Π» Π΅ статичният Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ SonarQube. Π’ Ρ‚Π°Π·ΠΈ статия Ρ‰Π΅ опишСм ΡƒΡΠΏΠ΅ΡˆΠ½ΠΈΡ ΠΎΠΏΠΈΡ‚ Π·Π° Π±Π΅Π·ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎ внСдряванС Π½Π° статичния Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ SonarQube Π² ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅ процСси Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π² нашия ΠΎΡ‚Π΄Π΅Π».

ΠšΡ€Π°Ρ‚ΠΊΠΎ Π·Π° ΠΎΡ‚Π΄Π΅Π»Π°

Π’ Π½Π°ΡˆΠ°Ρ‚Π° компСтСнция са слСднитС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ: плащания Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° НРД, Π΅Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π΅Π½ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΎΠ±ΠΎΡ€ΠΎΡ‚ (Π•Π”Πž), ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ ΠΎΡ‚ Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠΈΡ Π΄Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ (рСгистрация Π½Π° ΠΈΠ·Π²ΡŠΠ½Π±ΠΎΡ€ΡΠΎΠ²ΠΈ сдСлки), ΠΊΠ°Π½Π°Π»ΠΈ Π·Π° Π΅Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΠΎ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ ΠΈ НРД ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ. Π’ ΠΎΠ±Ρ‰ΠΈ Π»ΠΈΠ½ΠΈΠΈ, голямо количСство Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ тСхничСската страна Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ‚Π° дСйност. Π Π°Π±ΠΎΡ‚ΠΈΠΌ Π½Π° основата Π½Π° заявки. ЗаявкитС Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ ΠΎΡ‚ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈ: Ρ‚Π΅ ΡΡŠΠ±ΠΈΡ€Π°Ρ‚ изискванията Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ Π½ΠΈ прСдставят своСто Π²ΠΈΠΆΠ΄Π°Π½Π΅ Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π° бъдС ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°. Π‘Π»Π΅Π΄Π²Π°Ρ‚ стандартнитС ΡΡ‚ΡŠΠΏΠΊΠΈ: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΊΠΎΠ΄ – тСстванС – ΠΎΠΏΠΈΡ‚Π½Π° Сксплоатация – доставка Π½Π° ΠΊΠΎΠ΄Π° Π·Π° продуктивния ΠΊΠΎΠ½Ρ‚ΡƒΡ€ Π½Π° нСпосрСдствСния ΠΊΠ»ΠΈΠ΅Π½Ρ‚.

Π—Π°Ρ‰ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ SonarQube?

Π’ΠΎΠ²Π° Π΅ ΠΏΡŠΡ€Π²ΠΈΡΡ‚ ΠΎΠΏΠΈΡ‚ Π½Π° нашия ΠΎΡ‚Π΄Π΅Π» Π·Π° внСдряванС Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° качСството Π½Π° ΠΊΠΎΠ΄Π° – ΠΏΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° Π³ΠΎ ΠΏΡ€Π°Π²Π΅Ρ…ΠΌΠ΅ Ρ€ΡŠΡ‡Π½ΠΎ, ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°ΠΉΠΊΠΈ само ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Ρ€Π΅Π²ΡŽΡ‚Π°. Но увСличаващият сС ΠΎΠ±Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π° изисква автоматизация Π½Π° Ρ‚ΠΎΠ·ΠΈ процСс. ОсвСн Ρ‚ΠΎΠ²Π°, Π² Π΅ΠΊΠΈΠΏΠ° ΠΈΠΌΠ° ΠΈ Π½Π΅ΠΎΠΏΠΈΡ‚Π½ΠΈ слуТитСли, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са напълно Π·Π°ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ с Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° ΠΈ чСсто допускат ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π³Ρ€Π΅ΡˆΠΊΠΈ. Π—Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° качСството Π½Π° ΠΊΠΎΠ΄Π° бСшС Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π΄Π° сС Π²Π½Π΅Π΄Ρ€ΠΈ статичСн Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€. Въй ΠΊΠ°Ρ‚ΠΎ SonarQube Π²Π΅Ρ‡Π΅ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² някои систСми Π½Π° НРД, ΠΈΠ·Π±ΠΎΡ€ΡŠΡ‚ Π½Π΅ ΠΎΡ‚Π½Π΅ дълго Π²Ρ€Π΅ΠΌΠ΅. По-Ρ€Π°Π½ΠΎ ΠΊΠΎΠ»Π΅Π³ΠΈΡ‚Π΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈ подраздСлСния Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ…Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π½Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° микросСрвизитС Π² систСмата β€žΠΠ»Π°ΠΌΠ΅Π½Π°β€œ (собствСна систСма Π·Π° Π΄Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€Π½ΠΎ-ΠΊΠ»ΠΈΡ€ΠΈΠ½Π³ΠΎΠ²ΠΎ ΠΎΡ‚Ρ‡ΠΈΡ‚Π°Π½Π΅ Π½Π° НРД), Π² Π¦Π€Π’ (ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Π° систСма Π·Π° Π²ΠΎΠ΄Π΅Π½Π΅ Π½Π° счСтоводство, баланс, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π½Π° Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½Π° ΠΈ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½Π° отчСтност), ΠΈ Π² някои Π΄Ρ€ΡƒΠ³ΠΈ систСми. Π—Π° СкспСримСнти Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ с Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π½Π°Ρ‚Π° вСрсия Π½Π° SonarQube. И Ρ‚Π°ΠΊΠ°, Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌ към нашия случай.

ΠŸΡ€ΠΎΡ†Π΅Ρ Π½Π° внСдряванС

ИмамС:

  • Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° систСмата Π² TeamCity;
  • настроСн Π΅ ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° ΠΊΠ°Ρ‡Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Ρ‡Ρ€Π΅Π· MergeRequest ΠΎΡ‚ feature-ΠΊΠ»ΠΎΠ½ Π² master-ΠΊΠ»ΠΎΠ½ Π² GitLab (процСс Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° съгласно GitHub Flow);
  • SonarQube, настроСн Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° ΠΊΠΎΠ΄Π° Π·Π° систСмата Π”ΠŸΠž ΠΏΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊ.

ΠΠ°ΡˆΠ°Ρ‚Π° Ρ†Π΅Π»: внСдряванС Π½Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅Π½ Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΊΠΎΠ΄Π° Π² CI/CD процСситС Π½Π° Π”ΠŸΠž.

Врябва Π΄Π° настроим: процСс Π½Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅Π½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° ΠΊΠΎΠ΄Π° със статичСн Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈ всСки MergeRequest Π² основния ΠΊΠ»ΠΎΠ½.

Π’.Π΅. Ρ†Π΅Π»Π΅Π²Π°Ρ‚Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π° Π΅ слСдната: Ρ‰ΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ ΠΊΠ°Ρ‡ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² feature-ΠΊΠ»ΠΎΠ½Π°, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ сС стартира ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π° Π½ΠΎΠ²ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² ΠΊΠΎΠ΄Π°. Ако няма Π³Ρ€Π΅ΡˆΠΊΠΈ, сС Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π²Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅, ΠΈΠ½Π°Ρ‡Π΅ Ρ‰Π΅ трябва Π΄Π° сС поправят Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅. Π’Π΅Ρ‡Π΅ Π² началния Π΅Ρ‚Π°ΠΏ успяхмС Π΄Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°ΠΌΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ количСство Π³Ρ€Π΅ΡˆΠΊΠΈ Π² ΠΊΠΎΠ΄Π°. БистСмата ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ гъвкави настройки: ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π° Ρ‚Π°ΠΊΠ°, Ρ‡Π΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅, Π·Π° всяка систСма ΠΈ стил Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅.

Настройка Π½Π° QualityGate Π² SonarQube

Анализ QualityGate Π΅ Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‡Π΅Ρ‚ΠΎΡ…ΠΌΠ΅ Π² Π΄ΡŠΠ»Π±ΠΈΠ½ΠΈΡ‚Π΅ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. ΠŸΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ Π΄Ρ€ΡƒΠ³ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΏΠΎ-слоТСн ΠΈ ΠΎΡ‚ някаква страна Π½Π΅ съвсСм ΠΏΡ€Π°Π²ΠΈΠ»Π΅Π½. ΠŸΡŠΡ€Π²ΠΎ Π΄Π²Π° ΠΏΡŠΡ‚ΠΈ стартирахмС сканиранС ΠΏΡ€Π΅Π· SonarQube: сканирахмС feature ΠΊΠ»ΠΎΠ½ ΠΈ ΠΊΠ»ΠΎΠ½Π°, Π² ΠΊΠΎΠΉΡ‚ΠΎ искахмС Π΄Π° слССм feature ΠΊΠ»ΠΎΠ½Π°, Π° слСд Ρ‚ΠΎΠ²Π° сравнявахмС броя Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅. Π’ΠΎΠ·ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ бСшС стабилСн ΠΈ Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ давашС ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ. И слСд Ρ‚ΠΎΠ²Π° Π½Π°ΡƒΡ‡ΠΈΡ…ΠΌΠ΅, Ρ‡Π΅ вмСсто Π΄Π²ΠΎΠΉΠ½ΠΎ стартиранС Π½Π° SonarQube, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° настроим Π»ΠΈΠΌΠΈΡ‚ Π½Π° допустимитС Π³Ρ€Π΅ΡˆΠΊΠΈ (QualityGate) ΠΈ Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ само ΠΊΠ»ΠΎΠ½Π°, ΠΊΠΎΠΉΡ‚ΠΎ ΠΊΠ°Ρ‡Π²Π°ΠΌΠ΅ ΠΈ сравнявамС.

Как Π²Π½Π΅Π΄Ρ€ΠΈΡ…ΠΌΠ΅ SonarQube ΠΈ ΠΎΡΡŠΠ·Π½Π°Ρ…ΠΌΠ΅ нСговия голям ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»

ВсС ΠΎΡ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ доста ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΊΠΎΠ΄Π°. Π‘Π»Π΅Π΄Π²Π° Π΄Π° ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈΠΌ, Ρ‡Π΅ SonarQube Π½Π΅ Π΅ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ с някои Π΅Π·ΠΈΡ†ΠΈ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Delphi. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ само PLSql ΠΊΠΎΠ΄ Π·Π° Π½Π°ΡˆΠ°Ρ‚Π° систСма.

Π Π°Π±ΠΎΡ‚ΠΈ Ρ‚Π°ΠΊΠ°:

  • АнализирамС само PL/SQL ΠΊΠΎΠ΄ Π·Π° нашия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.
  • QualityGate Π² SonarQube Π΅ настроСн Ρ‚Π°ΠΊΠ°, Ρ‡Π΅ броят Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ Π΄Π° Π½Π΅ сС ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° с всСки ΠΊΠΎΠΌΠΈΡ‚.
  • Броят Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ ΠΏΡ€ΠΈ ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ стартиранС бСшС 229. Ако броят Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ ΠΏΡ€ΠΈ ΠΊΠΎΠΌΠΈΡ‚Π° нараства, Ρ‚ΠΎ сливанСто Π½Π΅ сС Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π²Π°.
  • Π‘Π»Π΅Π΄ ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠ°Ρ‚Π° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ QualityGate ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΡ€Π΅ΠΏΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΎ.
  • Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ°, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС добавят Π½ΠΎΠ²ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π·Π° Π°Π½Π°Π»ΠΈΠ·, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠΊΡ€ΠΈΡ‚ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄Π° с тСстовС ΠΈ Ρ‚.Π½.

Π‘Ρ…Π΅ΠΌΠ° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°:

Как Π²Π½Π΅Π΄Ρ€ΠΈΡ…ΠΌΠ΅ SonarQube ΠΈ ΠΎΡΡŠΠ·Π½Π°Ρ…ΠΌΠ΅ нСговия голям ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»

Π’ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅ ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° скрипта сС Π²ΠΈΠΆΠ΄Π°, Ρ‡Π΅ броят Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ Π² feature ΠΊΠ»ΠΎΠ½Π° Π½Π΅ сС Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ». Π—Π½Π°Ρ‡ΠΈ всичко Π΅ Π½Π°Ρ€Π΅Π΄.

Как Π²Π½Π΅Π΄Ρ€ΠΈΡ…ΠΌΠ΅ SonarQube ΠΈ ΠΎΡΡŠΠ·Π½Π°Ρ…ΠΌΠ΅ нСговия голям ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»

Π”ΠΎΡΡ‚ΡŠΠΏΠ½Π° Π΅ Π±ΡƒΡ‚ΠΎΠ½ΡŠΡ‚ Merge.

Как Π²Π½Π΅Π΄Ρ€ΠΈΡ…ΠΌΠ΅ SonarQube ΠΈ ΠΎΡΡŠΠ·Π½Π°Ρ…ΠΌΠ΅ нСговия голям ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»

Π’ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅ ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° скрипта сС Π²ΠΈΠΆΠ΄Π°, Ρ‡Π΅ броят Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ Π² feature ΠΊΠ»ΠΎΠ½Π° Π΅ станал ΠΏΠΎ-висок ΠΎΡ‚ допустимото. Π—Π½Π°Ρ‡ΠΈ всичко Π΅ лошо.

Как Π²Π½Π΅Π΄Ρ€ΠΈΡ…ΠΌΠ΅ SonarQube ΠΈ ΠΎΡΡŠΠ·Π½Π°Ρ…ΠΌΠ΅ нСговия голям ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»

Π‘ΡƒΡ‚ΠΎΠ½ΡŠΡ‚ Merge Π΅ Ρ‡Π΅Ρ€Π²Π΅Π½. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° няма Π·Π°Π±Ρ€Π°Π½Π° Π·Π° ΠΊΠ°Ρ‡Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ с Π³Ρ€Π΅ΡˆΠ΅Π½ ΠΊΠΎΠ΄, Π½ΠΎ Ρ‚ΠΎΠ²Π° сС ΠΏΡ€Π°Π²ΠΈ ΠΏΠΎ усмотрСниС Π½Π° отговорния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ. Π’ Π±ΡŠΠ΄Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π·Π°Π±Ρ€Π°Π½ΠΈ внасянСто Π½Π° Ρ‚Π°ΠΊΠΈΠ²Π° ΠΊΠΎΠΌΠΈΡ‚ΠΈ Π² основния ΠΊΠ»ΠΎΠ½.

Как Π²Π½Π΅Π΄Ρ€ΠΈΡ…ΠΌΠ΅ SonarQube ΠΈ ΠΎΡΡŠΠ·Π½Π°Ρ…ΠΌΠ΅ нСговия голям ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»

БамостоятСлна Ρ€Π°Π±ΠΎΡ‚Π° Π²ΡŠΡ€Ρ…Ρƒ Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅

Π‘Π»Π΅Π΄Π²Π° Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ всички ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΈ ΠΎΡ‚ систСмата Π³Ρ€Π΅ΡˆΠΊΠΈ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ SonarQube Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° ΠΏΠΎ собствСнитС си строги стандарти. Π’ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‚ΠΎΠΉ счита Π·Π° Π³Ρ€Π΅ΡˆΠΊΠ°, Π² нашия ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π΅ Ρ‚Π°ΠΊΠΎΠ²Π°. Π—Π°Ρ‚ΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ ΠΈ Π΄Π° ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈΠΌ Π΄Π°Π»ΠΈ наистина Π΅ Π³Ρ€Π΅ΡˆΠΊΠ°, ΠΈΠ»ΠΈ Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° сС ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π° ΠΏΡ€ΠΈ Π½Π°ΡˆΠΈΡ‚Π΅ условия. Π’Π°ΠΊΠ° намалявамС броя Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅. Π‘ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ систСмата Ρ‰Π΅ сС Π½Π°ΡƒΡ‡ΠΈ Π΄Π° Ρ€Π°Π·Π±ΠΈΡ€Π° Ρ‚Π΅Π·ΠΈ нюанси.

Π”ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ стигнахмС

ΠΠ°ΡˆΠ°Ρ‚Π° Ρ†Π΅Π» бСшС Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π΄Π°Π»ΠΈ Π² нашия случай Π΅ Ρ†Π΅Π»Π΅ΡΡŠΠΎΠ±Ρ€Π°Π·Π½ΠΎ Π΄Π° сС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π½Π° ΠΊΠΎΠ΄Π°. И Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΠΏΡ€Π°Π²Π΄Π° очакванията. SonarQube Π½ΠΈ позволява Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Π·Π° нас Π΅Π·ΠΈΡ†ΠΈ, ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° доста ΠΊΠΎΠΌΠΏΠ΅Ρ‚Π΅Π½Ρ‚Π΅Π½ Π°Π½Π°Π»ΠΈΠ· ΠΈ ΠΈΠΌΠ° ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» Π΄Π° сС ΠΎΠ±ΡƒΡ‡Π°Π²Π° Π½Π° ΡΡŠΠ²Π΅Ρ‚ΠΈ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅. Π’ цялост, смС Π΄ΠΎΠ²ΠΎΠ»Π½ΠΈ ΠΎΡ‚ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΈΡ си ΠΎΠΏΠΈΡ‚ с SonarQube ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ Π΄Π° сС Ρ€Π°Π·Π²ΠΈΠ²Π°ΠΌΠ΅ Π² Ρ‚Π°Π·ΠΈ посока Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ. ΠžΡ‡Π°ΠΊΠ²Π°ΠΌΠ΅, Ρ‡Π΅ Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅ Ρ‰Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° спСстим ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²Ρ€Π΅ΠΌΠ΅ ΠΈ усилия ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π½Π° ΠΊΠΎΠ΄Π° ΠΈ Π΄Π° я Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ ΠΏΠΎ-качСствСна, ΠΊΠ°Ρ‚ΠΎ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π°ΠΌΠ΅ Ρ‡ΠΎΠ²Π΅ΡˆΠΊΠΈΡ Ρ„Π°ΠΊΡ‚ΠΎΡ€. МоТС Π±ΠΈ, ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ процСс, Ρ‰Π΅ ΠΎΡ‚ΠΊΡ€ΠΈΠ΅ΠΌ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈ Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈΠ»ΠΈ пък ΠΎΡ‚Π½ΠΎΠ²ΠΎ Ρ‰Π΅ сС ΡƒΠ²Π΅Ρ€ΠΈΠΌ, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π΅ страхотСн инструмСнт с голям ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π».

Π’ Ρ‚Π°Π·ΠΈ ΠΎΠ±Π·ΠΎΡ€Π½Π° статия Ρ€Π°Π·ΠΊΠ°Π·Π°Ρ…ΠΌΠ΅ Π·Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ запознанство със статичния Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ SonarQube. Ако ΠΈΠΌΠ°Ρ‚Π΅ Π²ΡŠΠΏΡ€ΠΎΡΠΈ, моля ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅. Ако Ρ‚Π΅ΠΌΠ°Ρ‚Π° Π²ΠΈ интСрСсува, Π² Π½ΠΎΠ²Π°Ρ‚Π° публикация Π²Π΅Ρ‡Π΅ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ‰Π΅ опишСм ΠΊΠ°ΠΊ Π΄Π° настроим всичко ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΈ ΠΊΠ°ΠΊ Π΄Π° напишСм ΠΊΠΎΠ΄, Π·Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°.

Автор Π½Π° тСкста: atanya

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster