TGViewer
artalog artalog @artalog · 4.21K subscribers
Post #162 2.51K
artalog Архитектура веба В комментариях к этому посту Никиты Прокопова опять начался дискурс об ошибочном применении веба (точнее браузерных технологий) для написания приложений. Мол, только нативные технологии, только хардкор, только так можно контролировать перф…
Состояние на клиенте

Множество старыхопытных разработчиков постоянно выступают за максимально тонкие клиенты и одностраничные вебсайты (MPA), вместо SPA. SPA тяжелее, разделяют ответственность в кодовой базе и вносят лишнюю сложность.

Но я увеерн, что чем больше фич реализовано на клиенте и больше стейта там хранится, тем лучше UX пользователя и его общее впечатление от продукта. Идея перезагрузки всего отображения и накопленного состояния на каждый чих обрекает пользователей на страдание по десяткам причин и лишь показывает ленивость разработчиков. Ну или бизнес денег не дал 🙂

У меня есть очень простой пример, которым я хотел бы поделиться, того что может происходить с простым текстом на самой обычной странице любого блога. Конечно речь даже не идет о редактировании, только об отображении.

Итак, какие фичи на странице с текстом простого блога могут улучшать UX пользователя, храня состояние локально.

1) Поиск. Браузеры до сих пор не умеют в нормальный поиск по странице, нет банальных настроек case sensetive и частичного / полного совпадения, нет регекспов, нет поиска по части документа и нет краткого превью результатов поиска с разбивкой по главам. Нет поиска по нескольким страницам в рамках всей или части карты сайта. Все это нужно.
2) Выделение. Хочется подсвечивать текст и складывать его в заметки. Иногда, нужно выделить и скопировать несколько кусков текста разом. Выделением практически нельзя управлять с клавиатуры. Все это нужно.
3) Ссылки. До сих пор в вебе нет нативной возможности скопировать ссылку на заголовок. Так же, пользователь должен мочь сам выбирать якоря для подсветки по ссылки.
4) Закладки. Как на больших статьях помечать где пользователь остановился читать?
5) Предварительный просмотр. Картинки нужно мочь зумить, формулы вычислять, код запускать, диаграммы передвигать и тп.
6) Специфичные типы данных. Даты должны мочь добавляться в календарь, цвета копироваться с выбором формата, элементы списков отмечаться как выполненные, а денежные суммы переводиться в другую валюту.

Можно еще пачку пунктов придумать. И да, что-то уже есть в браузере, что-то скоро будет (нормальные дейт и колор пикеры только на подходе), но все это клиентское состояние и нужно понимать его и уметь с ним работать.

Главная проблема, которую можно решить только полным контролем клиентского состояния - это фичи поверх нескольких фич, когда мы каждое из их состояний связываем, для улучшения UX. Например, в поиске сначала должны появляться результаты из закладок, созданные ссылки пусть храняться где-то в истории и было бы хорошо мочь делать их на предварительный просмотр или какие-то выделения в нем.

Это просто несколько примеров в рамках работы с простым текстм. Но современные медиа и приложения намного сложнее и я уверен, всегда могут предоставить больше возможностей по работе с контентом, нежели есть сейчас.
  • 👍 27
  • 👎 4
  • ❤ 1
More from @artalog
  1. Oct 1, 2026Для меня главный приоритет в reatom.dev уже несколько лет - универсальность. Он должен реш…
  2. Sep 30, 2026https://t.me/synaptic_garden/1370 (уж извините за частый постинг, тем более про ИИ, но важ…
  3. Sep 30, 2026Post #2011
  4. Sep 30, 2026Очень круто! Композиты сильно упрощают работу с иммутабельными данными, точнее с их equali…
  5. Sep 29, 2026Bun там с AOT экспериментирует!
  6. Sep 25, 2026Пятничная демка! Превратила загрузку сайта в музыку. Чтобы треды можно было не только виде…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →