Pull to refresh
-1
0
egorinsk @egorinsk

User

Send message
> Обычно клиентам на это пофиг, они уже привыкли к тормозам ИЕ.

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

Я недавно верстал страницу (фиксированный фон на всю страницу + скругленные уголки + полупрозрачное скроллящееся окно поверх) — в Хроме прокрутка в разы дерганнее, чем в ИЕ7. Старые добрые картинки лучше работают, чем вся эта новомодная CSS3 хрень. И памяти меньше ИЕ7 ест, и рендерит картинку быстрее.

Что касается PIE — почему это надо делать на яваскрипте? В чем проблема все эти костыли делать на сервере, не мучая клиента? Авторы просто поленились сделать нормально, 1 строчку в HTML проще вписать, чем нормальный конвертер шаблонов организовать.
Адаптивный дизайн, это конечно, хорошо. Но мне кажется, перед этим надо решить другие проблемы, а именно: поддержка css2 браузеров и IE6/7 (те, кто говорят про всякие скрипты типа PIE или ie7.js — вы их исходники смотрели? ни один адекватный человек этого монстра на сайт не поставит. Даже начинающему верстальщику понятно, что адаптировать страницы для ИЕ надо не мучая яваскриптом и без того тормозящий браузер, а на стороне сервера). Поддержка отображения с отключенными картинками, CSS и скриптами. Поддержка версии для печати. Поддержка высокого разрешения на айфоне. Поддержка разных шрифтов.

Когда все это успеть сделать. И покажите мне, какой среднестатистический заказчик согласится оплачивать такую верстку? Сдается мне, мало кто захочет.

Возьмем обычную кнопку: если верстать на совесть, на годы, она должна тянуться по горизонтали, по вертикали (если пользователь увеличит шрифт), в новых бразуерах работать на градиентах, в старых на 4, 6 или 9 картинках в углах, в Ие еще и на костылях, должна иметь фон и бордер для браузеров с отключенными картинками, должна иметь черно-белую версию для печати. Вы представляете, сколько на это времени уйдет?

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

Плюс, не понял пассаж про Амазон. Оттуда же товары неделями идут. Да еще и могут не прислать или прислать не то. Стоит ли рисковать?
Заходил на Pinterest, посмотрел мельком, показалось, что это сайт для умственно отсталых: куча картинок, потыренных со всех концов интернета, демотиваторы с глупыми лозунгами. По сути примено то же самое, что можно увидеть в каком-нибудь альбоме из контактика. Где-то среди них, может и есть пара осмысленных картинок, не более. Картинки с одеждой тоже видел, какая-то безвкусная хрень, неудивительно что их спамом рекламируют, так как эти тряпки по доброй воле никто носить не будет.
А интересно, из возмущающихся комментаторов по всему интернету, кто-то возьмет и напишет бесплатную Open Source прогу, и пририсует к ней нормальный интерфейс? Или это дело рук утопающих?

Я не умею под айпад писать, у меня нет айпада и свободного времени.
jQuery сам по себе один большой антипаттерн.
Я тоже негодую.

При проектировании (или копировании/заимствовании) элементов интерфейса важно продумывать различные сценарии их использования.

Однако, многие разработчики вместо этого копируют только внешний вид, или что проще, скачивают и устанавливают какой-нибудь jQuery-плагин или плагин к своей CMS, который делает все за них. Как им кажется. Что с них возьмешь, 5 классов образования.

Что имеем в итоге, мы можем увидеть на примере сайта hantim.ru. Зайдем на страницу со списком вакансий, прокрутим до низу, нажмем пару раз копку «показать еще», промотаем до нижней вакансии и перейдем по ссылке. Теперь жмем кнопку «Назад» в браузере и… попадаем на верхушку списка вакансий. Очень удобно.

Даже крупные сайты, которые делают отличники и победители олимпиад, типа твиттера или вконтакте, из-за аггрессивного использвоания аякса/скриптов имеют проблемы с UX и тормозят в моей Опере.

А ведь, если бы использовались классические HTML-без-скриптов технологии, user expirience был бы куда как лучше. Ну не умеешь javascript, не используй ты его. Пиши черным текстом на белом фоне. И все бы работало. И страница бы плавно прокручивалась.

