Иногда неоптимальный UI/UX может привести к снижению производительности в командах и крупных организациях. Простой пример — пользовательский интерфейс Hashicorp для consul. Consul — это отличный инструмент для управления парами ключ/значение для ваших распределенных систем, и он стал настоящим подарком для организаций.

Когда Hashicorp представила свой веб-интерфейс, командам разработчиков, инженерам, специалистам по обеспечению качества, поддержке и клиентам стало невероятно просто и удобно редактировать и изменять свои пары ключ-значение. Интересные переключатели, ранее встроенные в 12-факторные приложения, внезапно ожили с веб-интерфейсом Consul, и любой мог изменить ранее скрытые переключатели, чтобы легко настроить свои крупномасштабные корпоративные системы.

Однако была одна небольшая проблема с UI/UX. Если переключатель по умолчанию в папке отсутствовал в конфигурации приложения, и папка также отсутствовала, сначала необходимо создать папку, а затем переключатель значения.

Кажется простым, верно?

Вы создаете папку, заканчивая свой ключ / , а затем нажимая ввод, не вводя value. Однако затем вы можете заметить странное поведение в ваших файлах журналов.

Почему мое приложение пытается установить нулевой ключ и нулевое значение при запуске? Затем вы можете увидеть внезапный сбой всех микросервисов в большом тесте или, что еще хуже, сайты клиентов начинают сталкиваться с теми же сбоями.

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

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

Использование веб-интерфейса UI/UX Consul показывает, что с ключами/значениями все в порядке. Нет нулевых или пустых ключей. Все правильно все сделали? Они создали папку, а затем правильно создали ключ под папкой.

Однако использование сырой команды Consul recurse в вашем браузере (или curl) показывает другую картину. Он показывает нулевое значение, связанное с именем папки.

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

Обходной путь - полностью удалить папку

Затем заново создайте ключ/значение папки вместе в одной паре.

Эта проблема настолько постоянна, что нижестоящие приложения изменяют свое поведение, чтобы учитывать null into, как показано здесь с consul-template и issue github.

Я не буду спорить с тем, что нижестоящие приложения и менеджеры процессов должны обрабатывать пограничные случаи и даже неправильные случаи, такие как null.

Я утверждаю, что хороший UI/UX допускает прощение, честен в том, что стоит за этим, и помогает нам (пользователям) не навредить себе.