Как забытые «рубильники» в коде разоряют бизнес: Уроки Knight Capital и секреты техгигантов
В сложных системах опасность редко приходит в виде нового кода.
Чаще всего проблема уже существует внутри системы, но находится в выключенном состоянии.
Feature toggle создаёт иллюзию контроля: функция есть, но её влияние можно включать и отключать по мере необходимости.
Со временем таких переключателей становится всё больше.
Каждый из них кажется безопасным, потому что он управляем.
Но система начинает зависеть не только от кода, но и от множества скрытых состояний, которые трудно учитывать одновременно.
В какой-то момент реальное поведение приложения определяется не тем, что написано в коде, а тем, какая комбинация переключателей сейчас активна.
Чем больше таких точек управления, тем выше вероятность, что забытое состояние однажды станет активным в самый неподходящий момент.
Возможно, самая опасная часть системы — это не то, что в неё добавили, а то, что в ней уже есть, но давно перестало быть видимым.
Подробнее в разборе механизма Feature Toggles (или «рубильников») — инструмента, который позволяет компаниям масштаба Netflix, Facebook и Google внедрять инновации с бешеной скоростью, не обрушивая систему: https://www.youtube.com/watch?v=zODWj5nTRIc