πŸ›  Как Ρ„ΠΈΡ‡Π°-Ρ‚ΠΎΠ³Π»Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Тизнь

Π€ΠΈΡ‡Π°-Ρ‚ΠΎΠ³Π³Π»Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ„ΠΈΡ‡ΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±Π΅Π· нСобходимости ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚ΡŒ программистов.Β  ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π΅ всСгда ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ. Для слоТных ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² с взаимозависимыми Ρ„ΠΈΡ‡Π°ΠΌΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ. Однако Ссли ваш ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ состоит ΠΈΠ· нСзависимых Ρ„ΠΈΡ‡, Ρ„ΠΈΡ‡Π°-Ρ‚ΠΎΠ³Π³Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Тизнь ΠΏΡ€ΠΎΠ΄Π°ΠΊΡ‚Π°ΠΌ. НапримСр, ΠΏΡ€ΠΎΠ΄Π°ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ Ρ„ΠΈΡ‡Ρƒ ΠΎΠ΄Π½ΠΎΠΉ Π³Π°Π»ΠΎΡ‡ΠΊΠΎΠΉ Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅ ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Ρ‘, Ссли Π½Π°Ρ‡Π°Π»ΠΈ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΆΠ°Π»ΠΎΠ±Ρ‹ β€” Ρ‚ΠΎΠΆΠ΅ ΠΎΠ΄Π½ΠΎΠΉ Π³Π°Π»ΠΎΡ‡ΠΊΠΎΠΉ. Всё Π±Π΅Π· Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° программистов!Β  πŸš€ Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈΒ  Π‘ тСхничСской стороны, Ρ„ΠΈΡ‡Π°-Ρ‚ΠΎΠ³Π³Π» позволяСт программистам Π²Ρ‹ΠΊΠ°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΠΈΡ‡ΠΈ ΠΏΠΎ частям, Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠΎ частям, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ³Π΄Π° Ρ„ΠΈΡ‡Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π³ΠΎΡ‚ΠΎΠ²Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΅Ρ‘ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π­Ρ‚ΠΎ сниТаСт риски: ошибки Π½Π΅ ΠΏΠΎΠΏΠ°Π΄ΡƒΡ‚ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Ρ‹.Β  Если Π²Π΄Ρ€ΡƒΠ³ Ρ„ΠΈΡ‡Π° Π²Ρ‹Π·Π²Π°Π»Π° критичСскиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΌΠΎΠΆΠ½ΠΎ быстро ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ измСнСния Π±Π΅Π· нСобходимости Π²Ρ‹ΠΊΠ°Ρ‚ΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π° β€” достаточно просто Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ³Π³Π».Β  πŸ”§ Когда это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?Β  Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² с мноТСством нСзависимых Ρ„ΠΈΡ‡, Π³Π΄Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ нСсколько ΠΏΡ€ΠΎΠ΄Π°ΠΊΡ‚ΠΎΠ². Для ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² Π½Π° Ρ€Π°Π½Π½ΠΈΡ… этапах Π΅Π³ΠΎ использованиС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ.Β  πŸ’‘ Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ³Π³Π»Ρ‹?Β  Π‘Π°ΠΌΡ‹ΠΉ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” использованиС условия if Π½Π° основС Ρ„Π»Π°Π³Π° Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅:Β  const PurchaseListFeature = "some-string"Β  _func (s Service) Handle {Β  …  // ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π»ΠΈ Ρ„ΠΈΡ‡Π°_Β  if (s.FeatureFlags.IsEnable(PurchaseListFeature)) {Β  // Π΄Π΅Π»Π°Π΅ΠΌ запрос Π² сСрвис, Π·Π° списком ΠΏΠΎΠΊΡƒΠΏΠΎΠΊΒ  purchases := s.purchasesRepository.GetLast(limit, userID)Β  // Π”ΠΎΠ±Π°Π²ΠΈΠΌ список ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ ΠΊ ΠΎΡ‚Π²Π΅Ρ‚ΡƒΒ  result["purchases"] = purchasesΒ  }Β Β  …  }Β  Для Π±ΠΎΠ»Π΅Π΅ слоТных случаСв ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ:Β  - Запуск Ρ„ΠΈΡ‡ΠΈ ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ πŸ•“Β  - ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ доступа для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ πŸ”Β  - АвтоматичСскоС ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ΅ систСмы ⚑️  βš™οΈ Π’ΠΈΠΏΡ‹ Ρ‚ΠΎΠ³Π³Π»ΠΎΠ²Β  1️⃣ Π Π΅Π»ΠΈΠ·Π½Ρ‹Π΅ (Release toggles): ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ Π½Π΅Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Ρ„ΠΈΡ‡ΠΈ, позволяя Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΡ… нСзависимо ΠΎΡ‚ Π΄Π°Ρ‚Ρ‹ дСплоя.Β  2️⃣ Π­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ (Experiment toggles): ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для A/B тСстирования, выпуска Ρ„ΠΈΡ‡ΠΈ Π½Π° Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.Β  3️⃣ Π Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ (Permission toggles): для скрытия ΠΏΠ»Π°Ρ‚Π½Ρ‹Ρ… Ρ„ΠΈΡ‡ ΠΎΡ‚ Π½Π΅ΠΎΠΏΠ»Π°Ρ‚ΠΈΠ²ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ Ρ„ΠΈΡ‡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для администраторов.Β  4️⃣ ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ (Ops toggles): ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ рСсурсоёмкиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Π·Π°ΡΡ‚Ρ€Π°Ρ…ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ систСмы.Β  πŸ— ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ ΠΈ Ρ‚ΠΎΠ³Π³Π»Ρ‹*Β  Если Ρƒ вас микросСрвисная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, Π½Π΅ стоит Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ Ρ„ΠΈΡ‡Π°-Ρ„Π»Π°Π³ΠΈ Π² ΠΎΠ±Ρ‰ΠΈΠΉ сСрвис, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ асинхронному ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Ρƒ. Π›ΡƒΡ‡ΡˆΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΎΠ³Π³Π»Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ микросСрвиса. Π­Ρ‚ΠΎ обСспСчит Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ, Π»ΡƒΡ‡ΡˆΠ΅Π΅ тСстированиС ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ риски ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Ρ„Π»Π°Π³ΠΎΠ².Β  ΠšΠ°Ρ‚ΠΈΠΌ Π² ΠΏΡ€ΠΎΠ΄

πŸ›  Как Ρ„ΠΈΡ‡Π°-Ρ‚ΠΎΠ³Π»Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Тизнь | Π‘Π΅Ρ‚ΠΊΠ° β€” ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ hh.ru