Я изучил JQuery, я должен вернуться и выучить "правильный JavaScript"? - PullRequest
13 голосов
/ 02 октября 2009

Я в первую очередь разработчик на стороне сервера, профессионально работающий с PHP. Для javascript я всегда использую фреймворк (jQuery / mootools), будет ли это профессиональным недостатком для меня в дальнейшем? Должен ли я уделить время изучению простого javascript или большинство разработчиков в любом случае переходят на фреймворки?

Спасибо.

Ответы [ 19 ]

25 голосов
/ 02 октября 2009

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

Что касается всего, кроме простого JS, такого как замыкания, закрытые функции, синтаксис объектов, прототипы и т. Д., Вы должны определенно изучить их, так как они применимы как внутри фреймворка, так и без него. Это. В корне вы все еще пишете в JS , просто с помощью фреймворка для некоторых типичных задач.

14 голосов
/ 02 октября 2009

Нет.

Переход на фреймворки обусловлен многолетним разочарованием по поводу зависимостей браузера и явной неприязнью ко многим оригинальным решениям, принятым в дизайне Javascript. Обратите внимание, что вы все еще работаете в Javascript, поэтому не совсем справедливо говорить «изучать Javascript» столько, сколько «исследовать области Javascript, которые теперь обрабатываются JQuery».

Что касается вашей привлекательности для потенциального работодателя, я вполне уверен, что JQuery будет лучшим навыком для включения в резюме, чем Javascript (я знаю, что это было бы в нашем магазине). Если вы подумаете об этом, работодатели, которые достаточно заботятся о том, чтобы хорошо развиваться на стороне клиента, будут ожидать, что потенциальных сотрудников будут иметь опыт работы с такими инструментами, как JQuery. Те, кто не заботится о разработке на стороне клиента, просто не сделают навыки на стороне клиента - включая Javascript - приоритетом. Действительно, если вы собираетесь потратить больше времени на изучение клиентской части, я бы порекомендовал изучить другую клиентскую среду (например, YUI или Ext). Это не только сделает вас более ценным, но почти наверняка потребует определенной степени ознакомления с большим количеством идиом Javascript из-за различий в структуре.

Обновление - Рохан делает хороший вывод об изучении Javascript: он может помочь вам более эффективно и действенно кодировать в JQuery. Я согласен с тезисом, но лично я бы не решился приложить слишком много усилий в этой области. Как давний (долгое время) разработчик, я научился быть очень сосредоточенным на отдаче от затрат времени и усилий. В мире есть чему поучиться, и только столько времени, чтобы научиться этому. Например, время, потраченное на изучение написания DLL-файлов ISAPI, очень мало по сравнению с инвестициями.

Обновление 2 - Несколько человек утверждают, что JQuery медленнее, чем необработанный Javascript. Что-нибудь новое? Этот же аргумент о «сырой» разработке в сравнении с фреймворками длится десятилетиями!

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

10 голосов
/ 02 октября 2009

Да.

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

5 голосов
/ 02 октября 2009

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

5 голосов
/ 02 октября 2009

Не там, где оно перекрывается

Вам уже нужно знать "чистый" javascript для таких вещей, как манипуляции со строками и массивами, верно? Усиление этих вещей может быть хорошо.

И могут быть особые случаи, например, создание букмарклетов, где полезно знать, как найти элемент DOM с прямым JS.

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

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

4 голосов
/ 02 октября 2009

Это не относится к Javascript, но изучение понятий более низкого уровня часто может помочь при написании кода более высокого уровня. Речь идет об изучении как и почему.

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

4 голосов
/ 02 октября 2009

Я думаю, не зная, что это определенно может быть профессиональным недостатком в будущем. Например, у меня была работа, где мы использовали исключительно jQuery, и когда я недавно перешел на новую работу, они использовали исключительно YUI. Если бы я не знал «сырого» JavaScript, мне было бы гораздо сложнее выбрать новый фреймворк.

2 голосов
/ 02 октября 2009

Если вы не хотите сделать JS основной компетенцией, я думаю, что вы хороши.

2 голосов
/ 02 октября 2009

Если вы не планируете стать гуру JavaScript, я бы сказал, нет, есть и другие вещи, которые вы могли бы потратить на изучение.

2 голосов
/ 05 октября 2009

Для JavaScript я всегда использую фреймворк (jQuery / mootools), это будет профессионалом недостаток для меня по линии?

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

Должен ли я уделить время обучению прямой JavaScript или большинство разработчики переходят на фреймворки в любом случае?

Я бы сказал, что каждый разработчик JS использует ту или иную библиотеку, но они все равно должны знать язык, который они используют. Библиотека / фреймворк - это просто библиотека кода, построенная на языке. Вам все еще нужно знать все тонкости языка. Например, знаете ли вы, в чем разница между == и ===?

Кроме того, если есть проблема с библиотекой, которую вы используете, и вам нужно копаться в ней, разве знание языка не поможет?

Если у вас есть время, я бы настоятельно рекомендовал что-то подобное: видео с Дугласом Крокфордом на Javascript.

...