Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π² срСдС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ часто прСвращаСтся Π² Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ процСсс ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ лСгаси-ΠΊΠΎΠ΄Π°, Π³Π΄Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈΠ»ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‡ΡƒΠΆΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π“Ρ€Π°ΠΌΠΎΡ‚Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· исходного ΠΊΠΎΠ΄Π° становится Π½Π΅ просто Π½Π°Π²Ρ‹ΠΊΠΎΠΌ, Π° критичСски Π²Π°ΠΆΠ½Ρ‹ΠΌ этапом ΠΏΠ΅Ρ€Π΅Π΄ Π»ΡŽΠ±Ρ‹ΠΌ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π‘Π΅Π· Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ понимания структуры ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ связСй ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ систСмы.

БущСствуСт мноТСство ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΊ исслСдованию ΠΊΠΎΠ΄Π°: ΠΎΡ‚ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ чтСния ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π΄ΠΎ использования спСциализированных статичСских Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ прСдоставляСт Π±Π°Π·ΠΎΠ²Ρ‹Π΅ срСдства Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, Π½ΠΎ для ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этого нСдостаточно. Π’Π°ΠΌ потрСбуСтся комплСксный взгляд Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, соблюдСниС стандартов кодирования ΠΈ ΡƒΠΌΠ΅Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ слоТности.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ основныС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ Π°ΡƒΠ΄ΠΈΡ‚Π° ΠΊΠΎΠ΄Π°, инструмСнты Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ½ΠΈΠΆΠ°ΡŽΡ‚ быстродСйствиС систСмы. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΡƒΠ·ΠΊΠΈΠ΅ мСста ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Π±Π°Π·Ρƒ ΠΊ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹ΠΌ измСнСниям Π±Π΅Π· риска ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Π ΡƒΡ‡Π½ΠΎΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΈ навигация Π² ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅

ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ этап Π°Π½Π°Π»ΠΈΠ·Π° всСгда начинаСтся с Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ изучСния структуры ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ прСдставлСниС ΠΎ количСствС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΈΡ… ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΈ взаимосвязях. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ: Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ большого количСства ΠΎΠ±Ρ‰ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ с ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ часто ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Для Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ изучСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ участка ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ встроСнный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ поиска ΠΏΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² мСню ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ β†’ Поиск ΠΏΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ горячиС клавиши Ctrl+Shift+F. Π­Ρ‚ΠΎ позволяСт Π½Π°ΠΉΡ‚ΠΈ всС мСста использования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌ ΠΏΡ€ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Однако Ρ€ΡƒΡ‡Π½ΠΎΠΉ просмотр ΠΈΠΌΠ΅Π΅Ρ‚ сущСствСнныС ограничСния. Π§Π΅Π»ΠΎΠ²Π΅ΠΊ склонСн ΡƒΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΠ· Π²ΠΈΠ΄Ρƒ логичСскиС ошибки Π² слоТных Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»Π°Ρ… ΠΈΠ»ΠΈ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ дублирования ΠΊΠΎΠ΄Π° Π² Ρ€Π°Π·Π½Ρ‹Ρ… подсистСмах. БтатичСский Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π° выявляСт Π΄ΠΎ 80% Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ простом Ρ‡Ρ‚Π΅Π½ΠΈΠΈ тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅ Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π° Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСдприятия Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ. Π›ΡŽΠ±ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ структуры ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запросов Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ.

ΠŸΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ„ΠΎΡ€ΠΌ ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΎΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° события Ρ„ΠΎΡ€ΠΌΡ‹. Часто Π»ΠΎΠ³ΠΈΠΊΠ° Ρ€Π°Π·ΠΌΠ°Π·Π°Π½Π° ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠŸΡ€ΠΈΠ‘ΠΎΠ·Π΄Π°Π½ΠΈΠΈΠΠ°Π‘Π΅Ρ€Π²Π΅Ρ€Π΅, ΠŸΡ€ΠΈΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ интСрфСйса. ЦСнтрализация Ρ‚Π°ΠΊΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ… ΠΎΠ±Ρ‰ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ дальнСйший Π°ΡƒΠ΄ΠΈΡ‚.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ "Найти всС использования" (Shift+F12) для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅.

ИспользованиС спСциализированных Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΊΠΎΠ΄Π°

