Feature toggles β€” это ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ достигаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ простых условий Π² ΠΊΠΎΠ΄Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, if/else) ΠΈ внСшнСго управлСния ΠΈΡ… состояниСм (Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΠ°Π½Π΅Π»ΠΈ администрирования ΠΈΠ»ΠΈ сСрвисы).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

if (featureToggleService.isEnabled("newFeature")) {
    // Новая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
} else {
    // Бтарая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
}

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹:

  • ΠŸΠ»Π°Π²Π½Ρ‹Π΅ Ρ€Π΅Π»ΠΈΠ·Ρ‹.Β Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΊΠ°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π· нСобходимости ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡ… Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.
  • ВСстированиС.Β ΠŸΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² production-срСдС Π½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ (A/B-тСстированиС).
  • ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ.Β ΠžΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρƒ вСрсиями ΠΈΠ»ΠΈ тСхнологичСскими стСками, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ измСнСния поэтапно.
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ рисками.Β Π’ случаС возникновСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ функция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ быстро ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π±Π΅Π· нСобходимости ΠΎΡ‚ΠΊΠ°Ρ‚Π° Ρ€Π΅Π»ΠΈΠ·Π°.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹:

  • Release toggles.Β Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΏΠ»Π°Π²Π½ΠΎΠ³ΠΎ развСртывания Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ запуска Ρ„Π»Π°Π³ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ удаляСтся ΠΈΠ· ΠΊΠΎΠ΄Π°.
  • Experiment toggles.Β ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для провСдСния A/B-тСстов ΠΈ экспСримСнтов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, какая вСрсия Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±ΠΎΠ»Π΅Π΅ эффСктивна.
  • Ops toggles.Β ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для управлСния ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ систСмы Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. НапримСр, для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΉ.
  • Permission toggles.Β Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для управлСния доступом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ функциям (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π΅ΠΌΠΈΡƒΠΌ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»).

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты:

  • ДокумСнтация Ρ„Π»Π°Π³ΠΎΠ².Β ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π»Π°Π³ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π΅Π³ΠΎ Ρ†Π΅Π»ΡŒ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ срок ΠΆΠΈΠ·Π½ΠΈ.
  • Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Ρ„Π»Π°Π³ΠΎΠ².Β Π€Π»Π°Π³ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠ΄Π΅ навсСгда. ПослС использования ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ накоплСния тСхничСского Π΄ΠΎΠ»Π³Π°.
  • ВСстированиС. НСобходимо Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΠ±ΠΎΠΈΡ… состояниях Ρ„Π»Π°Π³Π° (Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½ΠΎΠΌ ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ).
  • Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅.Β Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ»ΠΈ сСрвисы для управлСния Ρ„Π»Π°Π³Π°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, LaunchDarkly, Unleash).

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

  • УслоТнСниС ΠΊΠΎΠ΄Π°.Β Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ количСство Ρ„Π»Π°Π³ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ слоТной для понимания.
  • ВСхничСский Π΄ΠΎΠ»Π³.Β Π—Π°Π±Ρ‹Ρ‚Ρ‹Π΅ ΠΈΠ»ΠΈ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ Ρ„Π»Π°Π³ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ зависимости ΠΈ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡŽΡ‚ сопровоТдСниС.
  • ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹.Β ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниСм Ρ„Π»Π°Π³ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нСпрСдсказуСмому повСдСнию систСмы.

ΠœΠ΅Ρ‚Π° информация

ΠžΠ±Π»Π°ΡΡ‚ΡŒ::
Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ::
Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ::
Π‘ΠΎΠ·Π΄Π°Π½Π°:: 2025-01-28
Автор::

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹

Π”ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