Также, некоторые верстальщики делают кнопки и целые диалоговые окна одной картинкой (нетянущиеся), делают фиксированную ширину страницы, или наоборот, не ставят max-width для текста на большом мониторе, не поддерживают (или сайт адски тормозит) ИЕ7, ставят нечитаемый шрифт, не оформляют правильно заголовки, делают кнопки ссылками с javascript void(0) и т.д. Потому что в отличие от классических профессий типа строителя, где требуется и образование, и опыт работы, и есть нормы и стандарты, контролирующие органы и надзор, в веб-разработку приходят всякие студенты с гуманитарным образованием, или фрилансеры, которые не знают, чем addEventListener от attachEvent отлитчается, и лепят вот такое непотребство. И такие же заказчики у них это принимают. Уровень непрофессионализма зашкаливает за все мыслимые пределы.

На мой взгляд, такие люди, которые тупо копируют идеи с твиттера, и реализуют их на уровне $('.show-more').click($.ajax(...)), крайне непрофессиональны. Так же как и те, кто делает кастомные селекты (вы знаете, как ваши селекты на всяких айпадах выглядят?? А как они в Опере Мини вызывают перезагрузку страницы?), флеш-меню и прочий маразм. Либо делайте нормально, либо используйте проверенные временем технологии. Двоечники, блин.

В взломанной версии Driver: Parallel Lines оружие главного героя становилось в опеделенный момент невидимым (хотя и полностью функциональным). Люди, которые в комментариях на форумах или ютубе спрашивали, почему это так, выглядели гулпо.
Что предложите для адекватной поддержки данного кода на IE6+, FF2+ и прочей древней нечисти? А то так ваша статья, извините, на уровне школьного сочинения первоклассника. Такой код нельзя использовать в серьезном проекте с требовательным к эстетике заказчиком, к примеру, так как вам спросят, а почему у директора на компьютере кнопка квадратная получилась, что вы нам за ерунду сделали?

Ценность статьи, таким образом, отстутствует, так как на css3 такую примитивщину написать самому быстрее, чем прочесть статью.
> Глобальные переменные (аля сессий) перестают быть валидными, доступ к файловой системе обрубается.

В PHP есть чудесная функция register_shutdown_function(). В ней доступ к файловой системе есть.

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

Не используйте деструкторы для выполнения какой-либо логики (это не только к PHP относится). Если вам надо отсоединить Васю от мира, обнулить ему карму, и прочее, сделайте явный вызов например $world->detach($vasyaId) или $vasya->detach();

Я не представляю ситуации, где деструкторы *жизненно* неоходимы. Единственное, что я бы в них оставил — это вещи типа assert() (например, убедиться что все важные данные сохранены в БД перед уничтожением объекта).

Вам надо сохранить какой-нибудь кеш на диск перед завершением работы скрипта? Сделайте например вызов App::addShutdownHandler(array($his, 'saveData')) и все будет работать.

Явное всегда лучше неявного. Я сталкивался с логикой в конструкторах, и ничего, кроме негативных эмоций, это не вызывает. Это треш, который невозможно отлаживать.

В Си++, который вы упоминаете, деструкторы тоже предназначены исключительно для освобождения памяти дочерних объектов, а люди, которые туда пихают логику, напрашиваются на канделябр от коллеги-разарботчика.
Проще по моему в сервисах при разработке использовать Вконтакте/mailru/OpenID/Фейсбук/интегрировать с корпоративным Active Directory на худой конец. А не ставить какие-то уродливые (мои глаза!!) тяжелые приложения.
И что хорошего? Такие сайты едят в разы больше ОЗУ. Например, в Хроме, если добавить на страничку хотя бы 1 скрипт, потребление памяти (в сравнении с бесскриптовой страницей) сразу же подскакивает на 6Мб.

Я хочу, чтобы дизайн делался на HTML/CSS без скриптов, без тяжелых картинок (которые ломают плавную прокрутку, которая впрочем есть только в Опере и ИЕ), просто хорошо типографированный текст и иллюстрации на белом фоне (еще бы хотелось, чтобы умственно отсталые люди, а также неграмотные, и не умеющие правильно ставить запятые люди были лишены возможности писать что-либо в интернете, но это уже утопия). Это сложно? Но нет, каждый школоверстальщик считает важным либо сделать из страницы Windows 7, либо налепить анимированных меню. Да горите вы все в аду, нелюди.
В статье написана ерунда. Хоть бы поинтересовались новостями медицины сначала. Нет там никаких протоколов. Есть тысячи нервных волокон, входящих в мозг и выходящих из него. И, я подозреваю, у разных людей по-разному подсоединенные. Плюс большое число нейронов, тоже у разных людей по-разному связанных между собой.

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

