Прапорець розділяє мерж коду і його активацію
Без feature flag команда змушена або тримати недороблену функцію в окремій довгоживучій гілці, яку дедалі важче поєднати з основною, або відкладати мерж до повної готовності, сповільнюючи інтеграцію. Прапорець дозволяє змержити код одразу, залишивши його вимкненим для користувачів, і активувати пізніше — окремо від процесу розгортання. Це знижує ризик кожного окремого мержу, бо зміни менші й частіші, але вимагає дисципліни: код за вимкненим прапорцем усе одно виконується в продакшені частково, наприклад під час ініціалізації, і має проходити той самий рівень перевірки, що й активний.
Комбінації прапорців створюють непередбачені стани
Одна нова функція за одним прапорцем — прогнозована ситуація. Дюжина активних прапорців одночасно, частина з яких залежить одна від одної, а частина — взаємовиключна, створює комбінаторну кількість станів, які ніхто не тестував явно. Команді потрібен реєстр прапорців із зазначеними залежностями і термінами дії, а не список, що зростає безконтрольно. Періодичний аудит — які прапорці активні для всіх, які можна прибрати разом із застарілим кодом за вимкненою гілкою — запобігає ситуації, коли система стає зрозумілою лише одній людині, яка пам’ятає історію кожного перемикача. Дисципліна прапорців тісно пов’язана з стабільними архітектурними межами і підходом до модульних монолітів, де контрольовані зміни так само важливі.
Прапорець має власний життєвий цикл
Тимчасовий прапорець для поступового розгортання відрізняється від довгострокового прапорця для преміум-функції чи A/B-тесту, і поводитися з ними однаково — помилка. Розгортальний прапорець після повної активації для всіх користувачів має бути прибраний із коду разом зі старою гілкою протягом розумного терміну, інакше кодова база накопичує мертві розгалуження, які ускладнюють читання й підвищують ризик випадково залишити стару поведінку доступною. Корисно позначати тип прапорця вже під час створення й автоматично нагадувати про прибирання тих, що виконали свою тимчасову роль.
Відкат через прапорець швидший за відкат релізу
Головна практична перевага прапорців — можливість вимкнути проблемну функцію миттєво, не чекаючи нового розгортання і не відкочуючи весь реліз, який міг містити й інші, цілком робочі зміни. Це працює лише тоді, коли вимкнення прапорця дійсно повертає систему в безпечний стан, а не залишає частково застосовані зміни в даних чи зовнішніх викликах. Перед активацією ризикованої функції варто явно перевірити сценарій аварійного вимкнення так само ретельно, як і сценарій успішної роботи — інакше прапорець дає лише ілюзію контролю.




Коментарі
Щоб залишити коментар, увійдіть через Google або Facebook.