Сентябрь 27, 2008
Обучение. JavaScript.
2. JavaScript. Синтаксис языка, понимание DOM модели, понимание того для чего и как работают джс фреймворки (к примеру прототайпджс, джквери). Способность писать многофункциональные клиентские приложения, виджеты.
На сверстанной страничке из первой части (там такое задание) есть диаложек (его тоже верстают). Потом я даю задание подключить диложек с помощью джаваскрипта. Говорю использовать библиотеку prototype.js и на ее основе строить классы.
Еще настоятельно рекоммендую книги:
- Pro JavaScript Techniques (Pro) - добротная книга, написанная Джоном Ресигом - рекоммендую регулярно читать его блог. Очень крутой чувак, сейчас еще занимается поддержкой фаербага.
- Ajax в действии - книга хоть и немного устаревшая, но до сих пор актуальная.
- http://developer.yahoo.com/
performance/- это просто надо выучить, запомнить и использовать. - http://kpumuk.info/javascript/javascript-optimization-part-1-adding-dom-elements-to-document/lang-pref/ru/ - статья моего давнего онлайн знакомого Критика.
Далее приведу список наиболее частых ошибок при написании джаваскрипт кода.
- Множество классов в одном файле. Примите за правило - в одном файле один класс. Потом все джаваскрипты сжимаются в один файл, и компрессятся.
- Хаотичное использование в каждом методе document.getElementById (в прототайпе $ или $$, что еще хуже). Надо по возможности записать ссылки на дом элементы на поля класса в инициализации один раз и потом уже использовать.
- Отсутствие понимания, что такое контекст. И зачем в прототайпе bind и bindAsEventListener
- Много глобальных переменных
- Тянучка связей между классами, все классы знают про всех остальных. Дом элементы модифицируются и тоже хранят ссылки на другие обьекты. Надо же делать связи на основе событий.
- Обьект создается прямо в джаваскрипт файле (еще лучше ситуация когда там код window.onload = function(){ new MyClass()}). Подключая этот джс на страницу получаешь кота в мешке -речи о том что потом можно будет сбилдить все джсы в один файл уже не идет.
- Весь код прямо в штмле, код должен быть в отдельных файлах
Пока все, буду дописывать постепенно.
Возможно перед джваскриптом стоит давать ооп и рефакторинг - все что касается умения писать красивый код.


Насчет литературы, сегодня был на Петровке помимо “Аякс в действии”, есть также книжеца этого же автора по прототипу, весьма полезна для тех, кто не знает что оно такое и с чем его едят.
Почему только prototype? Еще есть отличная либа называется jQuery, зачем обязательно давать одну? Давай пацанам на выбор несколько =)