Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > Выгодно ли использовать стандартные библиотеки?


Автор: affka 23.11.2007, 22:15
Мне бы хотелось услышать мнение опытных людей.. Стоит ли использовать подобные библиотеки?
Объём работ достаточно большой.. поэтому удобства и упрощения какие-то понадобятся..

Но посмотрев на тот же prototype, из него часто использую не так и много методов.. В первую очередь это конечно же ображение к объекту DOM'a.. Но мне кажется подобные методы проще самому компактно написать и не грузить целую библиотеку..
Т.е. мне не хочется включать лишний код.. код, который не будет попросту использоваться и будет только нагружать сайт.

Пользуетесь ли Вы, в частности, какими-либо библиотеками?
Доверяете ли Вы им?..

Ну соственно, надеюсь развернул вопрос...

Автор: egao 24.11.2007, 00:59
юзай jquery и не парься.

Автор: Daevaorn 24.11.2007, 07:17
Цитата(affka @  23.11.2007,  23:15 Найти цитируемый пост)
Пользуетесь ли Вы, в частности, какими-либо библиотеками?
Доверяете ли Вы им?..

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

Автор: AKS 24.11.2007, 09:13
Цитата(affka @  23.11.2007,  22:15 Найти цитируемый пост)
Мне бы хотелось услышать мнение опытных людей..

Если хочется узнать мнение опытных людей, то Вам сюда:
http://groups.google.ru/group/comp.lang.javascript/browse_thread/thread/415949d1bcce6e6a/03c4d326340e7f7d?hl=ru (о jQuery, подробно, с примерами smile ).
http://groups.google.ru/group/comp.lang.javascript/browse_thread/thread/181f03af63cc81c2/e4e8ae604581ff5b?hl=ru (название темы говорит само за себя).

Цитата(affka @  23.11.2007,  22:15 Найти цитируемый пост)
Доверяете ли Вы им?..

Я не буду переписывать то, что Вы найдете по двум ссылкам, расположенным выше (а ответ на свой вопрос Вы там обязательно найдете). Но я все же не могу удержаться, чтобы не привести хоть какую-нибудь цитату. Так вот, покажу маленький, но красноречивейший (!!!) пример (http://groups.google.ru/group/comp.lang.javascript/msg/03b0dbf09e212180?hl=ru&):
Цитата

if ( typeof a != "array" )

What (in any JavaScript implementation) will evaulate that to false?
What is an array in JavaScript? 

Код в первой строке цитаты взят из файла jquery-1.2.1.js, строка 919, и комментарии тут, думаю, излишни (большой палец вниз).


Автор: ksnk 24.11.2007, 10:55
AKS, Отрезвляющие линки  smile  Хотя даже это, видимо, не заставит меня отказаться от jQuery... Видимо, уже успела сформироваться зависимость ;-). 
jQuery, несмотря на баги в реализации,  вносит некую легкость в общении с элементами DOM'а. Да и сама "цепочечная" методика построения операторов позволяет все писать несколько короче...

P.S. Теперь, зато, понятно почему оно занимает мало места ;)

Автор: affka 24.11.2007, 11:06
Спасибо за развёрнутые ответы :о)

Автор: imm 4.4.2008, 17:26
Цитата

if ( typeof a != "array" )

What (in any JavaScript implementation) will evaulate that to false?
What is an array in JavaScript? 



А вот видержка из jQuery

Цитата

    makeArray: function( array ) {
  var ret = [];

  // Need to use typeof to fight Safari childNodes crashes
  if ( typeof array != "array" )
    for ( var i = 0, length = array.length; i < length; i++ )
    ret.push( array[ i ] );
  else
    ret = array.slice( 0 );

  return ret;
    },


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

Автор: ksnk 4.4.2008, 18:28
Какие-то сведения устаревшие... Вот цитата из последнего билда...
Код

 * $Date: 2008-02-17 18:05:55 +0300 (Вс, 17 фев 2008) $
 * $Rev: 4763 $        
...
    // Need to use typeof to fight Safari childNodes crashes
    if ( array.constructor != Array )
        for ( var i = 0, length = array.length; i < length; i++ )
            ret.push( array[ i ] );
    else
        ret = array.slice( 0 );

потихоньку баги правятся... smile
Кстати, я плохо понимаю как попала русская дата в исходники jQuery... Кто-нибудь еще может проверить - действительно у них в svn лежит с такой датой?

