Pull to refresh
7
0
Send message
Людям нужен свой js1k с блэкджеком и… в общем свой :)

Тоже не понимаю смысла мерить js в строках, пихая большущие, запутанные конструкции в 1 строку. С таким же успехом что мешает сказать *название* в 1 строку и шлифануть код uglifier`ом перед показом.
Или просто используется унарный оператор ± преобразующий к базовому типу(если это возможно), без каких либо положительных или отрицательных нулей. Например:
+ new Date // преобразует в число
+ «123» // аналогично
+true // = 1
-true // = -1
так и
+0 // = 0
-0 // = 0
Код написан с применением библиотеки jQuery, ибо так удобнее.
canvas = $('#mycanvas').get(0);
$(document).ready(...)

Тут только 2 вопроса… зачем? и почему?
Поправьте, если где-то еще упустил использование jQ…
Идея хорошая, но jQuery все свои событие вешает с помощью делегирования, в итоге можете получить не совсем ожидаемое поведение.
Так же, если гонитесь за производительностью, попробуйте использовать циклы for/while вместо forEach jsperf.

P.S. что-то случилось с тегами jsperf.com/for-vs-foreach-simple-test
Именно, грамотно написанный компонент для страницы, с помощью классов и MVC, будет на много понятен, расширяем и гибок в использовании, чем любой плагин.

Поясню:
Понятен. По умолчанию компонент разделен на составляющие MVC, каждый решающий свои задачи. Никому в голову не взбредет искать логику модели на вью компоненте и наоборот. И даже по прошествии года/двух, любой человек знающий javascript разберется в нем, чего нельзя сказать о плагинах, которые на этот момент уже устаревают, а новые версии несколько раз переписаны под новые релизы jquery или вовсе больше не поддерживаются и тд… В итоге получаем стек устаревших(возможно с багами) плагинов, обновление которых требует других зависимостей и практически невозможно на крупном проекте, из-за того, что обновление jQuery ломает кучу всего.

Расширяем.
Если кому-то понадобится дополнить/поменять функционал, достаточно будет наследовать/изменить/дополнить существующий класс или метод, не забыв конечно про тест спеки.

Гибкий в использовании.
Компоненты, как отдельные сущности и не зависят друг от друга. Использование компонент, не перегружая какие-то базовые вещи, как это делает jquery ($.fn...).
Правда ваша, но историю по сути своей и придумывать не пришлось… Сам конечно использую jQ для кроссбраузерности в местах где это действительно нужно, но порой и от него получается непредсказуемое поведение, с различными результатами в разных браузерах.

Как я и ожидал, много кто бросился рвать на себе рубаху и с боем защищать jQuery и решения построенные на нем, забывая, что речь о jQuery 2.0.
Если веб-приложение тормозит, jQuery стоит в конце списка, где может быть проблема.

естественно, но вот код, который написан на нем, как правило, «хорошими знатоками» js… мягка говоря, качественным не назовешь.
Доводилось видеть, как каждый верстальщикфронтедер, освоивший запись $()… подключает библиотеки и при использовании их, допускает ошибки в js, о которых в любой книге написано с первых строк.
К сожалению, критерий бывает в виде потери производительности, вот только потом уже поздно что-то менять, или придет кто-то другой, кто не захочет или не сможет поменять, потому как уйдет на это куча времени. Опять таки, зависит от разрабатываемого приложения.
А решение проблемы, в использовании инструментов с умом.
вы читаете между строк?
За это его ругать не стоит, вещь не из самых простых для начинающих.

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

Устраивается Петя на работу в аутсорс фирму, красочное резюме, знает множество технологий среди которых не малое место отведено js и jquery.
Ему дают свежий проект и ставят задачи, а сделай ка нам автокомплит. Петя программист умный и знает отличный плагин для jq, погуглив, покликав примеры, прикручивает он его к проекту, благополучно притянув в зависимостях одну из версий jquery. И разместив нужную запись в main.js:
$('.autocmoplete').autocomplete({...})
За это его ругать не стоит, вещь не из самых простых для начинающих.

На этом начальство не остановилось и просит сделать драг & дропы, Петя не долго думая вспоминает что для этого есть плагин jquery ui. Но зачем останавливаться на drag & drop, прикручивает Петя весь jquery ui в проект и использует d&d в одном месте.
Время идет в помощь Пете компания нанимает еще одно программисту Колю, Коля тоже «хороший знаток» javascript и с радостью помогает решать поставленные задачи Пете.

Таски все интереснее: добавить слайдеры, скролеры, карусели, зумеры, табы, дейтпикеры, маски… и еще с пару дюжин полезностей и красивостей, для которых 2 молодых программиста используют плагины для jquery.
Местами возникают конфликты с версиями jquery, что они решают подключением различных версия, для разных нужд.
А потом у двух программистов возникает идея, «мы такие умные и хорошие программисты», давайте сделаем SPA приложение. Подключают для этого Backbone который тащит дополнительно и underscore.
Бравые ребята ныряют с головой в разработку, прокачивают свои «скилы». Но никакой отдачи от начальства ни повышений? ни поощрений и они увольняются, перейдя в другую компанию на более высокие оклады, они же уже еще и в one page «разбираются».

Пользователи сайта начинают жаловаться на глюки и тормоза сайта на планшетах/телефонах, да и на нетбуках…

Компания в отчаянии, потеряли 2 хороших сотрудников работающих над проектом.
Проект у них очень хороший и сложный, а главное там много javasctipt, о чем они не забывают указать в вакансии и на собеседовании новому сотруднику Ване, рассказав что у них крутое SPA приложение и вообще работы завались и как все будет круто, интересно, а главное весело и познавательно.

Ваня хороший программист, отлично учился в универе, на профессиональном уровне освоил javascript на предыдущей работе, разбирается во многих его особенностях, отлично знает концепции многих фреймворков, из-за чего начал искоса поглядывать на jquery… он мог бы писать сам jquery, внося свой вклад в развитие фреймворка, но ему это просто не интересно, а концепция и политика jquery не внушает доверия.

И вот первый рабочий день Ваня скачивает проект и что он видит? Горы jquery плагинов, наскоро прикрученный на все Backbone, который еще вовсе не работает как SPA, в сочетании с кучей непонятной фигни. Ваня отлично знает javascript и разобраться с плагинами(на этот момент уже устаревшими, как и версия jquery) для него не представляет труда. Заглядывает в main.js файл в котором видит лишь
$('.date').datepicker()
$('#slider').slider()
$('.photo').zoom()

и так строк 50
и еще с десяток вспомогательных файлов, с синтаксисом, как в статей (про next), а также скрытыми вызовами прямо на вьюхах.
Ваня чувствует себя обманутым, ведь вместо крутого SPA приложения на javascript, получил кучу плагинов jquery.

Так что же теперь думает Ваня о своих чудесных предшественниках? и считает ли он их программистами?
Это просто пример краткой записи, как альтернатива sizzle, конечно же эта конструкция в большинстве случаев лишена смысла, но не во всех.
Для меня сейчас тоже звучит дико, но, к сожалению, много кто так и пишет, используя jquery и толком не зная js.
нельзя просто взять и заменить на натив код.

То есть js-фреймворки пишут не на натив js?
На данный момент использую ООП и MVC подход в программировании интерфейсов на js, и проблем с описанием классов не наблюдается, все браузеры это делают одинаково.

Однако, согласен, баги имеют место быть, но в современных браузерах, эти отличия составляют по большей части разницу в API и решаются парой строк кода или парой условий. В отличии от старых IE/Opera с различными причудами по добавлению эвентов и ajax запросов и др.., где действительно необходимы эти абстракции, вот только речь идет про jQuery 2.0, в котором абстракции стали просто обертками для общих, нативных методов браузера.

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity