Фича-флаги предоставляют современным разработчикам инструменты для развертывания новых функций для конкретной аудитории, A/B тестирования и управления развертыванием с большей скоростью и меньшим риском.

Облачные архитектуры приложений, микросервисы, конвейеры CI/CD (непрерывная интеграция, непрерывная разработка), автоматизация тестирования и инфраструктура в виде кода — все это технологии, которые позволяют командам разработчиков часто доставлять код в эксплуатацию.

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

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

Github поддерживает различные парадигмы разработки и ветвления, включая feature branches, release branches, trunk-based development, и Gitflow. Стратегии ветвления структурируют код, входящий в сборки, и, таким образом, могут быть использованы для контроля над тем, какие функциональные возможности развертываются у конечных пользователей.

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

Рассмотрим несколько способов, с помощью которых команды разработчиков могут проводить гибкие эксперименты с использованием фиче-флагов.

  1. 1.

    Функции управления в средах разработки и тестирования

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

    Это могут быть настройки конфигурации, которые легко включить или выключить, если есть только несколько сред. Но что, если, в дополнение к средам разработки и тестирования, существуют также демонстрационные среды для клиентского тестирования?

    Вы не сможете сделать этот уровень конфигурации при тестировании на кодовом или системном уровне, если есть много переменных, настроек конфигурации и владельцы вне ИТ-отдела, необходимые для контроля над ними. Фича-флаги являются одним из способов включения этих элементов управления.

  2. 2.

    A/B-тесты интерфейса, дизайна и языка

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

    Предоставление пользователям возможности устанавливать элементы управления личными данными и настраивать приложения может быть непростым делом, особенно если речь идет об уровне детализации, языке и элементах управления. Тестирование нескольких подходов — это один из способов дать пользователям возможность выразить, какой подход легче понять и контролировать.

  3. 3.

    Альфа- и бета-тестирование новой технологии

    Иногда разработчикам приходится тестировать новые сервисы, библиотеки или комплекты для разработки программного обеспечения. В других случаях доступное обновление включает в себя новые возможности. Каким образом владельцы продуктов и команды разработчиков должны понять, какие компоненты и возможности готовы для критически важных приложений?

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

  4. 4.

    Проверка производительности путем медленного расширения доступа к новым возможностям

    Вариант альфа- и бета-тестирования — это когда команды разработчиков медленно увеличивают доступ к новым возможностям, чтобы обеспечить их надежность, производительность и стабильность.

    Еще одним новым примером использования является проверка реакции на алгоритмы машинного обучения и искусственного интеллекта, такие как чат-боты, интерфейсы естественного языка, алгоритмы распознавания образов и управления голосом. Приложения могут быть запрограммированы с расширенными функциональными флагами для контроля над тем, какие случаи использования включены по мере тестирования и совершенствования алгоритмов.

  5. 5.

    Развертывание фич по географии, языку или другим клиентским сегментам

    Одним из важных соображений является включение функций для конкретных клиентских сегментов. Например, функция может быть готова к использованию пользователями в США, но регулирование не позволяет использовать ее в Европейском союзе.

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

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

Write A Comment