Люблю делать UI и офисные приложения
Информация
- В рейтинге
- 1 374-й
- Откуда
- Россия
- Зарегистрирован
- Активность
Специализация
Десктоп разработчик, Разработчик приложений
HTML
CSS
JavaScript
Windows API
C++
UI/UX дизайн
Разработка интерфейсов
Дизайн продукта
Adobe Photoshop
Проектирование интерфейсов
Речь шла совсем о другом. Есть эстетика, а есть эргономика. Они, конечно, переплетены, но во многих случаях мы можем чётко отделить одно от другого. Если вы в теме оформления замените стекло на акрил, это будет эстетическое изменение, но на эргономику оно не повлияет. (Грубо говоря, потому что надпись со стекла/акрила может лучше/хуже считываться). И я говорил: если дизайнеры хотят эффекта новизны, пусть меняют эстетику, но не портят эргономику. А если меняют эргономику, то ради бога, но только в сторону улучшения. В эргономике есть база, которую надо знать. Например, диагональ внимания. Отсортируйте элементы на ней в обратном порядке, и пользователь, конечно, поймёт, что это революционные изменения. Но будет ли он доволен? Когда дизайнеры не знают базовых вещей, их изменения часто оказываются к худшему.
Вы никак не хотите признать, что эргономичность существует объективно, а эргономика — это наука. Как и всякая порядочная наука, она основывается на построении объяснений (в данном случае — объяснений поведения). Вы привели пример: положение кнопки «Пуск». Я ваш пример разобрал. Могу разобрать и любой другой, мне не трудно. Когда кнопка «Пуск» привязана к углу (любому), на неё легко попасть курсором одним грубым движением мыши или пальца по тачпаду. А в других местах попасть на неё курсором потребует прицеливания и, следовательно, более сильного задействования мелкой моторики (а если вы трясётесь в поезде? или сжаты в неудобном кресле? а если у вас в руках сигарета? а если вы с утра не проснулись? а если у вас недавно был микроинсульт? а если вы просто старенький и ручки уже не те? или трясётесь не от Альцгеймера, а от хохота?). Поэтому первое решение — объективно более эргономично, это факт, и он НЕ зависит от типа юзера.
Объяснения (в том числе те, что приведены выше) могут быть неправильные, тогда найдите в них изъян, но не пишите больше, что мы все разные. Так можно любую гадость оправдать. Сделаем кнопку «Пуск» треугольной и заставим ездить кругами — ну а что, вдруг кому-то понравится, мы же все разные /s.
Если, как тут говорят, Google пессимизирует страницы, которые ему приходится рендерить, из-за накладных расходов на рендеринг, может взять эти расходы на себя напрямую, а не путём подгона архитектуры под SEO? Вместо удобства пользователей и разработчиков? Идея в этом. Как сделать технически — не знаю, это не мой профиль. nginx поддерживает плагины?
А мне кажется, в этом треде (как и по жизни) слишком много людей, неспособных увидеть в jQuery что-то помимо слоя совместимости (действительно, ныне неактуального) и поэтому кричащих про легаси. DOM API — вот где лютое легаси. Прямо открыть MDN, читать по алфавиту и плакать. Пример с Intersection Observer я привёл по соседству, с подробным разбором.
Я не люблю нитпикать цитаты и обычно так не делаю, но в данном случае это проще всего.
Было написано: «современный js действительно неплохо его заменяет». Я на это ответил, что их даже сравнивать нельзя. И это так и есть. И, главное, хоть самый-распресамый современный ES возьмите, это никак не повлияет на легаси-статус jQuery. Повлиять могут только изменения DOM API. Которых нет и не предвидится.
Я не берусь судить про «обусловленную необходимость», то есть, про то, чем мотивировался John Resig. Факт, однако, в том, что это два абсолютно разных подхода. Как SQL и плоские файлы. В одном случае — декларативный запрос, в другом — императивщина с циклами и переменными. Можно ли сказать, что необходимость SQL была обусловлена незрелостью и многословностью плоских файловых систем? Наверно. Есть ли в этом смысл? Я так не считаю. Потому что, куда должны дозреть плоские ФС с их API'ями, чтобы вы пересели на них с языка запросов? Аналогично, пока DOM API остаётся императивным, желающие писать декларативные запросы будут вынуждены использовать что-то навесное.
$.ajax()не является частью DOM API и архитектурно это хелпер, что о нём говорить? Отдельно замечу, если бы своиfetch'и написали для DOM API, то jQuery действительно стал бы легаси. Но этого как раз и не случилось..animate()это как домкрат — предполагается, что вы используете его не при повседневной езде, а только в случае ремонта в дорожных условиях (но на этот случай он быть обязан). В данном случае — когда CSS что-то не поддерживает. А не поддерживает он, например, подключение JS-библиотек для сложных вычислений параметров следующего кадра. Нужда в них бывает очень редко, но когда бывает, нужно иметь возможность эти библиотеки подключать декларативно. Хотите пример? Трёхмерное облако элементов (например, тегов). Тригонометрия появилась в CSS относительно недавно, и как бы ещё вы сделали его вращение? И я не уверен, что такие особенности, как физическая инерция при вращении, могут быть переписаны на pure CSS (без.animate()). Более того, я даже не уверен, что пытаться переписать инерцию вращения облака тегов в терминах CSS — в принципе хорошая идея. Хотя, конечно, в большинстве случаев.animate()не нужен, а описание на CSS рулит. Но если нужен, это неправильно, когда вычисления запускаются каким-то отдельным таймером, а не из цепочки запроса.Ну да, ну да. Это, конечно, так, когда ваш коллектив из 50 эффективных берёт готовые компоненты, которые пишут такие, как я. А булочки растут на деревьях ))
Нет, не отпала. Просто вы (не лично вы, конечно), цитирую, «изобрели PHP, но в 10 раз медленнее».
Это не «интерактивная демонстрация», а довольно-таки пошлая презентация с картинками, где надо щёлкать по кнопке Next по команде, как дрессированному тюленю. От видео она отличается разве что тем, что кнопка прыгает туда-сюда.
Шарику, конечно, только чатботов не хватало. Его ЦА на порядок умнее, чем у Excel. Они-то, по крайней мере, имеют понятие о нормализации и справочниках.
Джон Кармак отмотал за это год на малолетке.
В качестве примера была взята кнопка «Пуск» и её положение на таскбаре, вот я его и рассмотрел.
А попапы — конечно, токсичный спам. Откуда, думаете, у меня взялась 24H2? А винда завела моду: когда я что-то быстро печатал, подсовывать мне окно с предложением обновиться. Я развил скорость реакции как у ниндзя, чтобы прерывать набор при малейших признаках попапов и нажимать Esc. Потому, что если нажмёшь A, это будет засчитано как Agreed, B — как Be it, C — как Cool! (…) Y — Yes, N — Not bad и так далее, не говоря уж про пробел и Enter.
Одно не учёл: у казино нельзя выиграть. Они могут просто сказать: «Да, мы @#$%%^. И что ты нам сделаешь? В 1-х, мы в другом городе», перезагрузить компьютер и накатить свою дебильную обнову. Вот отсюда и взялся вопрос Как даунгрейднуть Explorer до 23H2? — Хабр Q&A.
Если вы это понимаете, то зачем сами смешиваете? А вы это делаете, неявно. Если новинки могут быть объективно лучше и объективно хуже, из этого следует, что только, извиняюсь, дурак будет сидеть с открытым ртом и просить его удивить новизной (вместо того, чтобы просить улучшить эргономику и не ломать имеющуюся эргономику). Дурак и умный это не «два типа личностей». Конечно, ходят шутки про «альтернативно одарённых», но вы-то это написали всерьёз.
Задолго до веберов было сказано, что premature optimization is the root of all evil. Правильно выше написали про трату времени. Гораздо больше смысла было бы потратить время не на бенчмарки, а на профилирование и выяснение, какую долю роутинг занимает от общего процесса запроса к серверу (подозреваю, что в обычном веб-приложении — ничтожную). Морочиться так имеет смысл, если писать что-то типа nginx.
Я бы предложил не путать «голый js» и «чистый js» (в контексте браузера). Голый js так же уродлив и отвратителен, как голый семидесятипятилетный бомж или голая курица. Возьмём такую замечательную вещь, как Intersection Observer API.
Если мне сказать: вот тебе самое отборное LSD, придумай, как запутать этот код ещё сильнее, я зафейлю. Это задача не для слабаков. А ведь в 99% случаев программист хочет что-то очень простое, например:
Но самое злое зло тут даже не синтаксис. Самое злое зло тут спрятано под капотом. Как хорошо знает каждый, кто нырял в этот бассейн с дерьмом, браузер по контракту не обязан давать никаких гарантий относительно вызовов колбека. Колбек может быть вызван один раз или много с одним и тем же значением threshold'а, поэтому заворачивать его в гарды (
wasVisible,isVisible) должна вызываемая сторона. Которую в этом случае хочется похабно назвать «принимающая сторона».Почему такое происходит? Это не случайно. Когда какая-нибудь злобная корпорация (назовём её «Гугл») становится монополистом в развитии какой-нибудь платформы (назовём её «HTML»), она первым делом начинает всё запутывать так, чтобы, не дай бог, новые пейджи и брины не написали свой Гугл на коленке.
Так что, вполне нормально, что здравый разработчик спешит эту грязь обернуть в
$().on(). Ненормально, что потом ему говорят: а почему у тебя не «чистый js»? Ты, наверно, неосилятор? Ты, наверно, писать на «чистом js» не умеешь?За такие слова надо тыкать пальцем и позорить, как за незнание основ. Это не токсичность, а бизнес-необходимость. Иначе здравомыслящим людям заказов не видать, как своих ушей.
jQuery был когда-то написан на замену не JS, а DOM API. Не может «современный JS» заменять jQuery или наоборот. JS просто не имеет прямого отношения к браузерам. Именно поэтому он может исполняться на сервере или в игровом движке.
Что касается DOM API, он написан замшелыми сишниками (с мохом под мышками) и ДО СИХ ПОР тащит в современный функциональный язык (JS) императивный подход с циклами и переменными. jQuery это не легаси, а очень даже модный подход для манипуляций DOM, буде в них возникает нужда, на основе декларативных преобразований вместо прямых инструкций. Но каждый раз какой-нибудь умник, видя его, считает нужным ляпнуть про легаси. Это относится, в первую очередь, к автору статьи, который, вроде бы, начинал за здравие, когда писал про победу маркетинга над здравым смыслом, но потом закончил тем же slur'ом, которым оперируют маркетологи, позволив себе такую лексику как «легаси jQuery».
Большую услугу миру UI окажет тот, кто возьмёт за основу jQuery, добавит в него давно напрашивающиеся фичи (например, подзапросы) и назовёт это всё «DQL» (DOM Query Language), jQ.nuxt или ещё каким-нибудь смузи-словом.
Не очень понятное возражение, если честно. То, что пишет @MrEfrem, мотивировано лично для меня следующим: какого хрена SEO должно влиять на архитектурный выбор? Страницы для людей, не для ботов. То, что без поисковиков люди не увидят страниц оправдывает подгон архитектуры под SEO не больше, чем попытку изрезать колёса, чтобы они вошли в стандартную коробку доставщика, без которой на маркетплейсе не продать.
Почему нельзя поставить в пайплайн стандартный браузер, который бы подключался при приходе в гости краулера, и полностью отвязаться от архитектурной заточки под поисковики? В чём тут двойная работа? Во времени разработки? Так браузер пишете не вы. Во времени рендеринга? Так в норме доля краулера в трафике мала по сравнению с юзерами.
Ещё раз: при словах «мы это всё взваливаем на горб только потому, что так хочет Гугл», по идее, должна бы загораться красная лампочка в голове. А тут целая ветка, и все обсуждают, как так и надо )
Есть разные типы людей. Одни пассивно плывут по течению («ну-ка, что тут еще для меня приготовили? Чем порадуют?»). А другие, как рассказывал огурчик Рик у психотерапевта, активно меняют окружающую материю под себя, организуя её оптимальным образом. И им, естественно, не нравится, когда в организованную оптимальным способом материю кретины из Майкрософт вносят хаос, потому что сами не понимают, что творят (ещё хуже — если понимают, что творят, гоняясь за KPI при помощи дарк-паттернов). Это не плохо и не хорошо, это так и есть, это такие типы сознания, над этим бесполезно смеяться и ещё бесполезнее переучивать.
Ладно, хватит иронии. Как же меня напрягает, что люди постоянно путают прогресс и новизну, да ещё и приплетают привычки и типы личностей. Windows 95 радикально сломала юзерские привычки, добавив таскбар и кнопку «Пуск» — вы видели, чтобы кто-то ненавидел за это Windows 95? Даже законченные психи типа «людей дождя» понимали, что это, как тогда говорили, рулёззз. Когда кнопку «Пуск» сдвинули по максимуму влево и вниз (изначально там был margin в пару пикселей), и стало можно резким движением мыши на неё наводиться*, никто не жаловался, что её сместили. Наоборот, после этих нововведений никто без сервис-пака пользоваться виндой больше не хотел. А центр, который постоянно движется туда-сюда, это реально ломающее изменение. Именно поэтому есть те, кому оно не нравится. Эффекта новизны можно добиться более умными и менее травмирующими способами.
* Сейчас можно видеть, как новые поколения микрософтовских дизайнеров наступают на те же грабли, делая margin в 2 пикселя между краем экрана и полосой прокрутки распахнутого окна. Убедиться в этом может каждый, выполнив
services.msc, максимизировав окно и попытавшись одним щелчком вслепую, резко сдвинув мышь вправо, проскроллиться на один экран вниз. Теперь чтобы щёлкнуть по полосе прокрутки надо прицеливаться. Win11, 24H2.Когда на тело не действует никакая сила, оно движется равномерно и прямолинейно. Вопреки нашей интуиции о том, что сила приводит тела в движение, а при её исчезновении они останавливаются. Нет. Движение происходит и в отсутствие силы, а сила меняет характер этого движения.
Если гравитация не сила, то яблоко падает на планету, как и полагается в отсутствие силы, равномерно и прямолинейно. И притягивающиеся планеты движутся навстречу друг другу равномерно и прямолинейно. Вопреки нашей интуиции о том, что тут есть какое-то ускорение. Нет. Так кажется из-за искривления пространства-времени.
А кусты в Марио — крашенные облака.
Я думал, они официального отношения не имели (как в случае с угонщиками летающей техники). Готов поверить на слово, если вы точно что-то знаете (я сам не знаю и исхожу из здравого смысла).
Вы правда не знаете, как эта проблема решается в Visual Studio? (Вернее, решаЛАСЬ, поскольку в последних версиях идиотизм зашкаливает).
Более полный набор команд спрятан по разным меню, чтоб не мешались, менее полный набор вынесен на тулбары.
Юзеру под свои сценарии даётся кастомизация меню, кастомизация набора тулбаров и кастомизация самих тулбаров.
Придуманы типичные профили (C++/Web/…), которые предлагают выбрать при первом запуске.
Чтобы число команд не страдало от комбинаторного взрыва, некоторые команды запрашивают дополнительные параметры через диалоговые окна (их имена в этом случае заканчивают многоточием).
А мышь не нужна. Хороший UI предполагает, что всё можно сделать с клавиатуры, если, конечно, задача не специфически графическая, как рисование в Фотошопе (об этом я и написал, что GUI — плохой термин). Когда я пишу UI, я всегда проверяю доступность и удобность функционала с клавиатуры.
Для распаковки файла вы выбираете его стрелками в файловом менеджере, затем нажимаете кнопку
Context Menu(слева от правогоCtrl), стрелочками выбираете нужно опцию распаковки и жамкаетеEnter. Предполагается (создателями WinRAR), что в этом меню должны быть самые частые опции: «Распаковать с созданием папки» и «Распаковать без создания папки», а остальные опции в большинстве случаев будут только мешать. И если вам нужны эти другие опции, то вы сразу жамкаетеEnter— откроется окно WinRAR, вы сможете нажать левыйAltи выбрать из меню всё, что хотите, при помощи стрелочек.Это столь же быстро, сколь и печатание буковок, даже быстрее.
И ещё. С тем же успехом, можно сказать: «Я не настолько ненавижу свой мозг, чтобы растрачивать его чудом уцелевшие клеточки на запоминания флагов».
Вы совсем новости не читаете? Не видели, как на днях человек на сказочном Бали с полностью синим лицом просил прощения у всех, кого обманул его колл-центр? Может, тут немного пострадал юридический принцип due process, но вряд ли можно сказать, что ловля не ведётся.