Автор: AKS 4.4.2008, 19:46
Цитата(imm @  4.4.2008,  17:26 Найти цитируемый пост)
Судя по комментам разработчиков jQuery иногда и такое возможно, я склонен им верить...

Да-а-а что Вы говорите?! А на основании чего у Вас развилась склонность доверять этим людям?
Вообще, объясните на примере того кусочка кода, как Вы понимаете ход мысли людей, которым Вы доверяете. 

Кстати, для разнообразия я добавлю еще кое-что очень-очень понравившееся из той же серии. Есть такая книга "Pro JavaScript Techniques" (автор John Resig). Я сам ее не читал, но видел кое-какие цитаты. Предлагаю одну из них:
Цитата

In JavaScript, null, 0, '', false, and undefined are all equal (==) to each other, since they all evaluate to false. This means that if you use the code test == false, it will evaluate true if test is also undefined or equal to null, which may not be what you want.

Итак, заявлено, что перечисленные значения равны. Проверим?
Код

alert(null == false); // => false
alert(window.undefined == false); // => false

Ну и как? Забавно?  smile 
Даже вот это сравнение:
Код

alert(window.undefined == null); // => true

, возвращающее истину, отнюдь не подтверждает написанное в цитате (угадайте почему).


Автор: imm 4.4.2008, 20:54
Ну не знаю, что он там написал, во всяком в jQuery я подобных косяков не наблюдал. Могу сказать, что все косяки, что появляются в jQuery или Prototype или нечто подобном выявляются сразу так как юзают эти билиотеки огромное количество программистов. Поэтому говорить о неадекватности разработчиков подобных продуктов это <<эквивалент: не хорошо>>.
Могу сказать лишь то, что не существует лучшего решения во всех отношениях и лично для меня jQuery иенно тот набор функций, который я искал и писал ручками и на личном опыт убедился, что время разработки и размер кода сократился в разы. Не знаю как дела обстаят с prototype, потому что не стал его юзать по очень простой причине, оттолкнул размер исходников, плагинов и честно как-то не въехал я в него с первого взгляда.

Так что ИМХО, jQuery мне понравился больше, хотя бы временем въезжания в него ;)


M
Sardar
Попробуем обойтись нейтральными словами, читать приятней.

Автор: AKS 5.4.2008, 06:56
Модератор: Сообщение скрыто.

Автор: AKS 5.4.2008, 13:17
Цитата(Sardar)
Сообщение скрыто модератором: Sardar +Причина: Троллинг, попытка развязать конфликт

Решения администрации не оспариваю. Но позвольте тогда ответить собеседнику следующим образом.

Итак, imm, вот как высказался в подобной ситуации Richard Cornford (перевел Zeroglif):
Цитата

Жаль, что люди, которые с точки зрения понимания javascript находятся ещё где-то на начальном этапе, уже навязывают миру такие вещи, как jQuery.

Я надеюсь, что Вы сумеете правильно понять цитату и с достоинством принять ее смысл, как должное. 

Автор: ksnk 5.4.2008, 14:21
imm, Вы подняли топик, которому уже пять месяцев как, но это так, к слову...
Аргументы, предлагаемые в пользу jQuery, imho, выглядят не серьезнее, чем "а мне нравится!". Тем более, что приведенная цитата из кода 
Код

  // Need to use typeof to fight Safari childNodes crashes
  if ( typeof array != "array" )
...
 ну никак не может служить в пользу сторонника jQuery smile ... На досуге попытайтесь соорудить хоть какой-нибудь array, для которой этот if ложен... Причем, если цитировать Конфуция 
Код

Учитель сказал: "Когда, совершив ошибку, не исправил ее, это и называется совершить ошибку"
... С момента публикации этого бага прошло уже достаточное количество релизов... ( Хотя теперь, уже, к счастью, поправили smile )

В пользу jQuery можно отнести уникальную для фреймворков идеологию.
Все операции выполняются для коллекций объектов + коллекции выбираются с помощью достаточно удобных css-select'ов + все это добро можно записывать в цепочки, не запоминая промежуточные коллекции в переменных. Это в совокупности и приводит к тому, что код получается компактнее, чем при использовании обычного программирования. Хотя, конечно, не в разы, особенно если сравнивать с другими фреймворками, а не с чистым DOM'ом...


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)