Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   jquery - есть ли смысл? (https://javascript.ru/forum/jquery/16457-jquery-est-li-smysl.html)

Kolyaj 13.04.2011 11:44

Напиши по пунктам, чем ты пользуешься в jQuery (селекторы, ajax, ...), обсудим :)

x-yuri 13.04.2011 12:18

а что обсуждать? ну вот тут, например, слева список категорий. Не пользовался Deferred Object, Plugins, Internals

Kolyaj 13.04.2011 12:39

Цитата:

Сообщение от x-yuri
а что обсуждать?

Ну вот я, например, ярый сторонник принципов АНБ. Т.е. выборка только по классу или по id, даже без каскадов. Всё, половину jQuery как сваркой срезало :)

Ещё одна большая часть -- ajax. Вообще ajax, вопреки расхожему мнению, штука кроссбраузерная, просто неудобная. Поэтому для промышленного использования нужны всё те же 5-10 строк на чистом JS, чтобы запросы к серверу делать было удобно. А все функции в jQuery для того, чтобы Вася Пупкин, не понимающий, как работают браузеры, как они общаются с сервером, и как вообще работает HTTP, мог "делать сайты на аяксе". Непонятно, зачем это в больших проектах, разработчики которых априори должны быть профессиональней того Васи Пупкина.

Ну анимация выше была.

Есть ещё одна обширная, достаточно сложная штука, реализованная в jQuery -- взятие значений CSS-свойств. Эта штука не нужна в принципе, т.к. если вам это понадобилось, значит у вас очень хреново спроектировано приложение.

Так и получается, что ради нескольких необходимых функций, подключается 200 кб кода, да ещё и навязывается неудобная концепция "нет DOM-элементов, есть коллекции".

P.S. Дада, разумеется это всё моё личное мнение :) И касается оно исключительно крупных проектов. Хомпаги без разницы на чём делать.

x-yuri 13.04.2011 13:12

и тут выяснилось, что мы про большие проекты говорим... ну яндексу jquery да, ни к чему

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

а как ты, кстати, определяешь координаты элемента?

Цитата:

Сообщение от Kolyaj
Есть ещё одна обширная, достаточно сложная штука, реализованная в jQuery -- взятие значений CSS-свойств. Эта штука не нужна в принципе, т.к. если вам это понадобилось, значит у вас очень хреново спроектировано приложение.

а можно подробнее? О каких проблемах речь и как правильно спроектировать приложение?

Цитата:

Сообщение от Kolyaj
Так и получается, что ради нескольких необходимых функций, подключается 200 кб кода, да ещё и навязывается неудобная концепция "нет DOM-элементов, есть коллекции".

не забываем, что в сжатом виде оно занимает 30КБ. И концепция не неудобная, а непривычная для тебя

p.s. если подключение библиотеки в 30КБ не позволяет проект либо религиозные убеждения, то да, ничего не поделаешь :)

p.p.s. http://en.wikipedia.org/wiki/Not_Invented_Here

Kolyaj 13.04.2011 14:10

Цитата:

Сообщение от x-yuri
и тут выяснилось, что мы про большие проекты говорим...

Ну а чего про маленькие говорить? Там хоть как пиши, разница несущественна.


Цитата:

Сообщение от x-yuri
а как ты, кстати, определяешь координаты элемента?

getBoundingClientRect. А есть другие способы? :)


Цитата:

Сообщение от x-yuri
а можно подробнее? О каких проблемах речь и как правильно спроектировать приложение?

Везде много пишут про MVC, разделение логики и представления, а сами не гнушаются данные хранить в представлении (в стилях). При том, что это крайне ненадёжное хранилище.


Цитата:

Сообщение от x-yuri
не забываем, что в сжатом виде оно занимает 30КБ

А где для тебя проходит граница "ну не, столько мы подключать не будем"?


Цитата:

Сообщение от x-yuri
И концепция не неудобная, а непривычная для тебя

Она чужда языку. Вот если бы в JS была концепция "всё массивы", тогда была бы гармония.
$('a').width() возвращала бы массив длин всех ссылок.
2 * $('a').width() + 2 * $('a').height() -- массив периметров всех ссылок.
А так пришлось вводить идеологический хак: .width() возвращает ширину первого элемента в коллекции.

Ну и, пожалуй, половина объёма библиотеки -- жертва этой концепции.


Цитата:

Сообщение от x-yuri

Если бы Resig обращал внимание на подобное, jQuery бы не было.

x-yuri 13.04.2011 18:55

Цитата:

Сообщение от Kolyaj
Ну а чего про маленькие говорить? Там хоть как пиши, разница несущественна.

а что со средними тогда? И большие - это хайлоад или не важно?

Цитата:

Сообщение от Kolyaj
Везде много пишут про MVC, разделение логики и представления, а сами не гнушаются данные хранить в представлении (в стилях). При том, что это крайне ненадёжное хранилище.

в css? Можешь конкретнее?

Цитата:

Сообщение от Kolyaj
А где для тебя проходит граница "ну не, столько мы подключать не будем"?

есть другая граница "не, ну это мы зря подключили"

Цитата:

Сообщение от Kolyaj
Она чужда языку. Вот если бы в JS была концепция "всё массивы", тогда была бы гармония.

не очень красиво, согласен. Но если отставить в сторону эстетический вопрос, то получается не важно

Цитата:

Сообщение от Kolyaj
Ну и, пожалуй, половина объёма библиотеки -- жертва этой концепции.

да ладно, что заставляет тебя так думать?

Kolyaj 13.04.2011 20:42

Цитата:

Сообщение от x-yuri
а что со средними тогда?

Ну тут тоже трудно черту провести.


Цитата:

Сообщение от x-yuri
И большие - это хайлоад или не важно?

А какая JavaScript-у разница?


Цитата:

Сообщение от x-yuri
в css? Можешь конкретнее?

Множество тем на форуме про как достать display, color и прочую хрень, установленную в CSS. Случаи, когда в одном месте устанавливаем элементу стиль, а в другом (а то и в этом же) его читаем.


Цитата:

Сообщение от x-yuri
да ладно, что заставляет тебя так думать?

Тут я погорячился.

x-yuri 13.04.2011 22:00

Цитата:

Сообщение от Kolyaj
Ну тут тоже трудно черту провести.

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

Цитата:

Сообщение от Kolyaj
А какая JavaScript-у разница?

в общем-то да

Riim 14.04.2011 01:22

Цитата:

Сообщение от Kolyaj
взятие значений CSS-свойств. Эта штука не нужна в принципе, т.к. если вам это понадобилось, значит у вас очень хреново спроектировано приложение

это про getComputedStyle ? А чем он плох?

Kolyaj 14.04.2011 11:52

Цитата:

Сообщение от x-yuri
для большинства проектов jquery - это не плохо

Я не исключаю, что есть хороший подход и к jQuery, просто я его не знаю. Концепция плагинов для постоянно развивающихся приложений (даже небольших, важно постоянное развитие) не подходит.


Цитата:

Сообщение от Riim
это про getComputedStyle ? А чем он плох?

Давайте с другой стороны: а зачем вы его используете?


Часовой пояс GMT +3, время: 19:54.