Как спор из-за кнопки изменил мое отношение к фронтенду
Недавно прочитал в книге такую мысль "бизнес - это бесконечная работа над тем, чтобы дать пользователю тот же результат при меньших усилиях". Удивило, как это пересекается с моим мышлением в плане UX фронтенда.
Еще 6+ лет назад, на старте моей карьеры, работая на небольшом проекте я увидел, как коллеги изо дня в день обсуждают "как же нам сделать для пользователя 2 шага вместо 3 на этом сценарии". Тогда это показалось мне чем-то странным, в чем проблема нажать лишнюю кнопку, почему этому уделяется такое внимание? Но в итоге эти обсуждения посеяли во мне интерес к улучшению UX и теперь на протяжении всех 6ти лет при разработке интерфейсов я задаюсь вопросом "как сделать это удобнее для пользователя".
Например, я для нас с женой сделал приложение финансового учета. Есть форма добавления расхода/дохода, поля названия/категории/суммы/даты и тд. В самом начале формы я добавил поле в котором можно текстом написать "продукты 1500 вчера", текст парсится, форма заполняется автоматически. Мелочь, а приятно.
Кстати, на это поле эксперимента ради добавил LLM, если не получается распарсить текст на поля автоматически, то уходит запрос в модельку. Так, при вводе "помидоры 9999" модель определит категорию "продукты" для расхода. Интересный опыт интеграции нейронки. Нюанс для фронта: чтобы не дергать API на каждый символ и не тратить токены впустую, прикрутил debouncing и кэширование похожих запросов.
Пара важных, на мой взгляд, принципов: 1. Не заставляй пользователя думать. При виде интерфейса юзер должен быть уверен, что произойдет после действия. 2. Право на ошибку. Пользователь будет ошибаться, наша задача - сделать обработку его ошибок безопасной и исправляемой. Встречал примеры, когда после заполнения здоровой формы падает ошибка и форма сбрасывается в ноль, кайф) 3. Прогрессивное раскрытие сложности. Например, не окунаем пользователя в форму на 3 экрана, а разделяем ее на шаги. Тут же есть пространство для оптимизаций - lazy loading, условный рендеринг и тд. 4. Ну и конечно, простота. Если есть возможность сократить количество действий для достижения результата пользователем - почему бы немного не упростить ему жизнь
Теперь я строго убежден, что такие мелочи и отличают отличное приложение от хорошего.
Коллеги, а какие UX-мелочи или микро-взаимодействия на фронте вы считаете абсолютным must-have? Делитесь, мне всегда интересно подсмотреть идеи!