Зачем мне использовать jQuery? - PullRequest
18 голосов
/ 02 апреля 2009

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

Я очень хорошо знаю JavaScript. Я пишу это профессионально в течение многих лет. Я усвоил много кросс-браузерной несовместимости и отрывочности, знаю, как манипулировать DOM, как тык моей руки, работал с некоторыми из лучших веб-разработчиков в отрасли и приобрел много их mojo.

Я проверял jQuery. Я понимаю суть библиотеки javascript (сколько раз я писал функции анимации, getElementsByClass и hide / show?). Но, честно говоря, выучить совершенно новый синтаксис, который не менее сложен, кажется пустой тратой времени. Кажется, я бы ударился головой о стену, чтобы выучить совершенно новый интерфейс для того же старого JavaScript.

Технически я не инженер, так что, может быть, я что-то упустил. Может кто-нибудь разобрать компромиссы jQuery? Действительно ли быстрее выучить и понять синтаксис jQuery, чем просто выучить JavaScript?

Ответы [ 16 ]

30 голосов
/ 02 апреля 2009

Есть несколько больших преимуществ использования инфраструктуры по сравнению с доморощенным / рукописным кодом:

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

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

  • Эксперты . Люди, работающие над jQuery: JavaScript боги . Я действительно очень хорош в JavaScript, и вы, вероятно, тоже, но есть большая разница между нормальным и jQuery хорошим. Команда безумно хороших людей постоянно изучает небольшой набор общих функций - настраивает, настраивает, совершенствует, чтобы сделать его максимально эффективным. Это означает огромное количество человеко-часов, которые просто не может воспроизвести ни один человек, такой как вы или я, независимо от того, насколько мы хороши. И если вы так же хороши, как парни из jQuery, вы можете получить выгоду, только объединив свои таланты с их талантами и внеся свой вклад в кодовую базу jQuery. Это плавильный котел безумных талантов.

11 голосов
/ 02 апреля 2009

Технически я не инженер, так что, может быть, я что-то упустил. Может кто-нибудь разобрать компромиссы jQuery? Действительно ли быстрее выучить и понять синтаксис jQuery, чем просто выучить JavaScript?

jQuery - это больше, чем просто интерфейс для Javascript. Это позволяет вам выразить себя более компактными и лаконичными способами, чем соответствующая реализация Javascript. В то же время он более четкий и мощный. В частности, вы получаете следующие преимущества:

  • Выразительность. jQuery - это, по сути, DSL для манипуляций и запросов DOM. Эта специфика является основным источником его полезности и эффективности.

  • Кросс-браузер. В очень большой степени jQuery - это «напиши один раз, беги куда угодно». Даже в 2009 году это все еще удивительно редкий подвиг для веб-платформ. Приятно осознавать, что вам не придется тратить время на отладку неясных проблем в IE6 (ну, в большинстве случаев).

  • Очень полная документация. Как разработчик, я ценю API и фреймворки, которые нашли время, чтобы разобраться, что должны делать все движущиеся части. Нет ничего более обнадеживающего, чем осознание того, что (1) все достаточно стабильно, что написание документации не является попыткой поразить движущуюся цель, и (2) вещи достаточно полезны, так как привлекли достаточное количество людей для полной реализации документации.

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

4 голосов
/ 02 апреля 2009

Одна вещь, о которой я не упомянул, это то, что библиотека написана для работы в разных браузерах на широком спектре популярных браузеров и платформ: IE6 +, Firefox 2+, Safari 3 +

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

4 голосов
/ 02 апреля 2009

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

Это не означает, что вы не должны изучать jQuery (в отличие от с использованием it). Вы можете взять несколько вещей, которые вы не знали. 3 основных функции, которые отличают его от других библиотек DOM (включая, вероятно, вашу собственную):

  1. встроенная поддержка синтаксиса селектора CSS, полезная для поиска элементов
  2. методы, которые работают с набором обернутых элементов
  3. сцепление. Каждый метод в jQuery.prototype (с поведением «сеттера») возвращает this

Лично 1) и 3) не держат высокую премию. Но 2) оказывается огромным для меня. До jQuery я никогда не осознавал, насколько мой код склонен работать на множестве узлов, а не на одном узле (если бы кто-то спросил меня, я бы догадался о противоположной тенденции). 2) фактически исключил все циклы for из моего кода (или .forEach или как бы то ни было, я склонен абстрагировать его), что на самом деле было довольно освобождающим. Теперь я замечаю, что это редкий случай, когда мой код должен работать с каким-то одним элементом.

4 голосов
/ 02 апреля 2009

поддержка сообщества

другие разработчики, пишущие и тестирующие код, позволяют вам делать то, чего у вас просто нет времени. Речь идет не о том, чтобы делать то, что вы не знаете, как делать, а о том, чтобы делать что-то быстро, эффективно и очень качественно (это уже проверено).

4 голосов
/ 02 апреля 2009

Вы не можете выучить jQuery без изучения JavaScript, и вы не можете быть гуру jQuery, не будучи гуру JavaScript.

Тем не менее, с jQuery гораздо проще работать, чем с "голым металлом" JavaScript. Более того, способ работы с jQuery находится на гораздо более абстрактном уровне, чем способ работы с «голым металлом» JavaScript. Кроме того, синтаксис jQuery является очень базовым и совсем не сложным для изучения, хотя то, как вы думаете о jQuery, сильно отличается от того, как вы думаете о «голом металле» JavaScript, но позволяет вам делать гораздо больше, гораздо быстрее.

3 голосов
/ 02 апреля 2009

Для меня есть несколько преимуществ, таких как скорость разработки и т. Д.

Но в конце концов все сводится к одному: Удаляет ОГРОМНОЕ количество кросс-браузерных БС, которые могут потреблять столько времени и ресурсов, поэтому мне не нужно с этим справляться

3 голосов
/ 02 апреля 2009

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

3 голосов
/ 02 апреля 2009

Скорость разработки и обработки кода.

1 голос
/ 15 июня 2009

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


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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...