Мастер-класс "Профессиональное javascript-программирование" (05.2009)
24 мая с 10 до 18 в Москве прошел мастер-класс "Профессиональное javascript-программирование".
В программе были:
- Особенности и фишки языка javascript, важные синтаксические фичи, которых нет в других языках. Метки, with и т.п.
- Какие есть способы сжатия javascript, принципы их работают и какой компрессор лучше выбирать.
- Как лучше сжимать javascript, какие фичи javascript приводят код в состояние несжимаемости, и что делать, чтобы он сжимался эффективнее
- Как настроить сервер и написать приложение, чтобы скрипты и CSS кешировались максимально эффективно. Разобрали инструмент для оценки оптимизированности сайта
- Кратко остановились на CSS спрайтах и как сделать, чтобы они не глючили.
- Посмотрели и обсудили особенности функций в javascript, удобную работу с большим числом параметров, с необязательными параметрами, области видимости в javascript.
- Частые ошибки с замыканиями, как работают замыкания
- Как формируется контекст вызова
this , функции apply и call
- Стиль ООП через фабрику объектов. Наследование и перекрытие в этом стиле.
- Стиль ООП через классы. Как оно работает снаружи и внутри. Узнали как правильно делать такое наследование, чтобы было удобно и без побочных эффектов
- Разобрали проверку типов
instanceOf , глюки instanceOf при обмене объектами между фреймами.
- Обнаружили, что jQuery и Dojo (а возможно, и другие фреймворки) глючат при определении типа браузера, разобрались когда и почему, и как жить дальше.
- Узнали как оптимизировать производительность javascript: когда это нужно, какие есть способы и что они дают в цифрах. Посмотрели общие подходы к оптимизации javascript.
- Поговорили о проблеме с
this в attachEvent , узнали как реализована обработка событий в современных фреймворках и какие дополнительные возможности это дает.
- Подробно обсудили инструментарий разработчика под Internet Explorer 6.0-8.0, Firefox, Opera. Рассмотрели около 10 различных плагинов и отдельных средств, которые реально помогают в разработке и отладке.
- Поговорили о технологии browser persistence и некоторых других почти везде реализованных фишках HTML 5. Разобрали библиотеку сохранения данных в браузере и варианты применения этой технологии. Выделили ограничения и аспекты безопасности.
- Кратко обсудили все основные современные фреймворки, их преимущества и недостатки, сравнили распространенность в ру-нете и в бурж-нете. Выбрали подходящие фреймворки для разных задач.
- Подробно поговорили о jQuery, о том как она работает, почему иногда тормозит и как этого избежать. Обсудили интересные особенности и фишки Ajax на базе jQuery. Поглядели виджеты jQuery.UI, сравнили их с mootools и script.aculo.us, не стали сравнивать с Ext.JS.
- Разобрали примеры - как работать с виджетами jQuery UI, научились создавать свои виджеты, включая аспекты инициализации и разрушения, стандартные методы и свойства, события/каллбэки и сеттеры/геттеры. Освоили нетривиальные вызовы jQuery UI API.
- Увидели особенности однопоточной модели выполнения javascript и почему повторные вызовы
setTimeout принципиально отличаются от setInterval .
- Поглядели на векторную графику SVG/Canvas/VML, что оно позволяет делать, на библиотеку Raphael.
- Поговорили об AJAX: частые ошибки в проектировании и написании приложений, подгрузка событий с сервера.
- Посмотрели и сравнили способы подгрузки событий с сервера: как кросс-браузерные, так и специфические для Opera/Firefox.
- Остановились на кросс-доменных ограничениях и ограничениях Keep-Alive, поняли как ускорить свой браузер и как писать AJAX-приложения, чтобы ограничения на них не влияли
- Поговорили о двух способах написания чата на PHP, аспектах производительности и альтернативных решениях, включая Twisted. Посмотрели пример чат-сервера на Twisted, поняли как на нем работают приложения и чем Application Server отличается от обычного апача, что он позволяет эффективно делать подгрузку событий или чат.
- Что же там было еще?.. Наверняка не написал, точно что-то еще было

Даже не верится, что всю эту массу материала нам удалось впихнуть в 8-часовой (минус перерыв на обед и ходьба к кулеру за водой) мастер-класс.
Я благодарен всем, кто пришел. Был рад вас видеть. Спасибо!
C уважением,
Илья Кантор
mk@javascript.ru
|
Мастер-класс оказался очень полезным. Много примеров делалось прямо в процессе, все подробно и доступно объяснялось. Ну а список того, что разбирали, говорит сам за себя. Илья, большое спасибо.
Александра Воробьева, дизайн-студия "Четвертый Рим".
Узнал несколько интересных фишек, особенно понравился обзор практической реализации browser persistence. В целом, мастер-класс оставил приятное впечатление - еще раз спасибо!
Сергей Бутов, Actis Wunderman.
Илья, спасибо огромное за мастер-класс! Лично я была очень довольна подробным обзором библиотеки jQuery, технологии browser persistance и техник передач данных со стороны сервера.
Елена Яхина, Begun
Илья, большое спасибо за мастер-класс.
Было много всего интересного и полезного, узнала кучу нового и поняла перспективу своего развития :-) В будущем мне были бы интересны подобные мастер-классы, посвященные 1-2 темам и соответственно более подробные.
Но тот формат, который получился, тоже интересен.
Яна Таран, travel.ru
Я новичок в javascript, но мастер-класс пригодился.
Благодарю, Илья.
Александр Близнюк
Илья, почитав Ваши статьи здесь на сайте, я убедился в том, что Вы талантливый автор. Вы излогаете материалы очень доступно и профессионально.
У меня есть мнение, что Ваша книга могла бы стать бестселлером. Лично я, без сомнений приобрел бы
Не могли бы Вы выложить содержательную часть данного мастер-класса? Очень интересно. Зная Ваши статьи думаю, что так же будет очень полезно.
Основная содержательная часть мастер-класса - это, как вы понимаете, живое общение...
Конечно, много материала заготовлено заранее, но именно для обсуждения вживую.
К сожалению, не имею возможности приезжать на подобные события из Челябинска. Очень жаль.
Может быть в дальнейшем Вы придусмотрите видео? Это было бы замечательно.