Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Функция переключение (также функция переключатель , флаг функции , функция плавник , условная функция и т.д.) представляет собой метод , в разработке программного обеспечения , что попытки обеспечить альтернативу для поддержания нескольких ветвей в исходном коде (известный как художественные ветви), таким образом, что программное обеспечение Функцию можно протестировать еще до того, как она будет завершена и готова к выпуску . Переключатель функций используется для скрытия, включения или отключения функции во время выполнения.. Например, в процессе разработки разработчик может включить функцию для тестирования и отключить ее для других пользователей. [1]

Непрерывный выпуск и непрерывное развертывание позволяют разработчикам быстро получать отзывы о своем коде. Это требует внесения изменений в их код как можно раньше. Ветви функций позволяют обходить этот процесс. [2] Переключение функций - важный метод для непрерывной доставки .

Этот метод позволяет разработчикам выпускать версию продукта с незавершенными функциями. Эти незавершенные функции скрыты (переключаются), поэтому они не отображаются в пользовательском интерфейсе . Это позволяет доставлять множество небольших инкрементных версий программного обеспечения без затрат на постоянное ветвление и слияние . Переключение функций может сократить циклы интеграции программного обеспечения. [3] Команда, работающая над проектом, может использовать переключатели функций, чтобы ускорить процесс разработки, которые также могут включать неполный код.

Реализация [ править ]

Переключатели функций - это, по сути, переменные , которые используются внутри условных операторов . Следовательно, блоки внутри этих условных операторов могут быть включены или выключены в зависимости от значения переключателя функции. Блок кода, который был отключен, похож на закомментированный . Это позволяет разработчикам контролировать поток своего программного обеспечения и обходить функции, которые не готовы к развертыванию.

Основное использование переключателей функций - избежать конфликта, который может возникнуть при слиянии изменений в программном обеспечении в последний момент перед выпуском, хотя это может привести к переключению долга . Задолженность переключения возникает из-за наличия мертвого кода в программном обеспечении после того, как функция была постоянно включена, и вызывает накладные расходы. Эта часть кода должна быть удалена осторожно, чтобы не мешать другим частям кода.

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

Переключатели функций можно использовать в следующих сценариях: [1]

  • Добавление новой функции в приложение.
  • Улучшение существующей функции в приложении.
  • Скрытие или отключение функции.
  • Расширение интерфейса.

Переключатели функций могут быть сохранены как: [4]

  • Записи строк в базе данных.
  • Свойство в файле конфигурации.
  • Запись во внешней службе флага функции.

Группы функций [ править ]

Группы функций состоят из переключателей функций, которые работают вместе. Это позволяет разработчику легко управлять набором связанных переключателей. [5]

Канарейка [ править ]

Еще одно преимущество флагов функций - канареечные запуски. Канареечный выпуск (или канареечный запуск, или канареечное развертывание) позволяет разработчикам постепенно тестировать функции небольшой группой пользователей. Если производительность функции неудовлетворительна, ее можно откатить без каких-либо побочных эффектов. [6]

Мартин Фаулер утверждает, что переключение функций «должно быть вашим последним выбором, когда вы имеете дело с вводом функций в производство». Вместо этого лучше разбить функцию на более мелкие части, каждая из которых может быть реализована и безопасно внедрена в выпущенный продукт, не вызывая других проблем. [7]

Переключение функций используется многими крупными веб-сайтами, включая Flickr, [8] Disqus, [9] Etsy, [10] reddit, [11] Gmail [12] и Netflix, [13], а также программное обеспечение, такое как Google Chrome Canary .

См. Также [ править ]

  • Управление конфигурацией программного обеспечения
  • Линия программных продуктов
  • Сравнение программного обеспечения для управления конфигурацией с открытым исходным кодом

Ссылки [ править ]

  1. ^ a b «Рейнджеры ALM - Разработка программного обеспечения с переключателями функций» . msdn.microsoft.com .
  2. ^ «Флаги функций для мобильных приложений - Apptimize» . apptimize.com . Архивировано из оригинального 18 -го сентября 2016 года . Проверено 9 января 2017 года .
  3. ^ Программирование приложений JavaScript . Архивировано из оригинала на 2016-09-15 . Проверено 14 сентября 2016 .
  4. ^ Echagüe, Пато (2014). Управление флагами функций . O'Reilly Media. ISBN 9781492028598- через https://www.oreilly.com/library/view/managing-feature-flags/9781492028598 .
  5. ^ Эллиот, Эрик (2018). Программирование приложений JavaScript . O'Reilly Media.
  6. ^ «Канарские запуски - как и почему канареечному выпуску» . launchdarkly.com . 7 апреля 2015 . Проверено 9 января 2017 года .
  7. Мартин Фаулер, 29 октября 2010 г. (2010-10-29). «FeatureToggle» . Martinfowler.com . Проверено 27 сентября 2013 .
  8. ^ Хармс, Росс. «Перелистывание - code.flickr.com» . flickr.net . Проверено 9 января 2017 года .
  9. ^ dcramer (9 июля 2010 г.). «Частичное развертывание с переключением функций» . Архивировано из оригинала на 2013-11-05 . Проверено 10 октября 2013 .
  10. ^ "Как Etsy управляет разработкой и операциями?" . codeascraft.com . 4 февраля 2011 . Проверено 9 января 2017 года .
  11. ^ "Reddit / Reddit" . github.com . Проверено 9 января 2017 года .
  12. ^ «Разработка нового внешнего вида Gmail» . googleblog.com . Проверено 9 января 2017 года .
  13. ^ «Подготовка Netflix API к развертыванию» . netflix.com . Проверено 9 января 2017 года .