Инженерная практика
Feature flags: тест на воспроизведение
Воспроизведение по памяти эффективнее перечитывания. На каждый промпт проговорите или запишите полный ответ из памяти, прежде чем открыть образцовый — именно усилие припоминания закрепляет материал.
Восстановите спину юнита — разделение deploy и release, четыре типа флагов и их жизненные циклы, sticky-rollout, kill switch, локальное вычисление и flag debt — не подглядывая в урок.
- 01Объясните, как feature flags разделяют deploy и release и почему это меняет то, как команда катит код.
- 02Назовите четыре типа флагов и объясните, почему запись типа важна для жизненного цикла.
- 03Как механически работает sticky percentage rollout и что ломается, если он не sticky?
- 04Почему SDK вычисляют флаги локально в памяти с фоновой синхронизацией, а не вызывают сервис флагов на каждую проверку?
- 05Что такое flag debt и какая дисциплина не даёт ему стать новым Knight Capital?
- 06Почему «каждый флаг — это ветка в проде» и есть senior-цена, уравновешивающая всю скорость, которую дают флаги?
Если вы смогли восстановить каждый ответ по памяти, вы держите спину юнита: флаги разделяют deploy и release, так что код катится тёмным и выпускается тумблером; четыре типа имеют противоположные правильные сроки жизни, так что тип записывают; rollout обязан быть sticky через стабильный хеш, иначе варианты мигают; вычисление — локальный lookup, так что сервис флагов никогда не жёсткая зависимость; и каждый живой флаг — это ветка в проде, 2^N конфигураций, поэтому дисциплина, предотвращающая следующий Knight Capital, — это жизненный цикл: давать release-флагам срок, помечать kill switch постоянными и удалять застойные флаги, пока один не переиспользовали.