Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
Всем привет. Давно мучал вопрос: как люди объясняют, что описание всех событий на странице должно быть исключительно через делегаты и это круто, а писать прямо в тегах что-то типа onclick="some kind of function" это плохо и вообще bad style. Напоровшись на очередной проект, где описание логики страницы в несколько тысяч строк представляло из себя километры делегатов по довольно мутным селекторам я осознал, что вкурить эту хрень без пол литра довольно проблематично. В то время как разбирая разметку в поисках концов гораздо проще понять что происходит, если хотя бы в банальных ситуациях обработка onclick присутствует именно в тэге, а не закопано в сотнях строк кода, причем с селектором вида "table p button". Я уж не говорю что разметка может поменяться и чертов селектор отвалится, тогда как onlclick в кнопке будет жить да поживать. Я не против делегатов в целом (это была бы редкая ересь), мне непонятно зачем подчищать все события с разметки под ноль, делая код/разметку довольно хреново понимаемой. В чем соль этой "красоты"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 15:59 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
Rosiv, полностью поддерживаю. сам пришёл к такому же мнению. куда проще нажать ctrl и кликнуть мышкой и ide сама метнётся к функции. но к сожалению не всегда это возможно, иногда динамически назначаются обработчики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 16:12 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
RosivЯ не против делегатов в целом Всё верно. Крайности в обе стороны плохо. Все события под ноль и наоборт, все события в тегах - это крайность. Т.е. вопрос не имеет смысла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 16:56 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
Откуда вообще километры делегатов? ИМХО проблема не в том как навесить события, а в том, что компонентный подход отсутсвует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 17:36 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
ок, приятно сознавать, что не я один задумывался над этой проблемой. Ибо да, ctrl+click и переходишь к функции и все понятно. А через делегаты (которые описаны где-то в блоке init строк эдак в 500) это все смотреть довольно проблематично. По поводу "почему так много строк" - страница шибко сложная. Там ajax риквестов штук 30, плюс куча промежуточной логики. Вот и получаем на ровном месте кучу строк. Но к сожалению разделять объекты отвечающие за вызовы и отлов промизов, логику приложения и просто вызов функций у многих "писателей" не модно. Создаем класс и пихаем туда через запятую все подряд, не стесняясь функций в 5-6 экранов. В целом я делегаты использую в 2х случаях: 1) контент генерится как-то автоматически. В целом я стараюсь от этой штуки уходить и чтобы html из скриптов не получался в принципе. Собственно для того репитеры и прочее барахло и придумали 2) элементов много. Они как-то вложены и вызываются однотипно. Но как правило кнопок это не касается. И потому кнопки стараюсь почти всегда через onclick делать, чтобы потом при необходимости сразу найти что тут собственно происходит. Когда на руках несколько проектов, с суммарным количеством от 10к строк, помнить всю эту ересь с делегатами с вложенными селеторами просто нереально. Ну а по пол часа вкуривать что откуда идет - тоже как-то грустно. Чтобы 2 раза не вставать, кто мне тогда сможет опять таки объяснить преимущества создания класса, перед простым объектом, при условии что мы не собираемся этот класс как либо переопределять или наследовать в принципе? Т.е. на кой черт люди пишут простыни с прототипом, чтобы в конце вызвать var a = new b(); вместо var b = {/* object methods etc*/}; b.init(). Есть в этом какой-то сакральный смысл, которого я не понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 17:55 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
Rosiv, Все очень просто. В правильном коде шаблоны лежат отдельно, контроллеры отдельно. В шаблонах существует только разметка, самая примитивная, без onclick и style и обычно с примитивной логикой. В контролерах описано все поведение шаблона, через делегаты или нет - это отдельная тема. Если все правильно разложено не бывает проблем, чтобы найти нужный кусок кода, это происходит даже быстрее, чем искать онклик, потом в каком-то проект-утилс-файле метод, который на этот онклик сработает. Вторая встречающаяся проблема, если вам надо выводить в шапку значение ячейки таблицы, скажем 100 на 100 над которым находится мышь, а по клику запомнить его, навскидку, сколько будет весить такая табличка без делегатов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 18:32 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
Rosivок, приятно сознавать, что не я один задумывался над этой проблемой. Ибо да, ctrl+click и переходишь к функции и все понятно. А через делегаты (которые описаны где-то в блоке init строк эдак в 500) это все смотреть довольно проблематично. По поводу "почему так много строк" - страница шибко сложная. Там ajax риквестов штук 30, плюс куча промежуточной логики. Вот и получаем на ровном месте кучу строк. Но к сожалению разделять объекты отвечающие за вызовы и отлов промизов, логику приложения и просто вызов функций у многих "писателей" не модно. Создаем класс и пихаем туда через запятую все подряд, не стесняясь функций в 5-6 экранов.Для меня это выглядит как проблема в конкретном говнокоде том, что конкретный проект написан плохо. Следовательно с ним и надо рабираться. Рефакторить. RosivЧтобы 2 раза не вставать, кто мне тогда сможет опять таки объяснить преимущества создания класса, перед простым объектом, при условии что мы не собираемся этот класс как либо переопределять или наследовать в принципе? Т.е. на кой черт люди пишут простыни с прототипом, чтобы в конце вызвать var a = new b(); вместо var b = {/* object methods etc*/}; b.init(). Есть в этом какой-то сакральный смысл, которого я не понимаю?Хм, ну вот написал я Button и не собираюсь его менять и наследовать, а только использовать следующим образом: Код: javascript 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 18:48 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
Rosiv, По видимому ты никогда не работал с AngularJS, Backbone, ReactJS, Knockout, EmberJS, Sencha? Если даже ничего из перечисленного по неким религиозным соображениям не нравится, пилится что-то подобное, но своё, с объектной моделью, разделением на конкретные структурные слои, шаблонизатор. Кто сегодня пишет приложения на onclick-ах, или ручным приводом с назначением делегатов по селекторам? Это же практически прибивание себя за яйца к разводному мосту. Ну может совсем небольшие сайтики, где надо отправить пару формочек и не требуют этого, и там достаточно повесить событие на onclick, но разрабатывать большие проекты таким образом... Да лучше сразу пристрелиться. Видел я один раз подобный проект, мне до сих пор хочется его развидеть. Естественно судьба проекта не выдержала испытание временем, ну что можно решить Ctrl-Click-ом? Если разработка представляется бесконечной и безумной отладкой для пациента, то это очень далеко от мира естественной понятной разработки современных приложений. Тут проблема видима в разработке через дебаг. Сегодня, мы открываем объектную модель и смотрим что должно происходить, например, при сохранении объекта. Не важно, каким образом это случилось, пользователь нажал кнопку, нажал Ctrl-Enter или даже Ctrl-Save, может он закрыл модальное окно, и сработал автосейв, мы работаем с бизнес-событием, а не с обработчиком кнопки. И никто не лезет в кнопку по Ctrl-Click. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 19:22 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
RosivТ.е. на кой черт люди пишут простыни с прототипом, чтобы в конце вызвать var a = new b(); вместо var b = {/* object methods etc*/}; b.init(). Есть в этом какой-то сакральный смысл, которого я не понимаю? DRY, и другие принципы разработки. Тут надо курить тему по разработке вообще, а не ударяться в конкретную конструкцию на JS, и понимание со временем придёт. Ну и опыт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 19:27 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
hVosttRosiv, По видимому ты никогда не работал с AngularJS, Backbone, ReactJS, Knockout, EmberJS, Sencha? Если даже ничего из перечисленного по неким религиозным соображениям не нравится, пилится что-то подобное, но своё, с объектной моделью, разделением на конкретные структурные слои, шаблонизатор. Все это подходит для SPA, а если у ТС многостраничное приложение с чисто серверной отрисовкой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2016, 12:11 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
ПарамонВсе это подходит для SPA может наоборот? Для SPA не подходит? Т.к. там больше динамики). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2016, 12:20 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
ПарамонВсе это подходит для SPA, а если у ТС многостраничное приложение с чисто серверной отрисовкой? Тогда вопрос, а зачем вообще ТС-у яваскрипт? Наверное затем, чтобы добавить на свои страницы немного динамики. Если так, то не обязательно брать в разработку монстров типа AngularJS, с полным фаршем, включая марошрутизацию. Однако это не означает, что надо отказаться от компонентной модели разрботки. У ТС-а раздрай в голове, между способами привязки обработки события на селектор или через onclick. Он не знает, что биндить обработку событий можно как-то иначе, наверняка у него в коде лапша на лапше, которую он и сам до конца уже не понимает, а любой адекватный программист просто с горя напьётся, как только посидит часок над таким проектом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2016, 13:42 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
hVosttНаверное затем, чтобы добавить на свои страницы немного динамики. Если так, то не обязательно брать в разработку монстров типа AngularJS, с полным фаршем, включая марошрутизацию. Однако это не означает, что надо отказаться от компонентной модели разрботки. Для того, чтобы добавить немного динамики нет смысла в AngularJS, даже урезанном. Думаю автор использует jquery для игр с дом, что в принципе нормально, при модульном подходе. jquery склоняет к привязке на селекторы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2016, 15:16 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
ПарамонДля того, чтобы добавить немного динамики нет смысла в AngularJS, даже урезанном. Думаю автор использует jquery для игр с дом, что в принципе нормально, при модульном подходе. jquery склоняет к привязке на селекторы. Ну исходя из того, что ТС писал, речь идёт о сотнях и тысячах обработчиках, по которым ему удобно ходить по ctrl-click. Насчёт селекторов, у них есть сакральное преимущество. Можно повесить всего один обработчик и он будет ловить хоть тысячу событий. А если поставить себе за правило НИКОГДА НЕ ПРИВЯЗЫВАТЬСЯ К СТИЛЕВЫМ СЕЛЕКТОРАМ, то и проблема уменьшится до масштабов мухи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2016, 16:36 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
hVosttНИКОГДА НЕ ПРИВЯЗЫВАТЬСЯ К СТИЛЕВЫМ СЕЛЕКТОРАМ Тоже очень спорное утверждение. Я, например стараюсь в повторяющихся элементах использовать не более одного селектора или не использовать их совсем. Когда начинаешь оперировать с 10к элементами дома на странице - разница ощутима. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 14:39 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
mage.lanhVosttНИКОГДА НЕ ПРИВЯЗЫВАТЬСЯ К СТИЛЕВЫМ СЕЛЕКТОРАМ Тоже очень спорное утверждение. Я, например стараюсь в повторяющихся элементах использовать не более одного селектора или не использовать их совсем. Когда начинаешь оперировать с 10к элементами дома на странице - разница ощутима.а если нужно ВНЕЗАПНО изменить внешний вид/структуру, то вылезают грабли в виде отвалившихся от селектора кнопок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 14:44 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
Antonariy, Наш спор - это путь в никуда. Если внезапно надо менять структуру - оторвите руки верстальщику, если дизайн был адаптивным, достаточно поменять less или что там у вас в качестве css. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 17:52 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
я так понимаю, селекторы входят в ГУИ и VIEW. Т.е. это фронт и работа фронт-программистов (прогерФронт+верстальщик). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 17:55 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
mage.lanAntonariy, Наш спор - это путь в никуда. Если внезапно надо менять структуру - оторвите руки верстальщику, если дизайн был адаптивным, достаточно поменять less или что там у вас в качестве css. Существуют и другие причины, когда надо изменить структуру. К примеру в результате эксперимента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2016, 09:49 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
skyANAСуществуют и другие причины, когда надо изменить структуру. К примеру в результате эксперимента. На живом проекте? Первый раз слышу. В любом случае после "экспериментов" делают регресс тестирование, т.к. отваливаются не только события на кнопочках ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2016, 14:33 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
mage.lanskyANAСуществуют и другие причины, когда надо изменить структуру. К примеру в результате эксперимента. На живом проекте? Первый раз слышу. В любом случае после "экспериментов" делают регресс тестирование, т.к. отваливаются не только события на кнопочках Ну у кого-то ничего не отваливается :) Да и регресс тестирование чего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2016, 14:50 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
hVosttRosiv, По видимому ты никогда не работал с AngularJS, Backbone, ReactJS, Knockout, EmberJS, Sencha? Если даже ничего из перечисленного по неким религиозным соображениям не нравится, пилится что-то подобное, но своё, с объектной моделью, разделением на конкретные структурные слои, шаблонизатор. Работал, причем со всем списком. Но это не мешает людям писать всякую ересь на проектах, на которые я прихожу. Sencha вообще отдельная тема, которая с моей точки зрения довольно сомнительна с точки зрения скорости разработки, особенно при введении новых людей в проект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2016, 12:29 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
RosivSencha вообще отдельная тема, которая с моей точки зрения довольно сомнительна с точки зрения скорости разработки, особенно при введении новых людей в проект. ну, дак это целая платформа. Понятно, что её нужно знать чтобы быстро писать. Альтернатив то нету. Без платформы, с нуля быстро писать никак не получится(. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2016, 13:33 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
mage.lanТоже очень спорное утверждение. Я, например стараюсь в повторяющихся элементах использовать не более одного селектора или не использовать их совсем. Когда начинаешь оперировать с 10к элементами дома на странице - разница ощутима. Ничего спорного нет. Стилевые селекторы нужны, чтобы навешивать стиль. Если нужна функциональность, либо заведи отдельный класс селекторов с префиксом js- (например, js-open-modal, js-collapse...), либо вообще отдельные атрибуты. Мухи отдельно, котлеты отдельно. И сразу видно, что на элемент что-то навешано, просто тупо по названиям классов или по атрибутам. Не надо думать и гадать, ванговать и стучать по хрустальному шару. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2016, 17:57 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
RosivSencha вообще отдельная тема, которая с моей точки зрения довольно сомнительна с точки зрения скорости разработки, особенно при введении новых людей в проект. С точки зрения скорости разработки, на Sencha можно замутить приложуху за месяц усилиями трёх-четырёх программистов, с функциональностью, которую с нуля за то же время не запилят и десять профессионалов. И можно в любое время вводить в команду специалистов на Sencha. Это конечно не значит, что Sencha не имеет проблем, но для определённых классов задач, это один из наилучших выборов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2016, 18:01 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
hVosttНичего спорного нет. Стилевые селекторы нужны, чтобы навешивать стиль. Если нужна функциональность, либо заведи отдельный класс селекторов с префиксом js- (например, js-open-modal, js-collapse...), либо вообще отдельные атрибуты. Мухи отдельно, котлеты отдельно. И сразу видно, что на элемент что-то навешано, просто тупо по названиям классов или по атрибутам. Не надо думать и гадать, ванговать и стучать по хрустальному шару. Ванговать и продираться сквозь такой код js-my-super-puper-mega-needed-selector тоже одно удовольствие. Если это класс вложенный в десятки дивов, то делегировать его лучше зная стркутуру ДОМ, иначе все начинает сильно тупить. Если селектим структуру - то "внезапное" изменение шаблона приведет к тому, что все отвалится. Обычная проблема - правильно и адекватно именовать классы, а лучше вообще не именовать, тормозит. Вероятно где-то еще можно убедить заказчика, что не более 100 записей на страницу с последующей подкачкой, у меня такое не проходит. hVosttС точки зрения скорости разработки, на Sencha можно замутить приложуху за месяц усилиями трёх-четырёх программистов, с функциональностью, которую с нуля за то же время не запилят и десять профессионалов. И можно в любое время вводить в команду специалистов на Sencha. Это конечно не значит, что Sencha не имеет проблем, но для определённых классов задач, это один из наилучших выборов. 10 профи на ванила-джиэс? я больше чем уверен, что один профессионал, с "налетом" не менее 5000 часов, запилит за месяц то, что 3-4 программиста будут пилить тот же месяц на ExtJS, плюс они будут потом вылавливать косяки. А как потом найти этих разработчиков? Проект написанный мной на EmberJS в компании, гле было порядка 10 технологов никто не смог поддерживать, до сих пор думают переписать, возможно и переписали, как раз за месяц был написан, я попутно Ember изучал. Ну и кроме EmberJS в проекте ничего не было, я не извращался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2016, 16:15 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
mage.lanЕсли это класс вложенный в десятки дивов Если так отвратительно и мерзко свёрстана страница, то надо просто отпилить руки верстальщику, выкинуть его на свалку, и взять в команду нормального, с головой и прямыми руками. А то с таким подходом, как ты пишешь, можно и вилкой себе глаз проткнуть -- и ничего тебе уже не поможет в этой жизни. mage.lanОбычная проблема - правильно и адекватно именовать классы, а лучше вообще не именовать, тормозит. Я не знаю, в какой книжке сказок-страшилок ты это вычитал, но нет. mage.lanВанговать и продираться сквозь такой код js-my-super-puper-mega-needed-selector тоже одно удовольствие. Это из разряда косорукому и вилка -- смертельное самоубийственное оружие. Необходимо оценивать задачу, её сложность и выбирать наиболее эффективные инструменты и способы её реализации. Но как бы там ни было. Использование стилевых селекторов для навешивания событий и поведения -- однозначно плохо на 100% абсолютно всегда, без вариантов. Настолько плохо, что ребятам, которые так делают, выдаётся немедленная путёвка на рынок труда без возможности возврата. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2016, 23:55 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
hVosttЕсли так отвратительно и мерзко свёрстана страница... Ясно. Жаль что наша беседа перешла на эмоцию. у SPA вложенность легко достигает 10 уровня. Общий аутлет, в нем аутлеты для меню и контента (2 уровень) скрол-див таблицы в котором 3 уровня дивов сама таблица (6). Это только структура, я стараюсь на оформление не тратить больше одного контейнера, но иногда это не реально, я вам показал 7 уровней вложенности, которые никак не зависят от верстака. С другой стороны, на моих проектах я разложу табличку в плитку и поменяю весь дизайн без изменения структуры. hVosttНеобходимо оценивать задачу, её сложность и выбирать наиболее эффективные инструменты и способы её реализации. [Скачусь на эмоцию]О чудо! Думающий технолог-архитектор, если честно я давно таких уже не видел, но это наверное моя проблема. hVosttНо как бы там ни было. Использование стилевых селекторов для навешивания событий и поведения -- однозначно плохо на 100% абсолютно всегда, без вариантов. Настолько плохо, что ребятам, которые так делают, выдаётся немедленная путёвка на рынок труда без возможности возврата. Опять как-то скомкано. Я вас за больное зацепил? Извините меня грешного. [Серьезно] Все эти селекторы растут от яндексовского БЭМ-а, модно, но не все понимают, когда и зачем они нужны. Нет серебрянной пули, но на высоконагруженых проектах (ака толстый клиент), когда браузер показывает и помнит тонны данных, приходится бороться за любые потери и мелочи, которые могут протормозить браузер. ЗЫ: я понял и запомнил, что вы неравнодушны к вилкам, давайте оставим их для обеденного перерыва. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2016, 11:10 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
mage.lanЯсно. Жаль что наша беседа перешла на эмоцию. Ого, принцесса на горошине в жизни! Я понимаю, что критерии "перехода на эмоции" у всех могут быть разные, но тогда предупреждай заранее, что ты излишне чувствительный и ранимый, чтобы отвечать тебе в исключительно pH-нейтральном и стерильном стиле. А то не дай бог чего случится mage.lanу SPA вложенность легко достигает 10 уровня. Общий аутлет, в нем аутлеты для меню и контента (2 уровень) скрол-див таблицы в котором 3 уровня дивов сама таблица (6). Это только структура, я стараюсь на оформление не тратить больше одного контейнера, но иногда это не реально, я вам показал 7 уровней вложенности, которые никак не зависят от верстака. В SPA и подобных приложениях вёрстка генерируется из кусочков, вложенных друг в друга лейаутов и компонентов, и никто в здравом уме не лазит по получившейся вёрстке руками. И стараются сделать стили максимально изолированными (ну и потуги БЭМ берём в расчёт тоже). А когда ты говоришь про какие-то уровни вложенности, где собираешься ковыряться руками, я ещё раз повторю про верстальщика. mage.lan[Скачусь на эмоцию]О чудо! Думающий технолог-архитектор, если честно я давно таких уже не видел, но это наверное моя проблема. Я не знаю откуда у тебя такой болезненный пунктик про эмоции. Ты наверное слишком эмоционально реагируешь на эмоции mage.lanОпять как-то скомкано. Я вас за больное зацепил? Извините меня грешного. [Серьезно] Почему моя категоричность воспринимается, как что-то эмоциональное? Я эти же слова и ночью повторю с просони, ну может добавлю в конце ещё пару крепких слов. mage.lanВсе эти селекторы растут от яндексовского БЭМ-а, модно, но не все понимают, когда и зачем они нужны. А кто понимает? И как понять, что кто-то понимает, а кто-то нет? Надо изучать насколько умное лицо у говорящего? mage.lanНет серебрянной пули, но на высоконагруженых проектах (ака толстый клиент), когда браузер показывает и помнит тонны данных, приходится бороться за любые потери и мелочи, которые могут протормозить браузер. Ещё раз говорю, селекторы и их количество -- последнее, что виновато в тормозах. Если борешься, выбирай себе противника более существенного, чем ветряные мельницы. mage.lanЗЫ: я понял и запомнил, что вы неравнодушны к вилкам, давайте оставим их для обеденного перерыва. А чё, отличная аналогия. Я уважаю всякие аналогии. И не виноват, если кто-то их воспринимает буквально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2016, 11:30 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
hVostt, Опять какая-то странная реакция. Когда я говорю про эмоции - это означает, что у оппонента закончились аргументы и он перешел на стиль разговора "сам дурак". Я могу так общаться, меня это не коробит. Только смысл это делать на форуме? Мы ж не в курилке. Все что я хотел сказать в данной теме, наверное, я сказал. Когда столкнетесь с моими проблемами по производительности, приходите обсудим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2016, 11:53 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
mage.lanно на высоконагруженых проектах (ака толстый клиент) только у меня когнитивный диссонанс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2016, 11:54 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
mage.lanОпять какая-то странная реакция. Я вообще спорного вопроса не вижу, насчёт которого у тебя кончились какие-то непонятные аргументы. Ты бред несёшь по поводу того, что количество селекторов сильно ударяет по производительности браузера. Это факт, чего его обсуждать? Причины того, что ты говоришь глупости? Мне это не интересно. mage.lanВсе что я хотел сказать в данной теме, наверное, я сказал. Когда столкнетесь с моими проблемами по производительности, приходите обсудим. Ты сказал бред. Надо очень сильно постараться, чтобы от количества селекторов пострадала твоя производительность. Но тогда уже проблема в другом. Сам себе злобный буратино. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2016, 11:59 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
Изопропилmage.lanно на высоконагруженых проектах (ака толстый клиент) только у меня когнитивный диссонанс? Да только у вас, потому что в данном случае имелась в виду не система, а интерфейс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2016, 12:01 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
hVosttТы сказал бред. Надо очень сильно постараться, чтобы от количества селекторов пострадала твоя производительность. Но тогда уже проблема в другом. Сам себе злобный буратино. Давайте прекратим. Я уже понял, что вы не сталкивались с проектами такой сложности. И вряд-ли читали исходники jQuery. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2016, 12:04 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
Изопропилmage.lanно на высоконагруженых проектах (ака толстый клиент) только у меня когнитивный диссонанс? нет)). Просто им пора уже переходить к коду и примерам с кодом. Т.к. трёп (в хорошем смысле) стал неэффективным). IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2016, 12:20 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
mage.lanДавайте прекратим. Я уже понял, что вы не сталкивались с проектами такой сложности. И вряд-ли читали исходники jQuery. Ты хочешь, чтобы я прекратил говорить, что ты несёшь ахинею? Я могу подкрепить свои слова фактами. На facebook.com почти 3 тыс. селекторов, чуть больше 2 тыс. правил. И миллионы пользователей, или сколько их там (миллиарды?) не испытывают неудобств. На амазоне 5 тыщ. селекторов и 3.5 тыщ. правил. Ну и т.д. Можешь рассказать конечно о своих проектах со сложностью просто межгалактических масштабов, посмеши народ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2016, 13:07 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
hVosttТы хочешь, чтобы я прекратил говорить, что ты несёшь ахинею? Я могу подкрепить свои слова фактами. На facebook.com почти 3 тыс. селекторов, чуть больше 2 тыс. правил. И миллионы пользователей, или сколько их там (миллиарды?) не испытывают неудобств. На амазоне 5 тыщ. селекторов и 3.5 тыщ. правил. Ну и т.д. Можешь рассказать конечно о своих проектах со сложностью просто межгалактических масштабов, посмеши народ. Очень плохие примеры. Пользователи тут при чем? Мы сервер-сайд обсуждаем? Фейсбук - тупит Амазон - меньше, но тупит Для примера, у меня есть таблицы, где браузеру приходится справлятся ~20 тысячами селекторов, там работает только около 4к активных элементов, естественно на делегатах. Это криминал. Система устроена так, что она больше 5к селекторов на странице старается не держать, это обычное рабочее состояние... Всякого говна в data у меня тоже хватает. Вы мне сейчас предлагаете вывести на 25% больше селекторов? Расслабтесь, пилите свой академический код дальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2016, 13:54 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
hVosttМожешь рассказать конечно о своих проектах со сложностью просто межгалактических масштабов, посмеши народ. Тупо, для примера, чтобы было понятно о каких таблицах идет речь. Основное отличие от амазона, ибея, алиэкспреса в том, что если в категории 1000 товаров, то вся 1000 будет доступна сразу, без пагинации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2016, 14:48 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
mage.lanДля примера, у меня есть таблицы, где браузеру приходится справлятся ~20 тысячами селекторов, там работает только около 4к активных элементов, естественно на делегатах. Это криминал. Система устроена так, что она больше 5к селекторов на странице старается не держать, это обычное рабочее состояние... Всякого говна в data у меня тоже хватает. Вы мне сейчас предлагаете вывести на 25% больше селекторов? Дело в том, что узкое горлышко производительности здесь вовсе не в селекторах. Суть проблемы могу выразить аналогией: известно, что выпив несколько литров воды за раз, можно умереть, зная это ты пытаешься контролировать поток поступающей воды в организм, чтобы ему не заплохело. Но известно очень мало случаев, когда умирали или заболевали именно по этой причине. mage.lanТупо, для примера, чтобы было понятно о каких таблицах идет речь. Основное отличие от амазона, ибея, алиэкспреса в том, что если в категории 1000 товаров, то вся 1000 будет доступна сразу, без пагинации. Отличный пример твоей проблемы. Обсуждать именно такое решение бессмысленно, почему именно так понадобилось тебе или твоему заказчику -- это вне моей компетенции. Однако вряд ли тебе поигрушки с экономией на селекторах помогут отобразить на странице десятки тысяч товаров сразу без задержек, не говоря уже о сотнях тысяч и миллионах. Так что всего 1000 товаров в категории это не более чем везение в конкретном случае. Резюмирую, количество селекторов здесь не играет роли, так как не вытягивает решение на произвольном количестве товаров. Дискутировать же на очевидную большинству людей тему, что сразу большое количество итемов не нужно никому по причине банальной неупотребимости, я пожалуй не буду. Насчёт эмоций, не принимай всё слишком близко к сердцу, никакого негативного отношения у меня к тебе нет, критикуется не твоя персона, а лишь твои конкретные слова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2016, 15:18 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
mage.lanФейсбук - тупит Амазон - меньше, но тупит Я не сомневаюсь, что этим позорным проектам далеко до магазина консервированных огурцов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2016, 15:20 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
hVosttmage.lanФейсбук - тупит Амазон - меньше, но тупит Я не сомневаюсь, что этим позорным проектам далеко до магазина консервированных огурцов Попытка юмора? Амазон такой древний, что просто ппц, а фейсбук... у них просто реакт голоаного мозга. Если что, "магазин консервированных огурцов", это не магазин, в твоем понимании. И это не единственный подобный проект с подобными требованиями. Другое дело, что современные смузи-технологи такое делать не умеют. Ведь это не более чем везение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2016, 16:14 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
mage.lanАмазон такой древний, что просто ппц, а фейсбук... у них просто реакт голоаного мозга покажи без логирования, где и что там у них тормозит. Просто интересно о чём разговор). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2016, 17:21 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
Petro123покажи без логирования, где и что там у них тормозит. Просто интересно о чём разговор). Господи, открываем в хроме https://www.facebook.com/ делаем свайп по тачу, наслаждаемся, как у них прыгает все, делаем еще свайп, опять наслаждаемся. Можно туда-сида помотать, посмотреть как у них статьи исчезают. Мне честно, лень сейчас fb профилировать, чтобы что-то доказывать. Для примера возьмите гугл-картинки, забейте "сиськи" в поиск и тоже посвайпите, разница видна, если снять розовые очки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2016, 18:49 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
mage.lan, Ну если вам лень, то и и мне тоже. Отсюда вывод что вам в ПТ. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2016, 19:16 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
mage.lanЕсли что, "магазин консервированных огурцов", это не магазин, в твоем понимании. И это не единственный подобный проект с подобными требованиями. Другое дело, что современные смузи-технологи такое делать не умеют. Ведь это не более чем везение. Требование, это конечный результат и его качество. Загружать сразу 1000 товаров, как и вести исключительно разработку в костюме Зелибобы, это не требование -- это патологическая не способность разработчика решить задачу удобный фильтрации, сортировки и моментальной подгрузке итемов при скролле (виртуальный скролл). Давным-давно установлено, что неспособность осилить технологии, методологии и техники разработки, заставляют задачи решать в лоб, через одно место. Это железный факт. Проблема здесь заключается только в том, что некоторые заказчики не могут определить уровень своего исполнителя. Таким заказчикам приходится отращивать большие, просто огромные уши, на которые всякие личности, искренне считающие себя профессиональными разработчиками, но таковыми не являющиеся, вешают ему тонны низкопробной лапши. Не знаю чего тебе посоветовать, ты ведь так и останешься при своём невежественном мнении, я знаю. Но было бы неплохо, если бы ты хоть иногда выходил из своих иллюзий и продолжал учиться, а не останавливаться в своём развитии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 06:21 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
hVosttНе знаю чего тебе посоветовать, ты ведь так и останешься при своём невежественном мнении, я знаю. Он назвал тебя земляным червяком. (с) Вы молоды и прекрасны. [серьезно] Обычно оппоненту приписывают свои недостатки. Я поржал, пойду шить себе костюм Зелибобы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 10:47 |
|
||
|
делегаты и общая философия
|
|||
|---|---|---|---|
|
#18+
mage.lanОбычно оппоненту приписывают свои недостатки. Я поржал, пойду шить себе костюм Зелибобы. Серьёзно?! Ну посмотрим: mage.lanРасслабтесь, пилите свой академический код дальше. Зачем же ты так низко оцениваешь свою работу? В общем, ты сам уже запутался в том, что говоришь и что сказать хотел. Ну и по существу ответа ждать не приходится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 12:13 |
|
||
|
|

start [/forum/topic.php?all=1&fid=22&tid=1444874]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
1ms |
| others: | 293ms |
| total: | 466ms |

| 0 / 0 |
