Недавно я с удовольствием беседовал с Карлом Сведбергом о Javascript и веб-разработке в целом. Карл является автором нескольких книг по Javascript, таких как Learning jQuery и jQuery Reference Guide . Присоединяйтесь к нам, чтобы заглянуть в сознание скромного и талантливого разработчика.
Для тех из нас, кто может быть незнаком с вами и вашей работой, расскажите нам больше о себе и о том, чем вы зарабатываете на жизнь
Я (в основном фронт-энд) веб-разработчик в небольшом агентстве Fusionary Media в Гранд-Рапидсе, штат Мичиган. В свои 41 год я, вероятно, старше, чем большинство веб-разработчиков, но большую часть времени я все еще чувствую себя ребенком. Вне работы я очень связан с jQuery. Я работаю в команде проекта jQuery и пишу об этом, обучаю других тому, как его использовать, и говорю об этом на конференциях.
Как и почему вы впервые начали заниматься веб-разработкой?
Мое самое первое участие в веб-разработке было в 1995 году, когда я создал простой сайт для принадлежащей мне кофейни. После этого я баловался веб-вещами здесь и там, потому что я действительно получил от этого удовольствие, но я начал заниматься этим не раньше, чем четыре года назад.
Какие у тебя хобби, когда ты не работаешь?
Я люблю читать, бегать и тусоваться с семьей. Еще год назад я изучал каратэ около семи лет, и я собираюсь начать его заново. Мне также нравится фотографировать, открывать для себя новую музыку и общаться с друзьями.
Расскажите нам больше о EnglishRules.com и о том, как появился веб-сайт.
Это мой личный блог, которым я пренебрегал в последнее время. Я не помню точно, когда я начал это — 2000? 2001? — но идея заключалась в том, чтобы предоставить некоторую информацию и ссылки для моих студентов. В то время я преподавал английский в средней школе. С тех пор это стало путаницей моих мимолетных интересов. В 2003 году я загрузил Movable Type и начал вести блог на нем. В какой-то момент я подумал, что было бы интересно каждый день публиковать новое слово из того, что я читал, поэтому я сделал это некоторое время. Тогда у меня возникло безумное мнение, что я могу ответить на мировые вопросы о грамматике, пунктуации, стиле, орфографии и так далее, но это продолжалось недолго. Некоторое время я размещал кучу своих фотографий на сайте, но это тоже зашло в тупик. Возможно, самой большой мотивацией для того, чтобы это продолжалось, было дать друзьям и семье моментальный снимок того, что я делаю, но в последнее время Facebook и Twitter удовлетворяли эту потребность.
Когда вы впервые заинтересовались библиотекой jQasery jQuery?
Я начал использовать jQuery где-то в мае или июне 2006 года. У меня все еще есть копия «Rev 27» файла ядра jQuery со 2 мая 2006 года , еще до того, как у него появился номер версии. Обидно, что файл сжат и запутан. Было бы очень интересно покопаться в этом и посмотреть, как много изменилось.
Что появилось раньше: LearningjQuery.com или книга Learning jQuery?
Сайт появился первым. Поработав с jQuery в течение пары месяцев, я подумал, что было бы неплохо начать документировать то, что я узнал. Я спросил Джона Резига, не возражает ли он, если я использую имя jQuery и веду блог о моем опыте, и он был в восторге от этой идеи.
Спустя несколько месяцев после того, как я начал вести блог, кто-то из Packt Publishing связался со мной и спросил, не хочу ли я написать книгу о jQuery — предложение, которое мне польстило и ужаснуло. Я согласился сделать это, но только если мой друг (Джонатан Чеффер) мог написать это со мной. Он гораздо лучший программист, чем я, а я тогда был еще новичком.
Почему jQuery? Почему не MooTools или Prototype?
Выбор библиотеки JavaScript очень похож на выбор цифровой зеркальной камеры (разумеется, если вы берете цену из уравнения). Почему Никон? Почему не Canon или Pentax? Я не уверен, что кто-то может удовлетворительно ответить на эти вопросы, основываясь только на технических достоинствах. Многое связано с нематериальными активами: сообщество, поддержка, совместимость с вашими уже устоявшимися ментальными моделями о том, как все должно работать, выглядеть и чувствовать. Люди также рассматривают возможность расширения — в виде линз и аксессуаров для камер, плагинов и виджетов для библиотек JavaScript. Конечно, технические достоинства играют свою роль. Производительность, характеристики и надежность важны. Но, как и в случае с компаниями, производящими камеры, разработчики библиотеки JavaScript продолжают перепрыгивать друг в друга в этих областях, и лучшая в любой из этих областей сегодня может оказаться не самой лучшей в этой области через шесть месяцев.
Причина, по которой я выбрал jQuery, заключается в том, что это стало для меня практически мгновенно. Я понял, что могу легко перенести свои знания CSS в jQuery с его DOM-центрированным подходом. С тех пор, как я узнал больше о продвинутых методах JavaScript, я обнаружил, что простого JavaScript достаточно для работы с областями языка, которые jQuery не рассматривает, и не чувствовал необходимости полагаться на библиотеку для этих областей. , Я также люблю дух сообщества и щедрость и доброту других членов команды проекта и участников списков обсуждений.
Какую часть jQuery, или Javascript в целом, вы считаете, что новые разработчики борются больше всего?
Вопрос, который я чаще всего задаю в списке обсуждений jQuery (группа Google), звучит так: «Почему мои события перестают работать после того, как я вставил элементы в свой документ?» У нас есть подробная тема часто задаваемых вопросов, которая отвечает на этот вопрос. Я написал пару статей об этом на learningjquery.com. У нас есть плагин Live Query и, начиная с jQuery 1.3, метод .live (), который решает проблему. Тем не менее, несмотря на все это, вопрос все еще поднимается несколько раз в неделю.
Помимо документов jQuery, где пользователи могут найти другие ресурсы jQuery, чтобы помочь решить любые проблемы, которые могут возникнуть у них с библиотекой?
Помимо learningjquery.com и книги Learning jQuery 1.3 существует немало отличных ресурсов. У Реми Шарпа есть несколько потрясающих скринкастов на его сайте jQuery for Designers , и я видел несколько замечательных статей от Марка Грабански и Джеймса Падолси в их соответствующих блогах. Группа jQuery Google очень популярна: в ней более 16 000 участников, а IRC-канал #jquery на freenode.net достаточно активен и полезен.
Можете ли вы назвать одну особенность, которую вы хотите, чтобы jQuery поставлял в комплекте с которой она в настоящее время не
Я бы хотел, чтобы метод .live () работал со всеми типами событий. В настоящее время он работает только с подмножеством, поэтому вы не можете использовать его с изменением, фокусом, размытием, отправкой, вводом мыши или отпусканием мыши. Я также думаю, что было бы здорово разрешить использование анонимной функции в качестве аргумента для .css (), .val () и .html () так же, как для .attr ().
Какие советы или рекомендации вы можете предложить тем, кто относительно не знаком с Javascript? Должны ли они изучать Javascript, прежде чем переходить на jQuery, чтобы лучше понять предмет?
Боюсь, это будет звучать как банальность, но здесь говорится: не бойтесь учиться по ходу дела. Вам не нужно все выяснять заранее. Будьте готовы совершать ошибки. Продолжайте изучать что-то новое о языке и попытайтесь установить связь между тем, что вы уже знаете, и тем, что вы изучаете в настоящее время.
Можете ли вы назвать некоторые «плохие практики», которые вы часто используете с jQuery?
Конечно. Одна плохая практика — использовать jQuery для чего-то, что вы могли бы сделать проще и эффективнее с помощью CSS. Например, веб-разработчики годами меняли положение фона спрайта изображения, когда пользовательская мышь наводит курсор на ссылку. Для этого нет абсолютно никакой причины использовать jQuery, если только разработчик не хочет, чтобы изменение состояния при наведении курсора было анимированным.
Еще одна плохая практика — излишне повторяющиеся селекторы. Вместо создания другого объекта jQuery каждый раз, когда вы хотите что-то сделать с определенным набором элементов, объедините методы в цепочку или сохраните ссылку на объект jQuery в переменной и используйте это.
Какими способами можно улучшить свои знания jQuery и стать более эффективными при работе с фреймворком?
Читайте учебники с авторитетных сайтов. Задавайте вопросы в списке обсуждений и читайте ответы на вопросы других людей. В частности, прочитайте все, что Майкл Гири и Дейв Метвин опубликовали в списке. Попробуйте подражать коду великих авторов плагинов, таких как Майк Алсуп, Ариэль Флезлер, Йорн Зефферер и Брэндон Аарон.
За последние два года разработка плагинов jQuery действительно началась. У вас есть любимые плагины, которыми вы часто пользуетесь, или вы предпочитаете писать свои собственные?
Я часто пишу свои, но я использую несколько довольно часто. Кажется, что каждый клиент хочет иметь своего рода ротатор изображений на своей домашней странице, поэтому я использую для этого плагин Cycle Майка Алсупа. Я также довольно часто использую его плагины Form и Media. Я часто полагаюсь на плагин Superfish Джоэля Берча и плагин Брайана Черна hoverIntent, когда клиент хочет выпадающее меню. В последнее время я все больше и больше использую пользовательский интерфейс jQuery для общей тематики виджетов, расширенных эффектов, ползунков и перетаскиваемых / сбрасываемых элементов.
Существуют ли какие-либо особенности (или их отсутствие), которые вам не нравятся в jQuery?
Я не в восторге от некоторых имен методов в API. В очень ранних версиях jQuery было два имени метода для обхода дерева DOM: .parents () и .ancestors (). Когда API был обрезан, .ancestors () был удален. Я бы предпочел отказаться от .parents (), потому что я думаю, что «предки» лучше описывают то, что выбирается. И хотя в целом мне нравится, как jQuery перегружает методы, я думаю, что методы .load () и .toggle () слишком далеко зашли в эту идею.
Вы написали множество книг на jQuery, что является самым сложным в публикации этих книг?
Самая сложная часть, вероятно, просто остается в графике. Но абсолютно необходимо заранее установить разумный график и придерживаться его до конца.
Как вы думаете, какое будущее ожидает фреймворк jQuery?
Большинство изменений в ядре jQuery будут касаться производительности, стабильности и исправления ошибок. Я не вижу много новых функций, добавляемых в ядро. За новыми функциями следите за пользовательским интерфейсом jQuery. Там разрабатывается много нового.
У вас есть еще книги, которые вы планируете опубликовать в ближайшее время?
Я один из нескольких технических рецензентов для поваренной книги jQuery, которая находится в разработке. Но в настоящее время я не пишу никаких книг и не планирую делать это в ближайшее время.
У вас есть какие-нибудь бесстыдные штекеры, о которых вы хотели бы знать наших читателей?
Ничего такого, что еще не было упомянуто, но спасибо за предложение!
Огромное спасибо, что нашли время поболтать со мной, Карл, и спасибо за все замечательные ресурсы, уловки и учебные пособия по jQuery, которые вы давали сообществу на протяжении многих лет.
С удовольствием! Я польщен вашим интересом к тому, что я должен сказать.
- Подпишитесь на нас в Твиттере или подпишитесь на RSS-канал NETTUTS, чтобы получать ежедневные обзоры и статьи о веб-разработке.