Как я могу сделать функции переключаемыми?

У нас есть приложение, доступное на других платформах (iOS, Android и несколько серверных микросервисов: nodeJS, Python). Когда мы разрабатываем новую функцию и когда она готова, мы хотели бы сделать ее доступной одновременно на всех платформах. И если что-то не так, мы хотели бы отключить его.

Например:

var featureEnabled = featureService.isMyNewFeatureEnabled();

if (featureEnabled === true) {
    // turn on my new feature
}
else {
    // use my legacy feature
}

Как лучше всего это сделать?

Это либо слишком широко, либо запрашивается сторонний ресурс, например сторонний инструмент. Общий ответ таков: укажите конечную точку, которая возвращает AppConfig, и пусть ваши приложения используют указанную конечную точку и решают, какую функцию/кнопку/экран показывать или нет.

luk2302 23.07.2019 23:07

Я ищу решение, которое я могу использовать во всех своих компонентах и ​​легко управлять своими функциями (вкл / выкл) в одном месте.

Ashish.S 23.07.2019 23:18

Просто чтобы уточнить, эта категория называется «управление флагами функций». Вы также можете искать инструменты управления флагами функций или службы управления флагами функций. Или даже службы управления конфигурацией, поскольку эти два понятия связаны между собой.

sige 24.07.2019 10:23
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
3
350
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Сейчас у нас реализовано собственное решение. О чем я очень сожалею. Сначала это казалось простой задачей, имея на сервере загружаемые файлы конфигурации JSON, содержащие значения флагов функций. И минималистичная админка для их редактирования. Сложность повысилась, когда мы хотели добавить исключения. Например, предоставление значения для одной группы пользователей и другого значения для другого сегмента. Так называемое A/B-тестирование. После попытки взломать эту функцию в нашем текущем решении нам удалось убедить руководство и получить надлежащую службу флагов функций.

Вот те, которые мы оценили:

Как упоминалось в комментариях к вопросу, вы ищете «Управление флагами функций», также известное как «Управление переключением функций», термины смешанные, но одинаковые. Флаги функций включают различные шаблоны или стратегии активации. Примеры среди них вы описываете;

  • «Выключатели», например. простой способ отключить функцию в рабочей среде в случае возникновения проблемы
  • «Отпустить тумблер», например. включить функцию после развертывания кода в рабочей среде

Большинство систем управления флагами функций поддерживают указанные выше и другие стратегии активации.

Довольно часто такие инструменты начинают создаваться внутри, по сути это просто: только простой флаг и несколько операторов if. Ваша проблема заключается в том, что вы начинаете зависеть от управления флагами функций. Обычно вам потребуются возможности журнала аудита, надлежащая обработка управления пользователями, надлежащее масштабирование, обеспечение ограниченного влияния на производительность и аналогичные возможности. Хорошее введение в лучшие практики переключения функций, которые следует учитывать, можно найти в этом Сообщение блога.

Доступно несколько сильных предложений, вот четыре лучших:

Здесь в stackoverflow есть очень хорошее резюме о флагах функций: Что такое «флаг функции»?

Другие вопросы по теме