Фронтенд с человеческим лицом

October 11, 2020

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

Ключевое правило: Дайте пользователю поля ввода и не суйте в них рыло! Ничего так не бесит пользователя, как ваши «сверхценные» действия, мешающие ему, например, залогиниться или вбить строку в поиск. Засуньте в жопу свои куки. Не спрашивайте из какого он города — могли бы, скоты, уже запомнить: загляните в свою жопу, там где куки, и подумайте зачем они вам, если хранятся только до конца сессии.

Измерьте сами примерную скорость работы канала данных и интерфейса юзера (всего-то 1 писк телеметрии), и если скорость низкая — да засунет вам тимлид осиновый кол в задницу, если вы запрашиваете контент на каждое нажатие кнопки.

Особый маразм — неумение страницы реагировать на недолёт запроса или ответа. Ну не успел, связь плохая, ваш сервак подавился, CDN захлебнулся — дальше что? На кой мартышкин перец наши «синьйоры» блочат весь контент, поля ввода, поля отправки данных — если не долетел какой-то хинт из очереди?

Бросать в горячий котёл нужно любителей «ускорить» обработку события, добавив бесконечный цикл. Да, встречаются и такие маразматики. Вместо тупого промиса — в бесконечном цикле ждут, когда что-то отрисуется, прилетит, отрендерится, отзовётся на действия пользователя. Что по этой причине на мобильном устройстве может встрять браузер, приложение, а то и интерфейс системы в целом — а зачем знать? Про потребление памяти умолчу благим матом — ведь эти идиоты не забывают неявно рождать новые зоны видимости.

Прекратите онанировать на событие поворота экрана. Да, бывает, что пользователь это сделал, и надо перестроить картинку. Но тогда НЕ НУЖНО её адаптировать, тупо отмасштабируйте и всё. Чаще всего экран вообще поворачивают случайно, потому до масштабирования… подождите хотя бы секунд 5, и убедитесь что экран не продолжают вращать. А после того как отреагировали — следующая реакция не ранее 15 секунд. И чёрт побери, убедитесь сначала что вьюпорт не квадратный!!!

ДАЙТЕ все позиции. Забудьте про дебильную пагинацию. Если пользователь что-то ищет, это не ребёнок из детского сада. Ему не проблема просмотреть 100-200 позиций, а то и 1000 — это вы долб***ы считаете, что ему надо 24 позиции (и каждый раз сбросив выбор в дефолт). Да похеру на нагрузку на CDN — не вы за это платите! Много картинок? Сколько много? 1000 картинок по 50 кб это всего лишь 50мб. Догружайте картинки по мере приближения вьюпорта — и пользователь этого не заметит, и вы от DDOS прикроетесь, особенно если события прокрутки проверите на «человечность» по количеству кликов и прокруток в секунду.

ДАЙТЕ весь текст!! Ровни ничто не мешает выдать сразу все текстовые данные. То что они не влезают — думайте как разворачивать (почему бы и не popup). Но чтобы поиск по странице их видел! И чтобы человеку не приходилось делать 1000 переходов, если ему надо просмотреть 1000 позиций. Да, ***дь, ему бывает надо. Не ваше собачье дело, зачем. Если бы вы не совали рыло с заменой текста на «…» или вообще его удалением из списка — глядишь, ВСЕ бы получали то, зачем пришли.

Повторюсь — сколько это стоит серверу (нисколько, на самом деле) — это не ваше дело, то что заказчик потратит на 0.5% больше вычислительной мощности вас сношать не должно. Вы думайте сколько времени должен потратить ПОСЕТИТЕЛЬ, и не на тестовой нагрузке, а на боевой. Да-да, вы, нетрадиционноориентрированные, хоть раз залили на полигон полный объём боевых данных? Хоть раз прогнали тесты на полных объёмах? Хоть раз оценили длину пути реального пользователя к данным?

НЕ ТОЛЬКО посетителю пользоваться ресурсом. За ним нередко стоят живые люди. Саппорт например. И это не саппорт сайта/приложения — это операторы живого бизнеса. И вы должны адаптировать фронтенд под их работу. БЫСТРУЮ работу. А для этого — вы обязательно подключаете их бета-тестерами, и пусть уже ваш саппорт не ипёт им моск, а внимательно прислушивается к хотелкам и проблемам. Не значит, что все их надо выполнить (там тоже бывают идиоты), но проверить — обязательно. Потому что ваш тестер никогда не увидит проблем скорости, когда то что должно работать 1 секунду — работает 30, а то что должно находиться по ссылке из любо точки — требует зачем-то поиска.


comments powered by Disqus