Про «убирать боль» — это вообще чушь. Это можно и сейчас сделать, крепко упоровшись. Только вот решит ли это проблему? Если бы болезни можно было лечить правильно посланным нервным импульсом, человек бы давно выработал в себе такую возможность.

Мозг устроен (согласно современным представлениям) по другим принципам, не как набор бинарных ячеек и логических схем, и в него так просто не «закачаешь» информацию из другого мозга. «Выкачать» информацию теоретически можно, если не разрушая мозг (ну или аккуратно заморозив перед разрушением) считать структуру связей между нейронами.

Но у меня есть подозрение, что «умение ездить на велосипеде», и вообще, любые мысли и эмоции, у разных людей кодируется немного по-разному (так как вряд ли у 2 отдельно взятых людей схема мозга, нервных связей совпадает с точностью до нейрона), и таким образом, считанная информация, в общем, довольно-таки бесполезна. По крайней мере без привязки к устройству остальной части организма.

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

Ну и не будет человечество никаким разумом. Большая часть людей — обычные потребители, им это просто не нужно. Не так давно все хотели лететь на Марс, и дальше, а сейчас как-то успокоились, и на Земле неплохо.

Так что не надо мучать мозг, а надо создавать хорошие и умные инструменты, с которыми человек сможет работать и которые будут брать на себя вычислительные, опасные, сложные, тяжелые, монотонные, нетворческие задачи.
Вещь, конечно, интересная, а каким образом получаются данные промежуточных этапов рендеринга? С помощью какого-то хитрого АПИ выдергиваются из внутренностей видеокарты или просто используется чисто софтверный рендеринг? И как можно трассировать шейдер, он же тоже вроде бы не на CPU выполняется?

Я пробовал писать библиотеку (без всяких jQuery), которая бы в новых браузерах делала анимацию присваиванием класса и CSS transition, а в старых — анимировала вручную по таймеру. В итоге получилось, что у меня и в Опере, и в Хроме CSS анимация хуже, глючнее и дерганней, чем яваскриптовая.

Идея была примерно такая: вызывать что-то вроде animateNode(node, { from: 'css-class1', to: 'css-class2', onFinish: function(){} }). А стили для анимации хранились бы в CSS, а не в JS коде, как это делается при использовании jQuery (что идеологически неправильно). В новых браузерах просто меняется класс, в старых запускается таймер, в совсем старых типа ИЕ6 анимация отключается, чтобы не тормозить браузер.

Итог, на сегодняшний день этот подход только увеличивает тяжесть яваскриптового кода, не давая никаких выгод, по крайней мере на десктопе.

И да, здорово раздражает тот факт, что в отсталом w3c DOM нельзя получить примененные к элементу CSS-селекторы и стили (чтобы составить список для анимации). То есть, имея в стилях .some-class { color: red; } и элемент с class=«some-class», мы не можем яваскриптом получить исходное CSS правило. Также, мы не можем прочитать из CSSStyle неподдерживаемые браузером стили. Это радикально осложняет написание подобного скрипта.
Автор статьи видимо не в курсе существования статических методов класса? Лучше свалить в глобальное пространство имен все функции скопом?

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

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

Конечно, есть немало примеров оверинжиниринга, когда ради 2 простых действий используется куча геттеров, сеттеров, наследование, абстрактные интерфейсы и фабрика отдельным классом. Или ради сложения дат делают отдельный класс. Но разве это говорит о недостатках ООП подхода? Нет.

Использование Ооп никак не противоречи KISS, DRY и подобным рекомендациям.

Давайте возьмем любой проект, над которым работает хотя бы человек 5, или в котором планируется большрой объем фнукционала, и посмотрим, с какой скоростью как у них будут при таком «первобытном» подходе появляться конфликты имен, дублирование кода, лапша и баги. Ваши костыли не масштабируются. День школоты на Хабре, блин.
Плохие художники копируют, как говорится…
Официальная библиотека для написания костылей? Внедрять чужой код в адресное пространство другого кода? Да хотя это еще ничего, раньше было принято вообще свои конфиги в c:\windows сваливать и системные библиотеки dll заменять. Уиндоуз-разработчики, они такие… особенные.
Прежде чем критиковать аналитиков из ЛК, все же стоит признать, что они проделали немалый труд по анализу файла, распознать и разобрать в ассемблерном коде все эти очереди событий, объекты и прочее, все же не так и просто.

Но странно, что Си не узнали. Видимо, хакеры использовали объектный файл без стандартных библиотек и стандартного сишного пролога?

Information

Rating
Does not participate
Date of birth
Registered
Activity