5 заметок с тегом

интерфейс

Архитектура: скорость работы

В нескольких больших проектах, в которых я участвовал, одним из первых разработанных компонентов интерфейса был «лоадер». Ну такая обычно круглая крутилка на весь экран, пока данные не загрузятся. Часто его делали отдельным слоем, затемняя или размазывая всё под лоадером.

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

Первое, что мы сделали — избавились от лоадера на всю страницу. Если какие-то части и не могут быть подгружены сразу, то нужно показывать лоадер на их месте, а не перекрывать всю страницу.

Когда мы взялись за новый проект мы отказались от лоадеров совсем. Потому, что они сам по себе — следствие плохой технической подготовки, плохого проектирования и проблема быстрой загрузки данных должна быть проблемой программиста, а не пользователя.

Долгое время у нас всё получалось, страницы загружались быстро. Для этого мы сделали что-то такое:

  • Сделали индексы в БД
  • Запрашивали столько информации, сколько нужно отобразить сразу
  • Кешировали запросы

Со временем, когда документов и таблиц стало очень много, мы всё таки вернулись к лоадеру, только системному. Мы меняли курсор мыши на курсор с загрузкой, если загрузка идёт больше половины секунды. Это решение хорошо тем, что для него не нужно что-то серьёзное программировать отдельно, что оно будет естественным образом работать на любом ПК (мы разрабатывали только дескопные версии продуктов), но оно всё равно говорит только о том, что мы недостаточно хорошо решили задачу.

К примеру, можно было бы:

  • Разделить данные в БД на актуальные и нет и хранить их в разных таблицах
  • Хранить копию БД в оперативной памяти и получать данные из неё
  • Осуществлять кеширование на уровне NGINX, не обращаясь к бекэнду и к БД
  • Хранить редкоменяющиеся данные в хранилище браузера

и наверняка ещё множество манипуляций, которые хорошо известны ребятам из ВК или Ютьюба, у которых есть по-настоящему много данных и много пользователей

Выбор региона на сайте: внутреннее устройство филиалов

Захожу я тут как-то на сайт Россельхозбанка, он такой стильный и современный, хорошо. И хочу выбрать свой регион: ну Карелию там, или Петрозаводск. И вижу:

Карелии-то и нет! И поиска нет, поэтому нужно глазами перепроверять. И нету ни на К, ни на Р, ни на П. Но я точно знаю, что банк-то в городе работает.

Звоню на горячую линию, жду 10 минут, рассказываю об этом, и мне отвечают, что это же крайне логично: это выбор филиалов, у нас Карелию Вологду и Мурманск обслуживает Санкт-Петербургский филиал. К сожалению, догадаться об этом не звоня в поддержку невозможно.

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

Проблема в том, что это только внутри банка есть какие-то филиалы, регионы обслуживания и так далее. Для клиента есть банк, и город, где он живёт. Поэтому заставлять пользователя выбирать филиалы не нужно, а нужно дать выбрать свой регион и перенаправить на нужный филиал автоматически.

Это называется «быть в мире клиента, а не компании».

Максим Ильяхов, к примеру, пишет о том, как придумывать тексты в мире читателя

Другие части про выбор региона:
Проблема с республиками
Остальной мир

Выбор региона на сайте: республики

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

Естественно, я хочу найти свою республику в любом списке на букву К. Как и тувинцы на букву Т, а дагестанцы — на Д. Но почти на всех сайтах при выборе региона республики на букву Р. Вот, например, у Билайна:

Как так, что за бред? Нужно просто написать: «Карелия», «Калмыкия», «Марий Эл» и всё. Ну если начальство требует, чтобы всё было официально, можно написать «Карелия, республика».

У Билайна-то вообще издевательство: в списке есть и Республика Карелия и Петрозаводск, но они отдельно. Выбрать Карелию, и понять потом, что нужно было выбирать Петрозаводск решительно невозможно.

Другие части про выбор региона:
Регионы и филиалы
Остальной мир

Выбор региона на сайте: остальной мир

Бывает, заходишь на сайт, а там: выберите свой город из этих десяти. И ты кликаешь в любой, лишь бы дальше перейти. Это глупость.

Нужно добавить выбор «остальной мир» и внимательно следить за айпи-адресами тех, кто заходит, чтобы открывать новые филиалы в их городах.

Ещё круче сделано на сайте Re-store, хотя они раньше тоже тупили. Теперь там можно выбрать из городов их присутствия или ввести свой город:

Там, конечно, всё равно большие города, но кто живёт в маленьких всё равно привыкли в большие гонять за покупками.

Другие части про выбор региона:
Регионы и филиалы
Проблема с республиками