Browse commands

/impeccable harden

Harden

Подготовьте интерфейсы к продакшену. Крайние случаи, i18n, состояния ошибок, переполнение.

Когда использовать

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

Обращайтесь к нему перед запуском, перед выходом на новый рынок или всякий раз, когда баг-репорт начинается с «у нашего пользователя было очень длинное имя и». Для процессов первого запуска, активации пустых состояний и дизайна онбординга обращайтесь к /impeccable onboard.

Как это работает

Навык проходит через четыре измерения устойчивости к реальному миру:

  1. Крайние случаи текста и данных. Длинный текст, короткий текст, спецсимволы, эмодзи, RTL, числа в миллиардах, списки из 1000 элементов.
  2. Сценарии ошибок. Сетевые сбои, API 4xx/5xx, ошибки валидации, ошибки прав доступа, rate limits, параллельные операции.
  3. Интернационализация. Длинные переводы (немецкий часто на 30% длиннее английского), языки RTL, форматы дат и чисел, символы валют, наборы символов.
  4. Устройства и контекст. Зоны касания, поведение офлайн, медленные соединения, режим энергосбережения.

Для каждого измерения он определяет режим отказа, затем применяет конкретное исправление: обработка переполнения, информативный UI ошибок, i18n-безопасные макеты, плюрализация, разумные fallback’и.

Попробуйте

Начните с одной страницы и одного измерения:

/impeccable harden the user profile page for long names

Ожидаемый результат:

  • .user-name теперь имеет text-overflow: ellipsis с подсказкой для полного значения
  • .bio переключён с фиксированной высоты на max-height с раскрытием «показать больше»
  • Добавлено пустое состояние для пользователей без био
  • Добавлен скелетонный загрузчик для асинхронной загрузки аватара
  • Протестировано на длинах имён 1, 20, 60, 200 символов

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

Подводные камни

  • Ожидание баг-репорта. Harden — превентивная мера. Если вы ловите себя на исправлении одного и того же класса багов дважды, запустите /impeccable harden на всю функцию.
  • Восприятие состояний ошибок и пустых состояний как запоздалой мысли. Большая часть работы по hardening — это UI ошибок и пустых состояний. Выделяйте на это время, а не только блок catch.
  • Пропуск i18n из соображений «пока только английский». i18n-безопасные макеты всё равно лучше макеты. Гибкие контейнеры, правильные переносы текста, щедрый межстрочный интервал. Ничто из этого не вредит английскому.