Для Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ диагностики качСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ срСдства. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΌ инструмСнтом Π² экосистСмС 1Π‘ являСтся 1Π‘:Code Quality (Ρ€Π°Π½Π΅Π΅ извСстная ΠΊΠ°ΠΊ "Анализ ΠΊΠΎΠ΄Π°" Π² составС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… вСрсий ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°). Π­Ρ‚ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΡΠΊΠ°Π½ΠΈΡ€ΡƒΡŽΡ‚ тСксты ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π½Π° соотвСтствиС Π»ΡƒΡ‡ΡˆΠΈΠΌ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Анализаторы ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ ΠΊΠΎΠ΄ ΠΏΠΎ сотням ΠΏΡ€Π°Π²ΠΈΠ», Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡΡ‚ΠΈΠ»ΡŒ имСнования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ цикличСских конструкций ΠΈ использованиС ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся ΠΎΡ‚Ρ‡Π΅Ρ‚ с ΠΏΠ΅Ρ€Π΅Ρ‡Π½Π΅ΠΌ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠΉ, сгруппированных ΠΏΠΎ уровням критичности: ΠΎΡ‚ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΏΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΡŽ Π΄ΠΎ критичСских ошибок, Π²Π»ΠΈΡΡŽΡ‰ΠΈΡ… Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

  • πŸ” Поиск Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ²: выявлСниС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π° Π² Ρ€Π°Π·Π½Ρ‹Ρ… мСстах ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³.
  • ⚑ Анализ запросов: ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° тСкстов запросов Π½Π° отсутствиС индСксов, использованиС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ соСдинСния.
  • πŸ›‘οΈ Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ: ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… уязвимостСй, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΡ€Π°Π²Π°ΠΌΠΈ доступа.

Помимо встроСнных срСдств, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ сторонниС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ SonarQube с ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ для 1Π‘ ΠΈΠ»ΠΈ спСциализированныС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΡ‚ сообщСства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ качСства Π² процСсс Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ (CI/CD), блокируя сборку ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ критичСских Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΉ.

πŸ“Š Какой инструмСнт Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ для Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° 1Π‘?
ВстроСнный Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ 1Π‘
Π‘Ρ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (Sonar,xED)
Π ΡƒΡ‡Π½ΠΎΠΉ просмотр Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅
НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹

ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ качСства ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°

ΠžΡ†Π΅Π½ΠΊΠ° качСства ΠΊΠΎΠ΄Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π±Π΅Π· использования количСствСнных ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ. ЦикломатичСская ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ β€” ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ количСство Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ нСзависимых ΠΏΡƒΡ‚Π΅ΠΉ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ВысокоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ.

Π’Π°ΠΊΠΆΠ΅ слСдуСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Блишком большиС Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ΄Π° (Π±ΠΎΠ»Π΅Π΅ 5000 строк) становятся Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌΠΈ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΠΊΠΈ Π½Π° ΠΌΠ΅Π»ΠΊΠΈΠ΅, Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ с понятными ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ β€” ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ зрСлости Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ систСмы.

ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠ° ΠΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ВлияниС
ЦикломатичСская ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎ 10 Π±ΠΎΠ»Π΅Π΅ 20 Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ тСстирования
Π”Π»ΠΈΠ½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° (строк) Π΄ΠΎ 50 Π±ΠΎΠ»Π΅Π΅ 150 Π§ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°
Π“Π»ΡƒΠ±ΠΈΠ½Π° влоТСнности Π΄ΠΎ 3 ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ Π±ΠΎΠ»Π΅Π΅ 5 ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ ЛогичСская Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΠΎΡΡ‚ΡŒ
ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π΄ΠΎ 4 Π±ΠΎΠ»Π΅Π΅ 7 Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Π°

РСгулярный ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ этих ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ позволяСт ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π΄Π΅Π³Ρ€Π°Π΄Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹. Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ рост слоТности Π² Π½ΠΎΠ²Ρ‹Ρ… Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ…, это сигнал ΠΊ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Ρƒ. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ накоплСнию тСхничСского Π΄ΠΎΠ»Π³Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ придСтся ΠΎΠΏΠ»Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΌ пСрСписываниСм подсистСм.

πŸ’‘

Π‘Π½ΠΈΠΆΠ΅Π½ΠΈΠ΅ цикломатичСской слоТности Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ количСство Π±Π°Π³ΠΎΠ² Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΈ ускоряСт написаниС ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… тСстов.

Анализ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ запросов ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ

Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с быстродСйствиСм 1Π‘ связана с Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ запросами ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Анализ тСкста запроса Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ использования индСксов, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠΎΠ»Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†Π½Ρ‹Ρ… сканирований ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ соСдинСний. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ Консоль запросов ΠΈΠ»ΠΈ Консоль Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌΠΈ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ°ΠΌΠΈ Π² этом процСссС.

ΠžΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° использованиС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†. Π§Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠ΅ созданиС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΈΡΡ‡Π΅Ρ€ΠΏΠ°Π½ΠΈΡŽ рСсурсов сСрвСра. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† часто ускоряСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ слоТных ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² Π·Π° счСт ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ количСства ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ диску.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΡ‚Π΅ транзакциям. Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ большиС ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Π²Π·Π°ΠΈΠΌΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ (deadlocks). Код Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ максимально ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π‘Π£Π‘Π” (MSSQL, PostgreSQL, Oracle). ВсСгда свСряйтС ΠΏΠ»Π°Π½Ρ‹ выполнСния запросов Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ срСдС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ.

