Иногда неоптимальный 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 допускает прощение, честен в том, что стоит за этим, и помогает нам (пользователям) не навредить себе.