Найти Π² Π”Π·Π΅Π½Π΅
Inreal Another-Reality

🀷🏻 Как ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с тСхничСским Π΄ΠΎΠ»Π³ΠΎΠΌ: практичСскиС совСты

ВСхничСский Π΄ΠΎΠ»Π³ β€” это компромисс ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ качСством ΠΊΠΎΠ΄Π°. Когда Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ краткосрочныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π΄ΠΈ быстрого Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ слоТностям Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. Если тСхничСский Π΄ΠΎΠ»Π³ Π½Π΅ ΡƒΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ, ΠΎΠ½ замСдляСт Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ ΡƒΠ³Ρ€ΠΎΠ·Ρƒ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, ΠΎΡ‚ΠΊΡƒΠ΄Π° бСрСтся тСхничСский Π΄ΠΎΠ»Π³, ΠΊΠ°ΠΊΠΈΠ΅ Π±Ρ‹Π²Π°ΡŽΡ‚ Π΅Π³ΠΎ Π²ΠΈΠ΄Ρ‹ ΠΈ ΠΊΠ°ΠΊ с Π½ΠΈΠΌ эффСктивно Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ. ВСхничСский Π΄ΠΎΠ»Π³ (Technical Debt)Β β€” это ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² ΠΊΠΎΠ΄Π΅, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΈΠ»ΠΈ инфраструктурС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΈΠ·-Π·Π° спСшки, Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ отсутствия планирования. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ: Π§Π°Ρ‰Π΅ всСго Π΄ΠΎΠ»Π³ появляСтся, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½ΡƒΠΆΠ½ΠΎ срочно Π²Ρ‹ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½. Π’ этом случаС ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ Π·Π½Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ ΠΈΠ»ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Код Π±Π΅Π· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ становится Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ. Когд
ОглавлСниС

ВСхничСский Π΄ΠΎΠ»Π³ β€” это компромисс ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ качСством ΠΊΠΎΠ΄Π°. Когда Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ краткосрочныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π΄ΠΈ быстрого Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ слоТностям Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. Если тСхничСский Π΄ΠΎΠ»Π³ Π½Π΅ ΡƒΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ, ΠΎΠ½ замСдляСт Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ ΡƒΠ³Ρ€ΠΎΠ·Ρƒ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, ΠΎΡ‚ΠΊΡƒΠ΄Π° бСрСтся тСхничСский Π΄ΠΎΠ»Π³, ΠΊΠ°ΠΊΠΈΠ΅ Π±Ρ‹Π²Π°ΡŽΡ‚ Π΅Π³ΠΎ Π²ΠΈΠ΄Ρ‹ ΠΈ ΠΊΠ°ΠΊ с Π½ΠΈΠΌ эффСктивно Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ.

βž₯Β Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ тСхничСский Π΄ΠΎΠ»Π³ ΠΈ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ бСрСтся?

ВСхничСский Π΄ΠΎΠ»Π³ (Technical Debt)Β β€” это ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² ΠΊΠΎΠ΄Π΅, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΈΠ»ΠΈ инфраструктурС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΈΠ·-Π·Π° спСшки, Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ отсутствия планирования.

Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ:

  • Π”ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉΡΡ, Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ нСструктурированный ΠΊΠΎΠ΄.
  • Π£ΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ зависимости.
  • ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.
  • НСдостаточноС тСстированиС.
  • Блабая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, которая Π½Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ.

βž₯Β ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ возникновСния тСхничСского Π΄ΠΎΠ»Π³Π°

1. БпСшка ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅

Π§Π°Ρ‰Π΅ всСго Π΄ΠΎΠ»Π³ появляСтся, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½ΡƒΠΆΠ½ΠΎ срочно Π²Ρ‹ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½. Π’ этом случаС ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

2. НСдостаток ΠΎΠΏΡ‹Ρ‚Π° ΠΈΠ»ΠΈ Π·Π½Π°Π½ΠΈΠΉ

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ Π·Π½Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ ΠΈΠ»ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

3. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ

Код Π±Π΅Π· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ становится Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ. Когда Π½Π°Π΄ Π½ΠΈΠΌ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΎΠ½ΠΈ тратят большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΠΊΠΈ.

4. ΠŸΡ€Π΅Π½Π΅Π±Ρ€Π΅ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠΌ

Π’ условиях Π΄Π΅Π΄Π»Π°ΠΉΠ½ΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΆΠ΅Ρ€Ρ‚Π²ΡƒΡŽΡ‚ чистотой ΠΊΠΎΠ΄Π° ΠΈ ΠΎΡ‚ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° ΠΏΠΎΡ‚ΠΎΠΌ. Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ это накапливаСтся, услоТняя Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.

5. ИспользованиС ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ

Если ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π΄ΠΎΠ»Π³ΠΎ Π½Π΅ обновляСтся, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ, ΠΈΠ»ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ слоТно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

6. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Ρ‡Π΅Ρ‚ΠΊΠΈΡ… процСссов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Если Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π½Π΅ приняты стандарты кодирования, ΠΊΠΎΠ΄-Ρ€Π΅Π²ΡŒΡŽ ΠΈ автоматичСскоС тСстированиС, качСство ΠΊΠΎΠ΄Π° со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ сниТаСтся.

βž₯ КакиС Π±Ρ‹Π²Π°ΡŽΡ‚ Π²ΠΈΠ΄Ρ‹ тСхничСского Π΄ΠΎΠ»Π³Π°?

1. НамСрСнный (ΠΏΠ»Π°Π½ΠΎΠ²Ρ‹ΠΉ) тСхничСский Π΄ΠΎΠ»Π³

Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠ»Π³ создаСтся осознанно, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚ Π½Π΅ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π½ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ это Ρ€Π°Π΄ΠΈ скорости. НапримСр, Ссли Π½ΡƒΠΆΠ½ΠΎ срочно Π²Ρ‹ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ„ΠΈΡ‡Ρƒ, Π° Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅.

2. НСнамСрСнный тСхничСский Π΄ΠΎΠ»Π³

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

3. Π£ΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ ΠΊΠΎΠ΄ ΠΈ зависимости

Когда Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ старыС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ»ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° становится слоТнСС. Иногда ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΎ ΠΈΠ·-Π·Π° тСсной ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ частями систСмы.

4. АрхитСктурный Π΄ΠΎΠ»Π³

Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, Ссли Π½Π° стартС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π»ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ростС Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ систСма Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΈΠ»ΠΈ становится Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ.

βž₯ Как ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ тСхничСским Π΄ΠΎΠ»Π³ΠΎΠΌ?

ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ тСхничСского Π΄ΠΎΠ»Π³Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

1. ВыявитС ΠΈ зафиксируйтС тСхничСский Π΄ΠΎΠ»Π³

  • ΠŸΡ€ΠΎΠ²Π΅Π΄ΠΈΡ‚Π΅ Π°ΡƒΠ΄ΠΈΡ‚ ΠΊΠΎΠ΄Π° ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Π΅ мСста.
  • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ ΡƒΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΡŽ тСхничСского Π΄ΠΎΠ»Π³Π° Π² бэклог.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ инструмСнты статичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, SonarQube, ESLint).

2. РСгулярно выдСляйтС врСмя Π½Π° Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³

  • УдСляйтС 10-20% Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ спринтС Π½Π° исправлСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² ΠΊΠΎΠ΄Π΅.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΒ Boy Scout Rule: Β«ΠžΡΡ‚Π°Π²ΡŒ ΠΊΠΎΠ΄ Ρ‡ΠΈΡ‰Π΅, Ρ‡Π΅ΠΌ Ρ‚Ρ‹ Π΅Π³ΠΎ Π½Π°ΡˆΡ‘Π»Β». Π­Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ основываСтся Π½Π° ΠΈΠ΄Π΅Π΅ ΠΈΠ· скандинавского Π½Π°Ρ€ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π° бойскаутов: Β«ΠžΡΡ‚Π°Π²ΡŒ Π»Π°Π³Π΅Ρ€ΡŒ Π² Π»ΡƒΡ‡ΡˆΠ΅ΠΌ состоянии, Ρ‡Π΅ΠΌ Ρ‚Ρ‹ Π΅Π³ΠΎ нашСл».

3. АвтоматизируйтС тСстированиС

  • Π’Π½Π΅Π΄Ρ€ΠΈΡ‚Π΅ ΡŽΠ½ΠΈΡ‚-тСсты, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ тСсты.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ CI/CD, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π° Ρ€Π°Π½Π½ΠΈΡ… этапах.

4. Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° зависимостями

  • РСгулярно обновляйтС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ инструмСнты для отслСТивания уязвимостСй Π² зависимостях (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Dependabot).

5. Π£Π»ΡƒΡ‡ΡˆΠ°ΠΉΡ‚Π΅ процСссы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

  • Π’Π½Π΅Π΄Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠ΄-Ρ€Π΅Π²ΡŒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ нСкачСствСнного ΠΊΠΎΠ΄Π°.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ стандарты кодирования ΠΈ Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹.

6. ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ бизнСсу Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ устранСния Π΄ΠΎΠ»Π³Π°

  • ΠŸΠΎΠΊΠ°ΠΆΠΈΡ‚Π΅, ΠΊΠ°ΠΊ тСхничСский Π΄ΠΎΠ»Π³ влияСт Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΠΈΡ‡.
  • ΠžΠ±ΠΎΡΠ½ΡƒΠΉΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ выдСлСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Π΅Π³ΠΎ устранСниС.

βž₯Β Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ВСхничСский Π΄ΠΎΠ»Π³ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ΅Π½, Π½ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ. РСгулярноС устранСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ соблюдСниС стандартов кодирования ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. Π§Π΅ΠΌ Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π°Ρ‡Π½Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Π΄ΠΎΠ»Π³ΠΎΠΌ, Ρ‚Π΅ΠΌ Π»Π΅Π³Ρ‡Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΌ состоянии.