Для Π°Π½Π°Π»ΠΈΠ·Π° ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… запросов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΆΡƒΡ€Π½Π°Π» рСгистрации с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ SQL. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ врСмя выполнСния запроса Π½Π° сторонС сСрвСра Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΡƒΠ·ΠΊΠΈΠ΅ мСста, Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ ΠΏΡ€ΠΈ взглядС Π½Π° ΠΊΠΎΠ΄ 1Π‘.

Как Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠ»Π°Π½ выполнСния запроса?

ΠžΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ "Table Scan" ΠΈΠ»ΠΈ "Index Scan" с высокой ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΡŽ. Они ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° отсутствиС подходящСго индСкса ΠΈΠ»ΠΈ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ΅ построСниС условия соСдинСния.

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ устранСниС тСхничСского Π΄ΠΎΠ»Π³Π°

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ β€” это процСсс измСнСния Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ структуры ΠΊΠΎΠ΄Π° Π±Π΅Π· измСнСния Π΅Π³ΠΎ внСшнСго повСдСния. Основная Ρ†Π΅Π»ΡŒ β€” ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ понятным, Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΌ ΠΈ эффСктивным. ΠΠ°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ слСдуСт с устранСния дублирования: выноситС ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ участки ΠΊΠΎΠ΄Π° Π² ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

Π—Π°ΠΌΠ΅Π½Π° магичСских чисСл ΠΈ строк Π½Π° ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ. ВмСсто условия Если Бтатус = 3 Π’ΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ Если Бтатус = БтатусыДокумСнта.ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½ Π’ΠΎΠ³Π΄Π°. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ статусов ΠΏΡ€Π°Π²ΠΊΠΈ вносятся Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС.

  • πŸ”„ ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅: Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ΠΈΠΌΠ΅Π½Π°, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠ΅ ΠΈΡ… ΡΡƒΡ‚ΡŒ, Π° Π½Π΅ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ….
  • 🧩 ДСкомпозиция: Ρ€Π°Π·Π±ΠΈΠ²Π°ΠΉΡ‚Π΅ большиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.
  • πŸ—‘οΈ Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ€Ρ‚Π²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°: бСзТалостно удаляйтС Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ участки ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ.

Π’Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΌΠ°Π»Ρ‹ΠΌΠΈ шагами, постоянно запуская рСгрСссионноС тСстированиС. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ всю подсистСму Π·Π° ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ появлСнию Π½ΠΎΠ²Ρ‹Ρ… критичСских ошибок. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ систСму контроля вСрсий (Git) для отслСТивания всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

β˜‘οΈ План бСзопасного Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 5

Автоматизация ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€ΠΈ сборкС (CI/CD)

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π² 1Π‘ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ сборки (CI/CD) позволяСт ΠΎΡ‚Π»Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ошибки Π΅Ρ‰Π΅ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠΏΠ°Π΄ΡƒΡ‚ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ инструмСнты Π²Ρ€ΠΎΠ΄Π΅ vanessa-runner ΠΈΠ»ΠΈ grc.

Настройка ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ этапы: Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² Ρ„Π°ΠΉΠ»Ρ‹, статичСский Π°Π½Π°Π»ΠΈΠ·, запуск ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… тСстов ΠΈ сборка Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π°. Если Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π° выявляСт Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ² качСства, сборка помСчаСтся ΠΊΠ°ΠΊ нСудачная, ΠΈ ΠΊΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ принят Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ дисциплинируСт ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ обСспСчиваСт ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠ΅ качСство ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. Автоматизация Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ освобоТдаСт врСмя ΡΡ‚Π°Ρ€ΡˆΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Π° Π½Π΅ для поиска ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΠΊ Π² ΠΊΠΎΠ΄Π΅ ΠΊΠΎΠ»Π»Π΅Π³.

Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ запуск Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Π² GitLab CI?

Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ шаг Π² Ρ„Π°ΠΉΠ» .gitlab-ci.yml, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСт ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΡƒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° послС этапа Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π‘ΠΊΡ€ΠΈΠΏΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ошибки, Ссли Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ критичСскиС замСчания, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Ρ€Π²Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°.

МоТно Π»ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ?

Π”Π°, соврСмСнныС Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ. Однако Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ контСкст основной ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π±Π°Π·ΠΎΠ²ΠΎΠΉ поставки.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π΄Π°Π΅Ρ‚ Π»ΠΎΠΆΠ½Ρ‹Π΅ срабатывания?

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ инструмСнтов ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² ΠΊΠΎΠ΄ для пропуска ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ строки.