О кнопке «Назад» в интерфейсах НормЦРМ
Когда я просто пилил прототипы в Axure и рисовал дизайны — особо об этом не задумывался.
Представьте себе сценарий. У меня перед глазами интерфейс со списком задач. Я кликаю по одной из задач — и оказываюсь в карточке задачи.
Вверху карточки — кнопка «Назад». Очевидно, если я кликну по ней — попаду обратно в список.
Усложняем. Внутри карточки я кликаю на кнопку «Редактировать» и попадаю на форму редактирования задачи. Сохраняю — и снова оказываюсь в карточке задачи. Куда теперь поведёт клик по кнопке «Назад?» По идее — обратно на страницу редактирования задачи. Но ведь очевидно, что мне туда не нужно! Я хочу обратно в каталог (или откуда я там пришёл).
Прописываю правило: надо проскакивать одну страницу в истории перемещений пользователя, если эта страница — форма редактирования. Программирую. И что получаю?
Кликаю по кнопке «Назад» — страница перезагружается и я остаюсь там же. Ну конечно! Я же проделал путь Страница задачи → Форма редактирования → Страница задачи. Вот меня и перекинуло туда же, где я сейчас нахожусь.
Усложняю правило: надо проскакивать одну страницу в истории, если эта страница — форма редактирования. Но если это приводит к тому, что я оказываюсь на той же странице — тогда надо проскакивать сразу две страницы. Тогда пользователь вместо формы редактирования попадает обратно в каталог.
Правила рабочие и, кажется, история должна на этом закончиться. Но нет. Теперь появился сценарий, когда пользователь вообще может улететь из моего сайта на какой-нибудь другой, на котором был до этого. Например, если он в браузерной строке вставит ссылку на страницу редактирования задачи. Случай редкий, но меткий.
И даже это ещё не всё. Я столкнулся с технической ошибкой, которая возникла из-за этих свистоплясок, но тут информация о ней будет уже избыточной.
Чтобы не ломать голову над подобными вещами в дальнейшей работе над проектом — я фиксирую их в функциональной спецификации и, с недавних пор, в md файлах в папке doc в коде самого проекта. Не ленюсь и дополняю описанные разделы новыми нюансами. Начал прилагать больше усилий к тому, чтобы актуализировать документацию по проекту. Порядок растёт, сроки на решение типовых задач уменьшаются.
На всякий случай оговорюсь: я описал конкретный частный случай поведения кнопки «Назад» для своего проекта. Это правило ни разу не универсальное. Просто очередной паттерн в копилку.
Сегодня я в эфире, как обычно в 21:30 МСК. Продолжу показывать живую работу над НормЦРМ, который постепенно превращается в проект внушительных размеров. Заглядывайте: https://www.youtube.com/live/ycPV6dkMVkI
Post #1229
863

- ❤ 4
- 👍 2