Если верить открытым источникам, рынок электросамокатов в России главным образом держат Whoosh и Urent (хотя сейчас ещё Яндекс вклинивается, и с его ресурсами это вполне возможно). При этом у Urent больше городов и больше самокатов, чем у Whoosh, но ниже доходы.
Я подумал: наверняка бизнес-аналитики Urent днями и ночами сидят и ломают голову, что бы им поменять и улучшить, чтобы начать выигрывать эту конкуренцию. Строят теории, проводят тесты. Сложная работа, в общем, бизнес и рынок не такие предсказуемые вещи.
А потом я воспользовался Urent и за 5 минут нашел столько косяков UI/UX в приложении, что мне стало всё понятно. Кроме того, почему Urent ничего с этими косяками не делает.
1. Сканирование кода в Whoosh приводит к появлению полноэкранной модалки с большими кнопками и основной информацией о самокате и стоимости. Сканирование кода в Urent выдает в самом низу экрана блок кнопок, в которые не только очень сложно попасть, но его ещё и надо скроллить (см. левый скриншот). При этом весь экран занят уже не нужной к этому моменту камерой. Такой интерфейс заточен под перебор самокатов, но на деле человеку на улице на ходу нужно просто максимально быстро взять первый самокат, к которому он подошёл.
2. О том, что страховка включена и будет стоить дополнительных денег, можно догадаться только за счёт знания об этой функции из других сервисов. Да, Whoosh, конечно, поступает очень по-мудачески, постоянно автоматически включая платную страховку, из-за чего её надо выключать вручную каждый раз при каждом заказе. Но в Urent необходимость этого действия ещё и довольно неочевидна (а страховка тоже, конечно же, по-умолчанию всегда включена).
3. Я отсканировал самокат, затем нажал подтверждение заказа. Система после этого написала мне, что данный самокат недоступен. Неужели, нельзя об этом писать ещё на этапе сканирования? Зачем выводить кнопку заказа для недоступного самоката?
4. Кнопка перехода к текущей геопозиции перекрыта неубирающейся шторкой снизу (см. правый скриншот).
И это только вещи, которые прям за первые 5 минут выявляются и очень на поверхности. А исправить их может один программист и один дизайнер за пару недель. Удивительно, как некоторые бизнесы не хотят зарабатывать.
#dev
Попробовал, наконец, разработку на Blazor. Это такой фреймворк под .NET, который позволяет писать фронтенд на C#. Работает он двумя способами: либо собирает весь проект в WebAssembly, и бедный пользователь грузит себе мегабайтную dll, либо устанавливает клиент-серверное соединение через SignalR и шлёт клиенту информацию об обновлённых DOM-элементах.
Вот вторую то я и пробовал. Казалось бы — каждое нажатие кнопки требует отправить на сервер запрос и получить ответ. Никогда такого не было! Но субъективно разницы во времени отклика нет (потому что веб и так достаточно медленный, хаха).
Фронтенд-часть пишется очень похоже на JSX: вёрстка реактивно вперемешку с кодом. Когда-то я очень ругал React за такой подход, потому что каша. Но нетипизированный JS по-умолчанию каша, а здесь же по факту получается очень удобно: статический анализ не даёт тебе делать ошибки и писать ерунду.
Но приятный полноценный язык программирования вместо JavaScript это лишь вишенка на торте. Самое крутое — вся сила серверного кода с полноценной возможностью обращения к базе данных, шеринг моделей данных между сервером и клиентом, и, наконец, Dependency Injection любого серверного модуля в «клиент»! То есть вы не просто пишете одно приложение вместо двух, вы ещё и получаете отсутствие ошибок при каком-нибудь изменении моделей API, когда сервер стал отдавать не то, что ожидает клиент. Вам вообще теперь не нужен API, достаточно закодить нужную функцию на серваке и инжектировать её в нужный фронтенд-модуль.
Это супер удобно, супер быстро, супер устойчиво к ошибкам. Теперь не хочется возвращаться даже на вполне крутой Vue 3. Но, система пока новая, она не обросла решениями от комьюнити, а браузерный API всё равно придётся дергать через JavaScript Interop. Для совсем кайфа нужно подождать годик, поскольку развитие идёт довольно быстро. Например, там нет очень нужного в таком деле hot reload, но в .NET 6 он уже анонсирован, и вроде как есть в превью, а релиз в ноябре.
#dev
Ben Edgington | 𝕏🧵
Slides omit to mention "pissed off a large section of the community with arrogant plans to capture 100% of the stake".
Focusing on community staking and governance reform were *absolutely* the Right Things To Do and in no way a mistake. Respect.
I am much less concerned about Lido now than I was a couple of years ago, and I am glad we held their feet to the fire over this. https://twitter.com/tomwanhh/status/1956000751873851473
~
₿izFeed#⃣:#dev#ETH
Ben Edgington | 𝕏🧵
RT @TimBeiko: The @ethereumfndn is hiring a developer tooling coordinator 🛠️
You'll help us decide what to build, fund and support across the ecosystem!
Ideal candidate has technical experience across the Ethereum stack, an intuition for how dev tooling should evolve, and some ops chops 👇
~
₿izFeed#⃣:#dev#ETH