« Языковой инструментарий: новая жизнь языков предметной области, Мартин Фаулер | | Кент Бек в России »

AJAX & AJAX in Action

AJAX in Action by
Dave Crane, Eric Pascarello, and Darren James

Manning Publications Co., 2006, 650pp

Немного об AJAX

AJAX (расшифровывается как Асинхронный JavaScript и XML) представляет собой набор принципов и техник для создания интерактивных web-приложений. Сам термин AJAX был введен в обращение Джеймсом Гаретом и с тех пор стал использоваться повсеместно. Несмотря на то, что технологии, позволяющие создавать интерактивные Web-приложения, были доступны с 2000 года, широкое распространение они получили только сейчас, во многом благодаря успеху таких Web-проектов как Google Maps, GMail, Flickr. За прошедший год AJAX техники приобрели большую популярность, появилось множество библиотек для написания AJAX приложений, производители средств разработки вовсю кричат о “поддержке AJAX” в своих продуктах.

Почему AJAX техники стали столь популярны? Они позволяют существенно повысить интерактивность и юзабельность Web-приложений путем исключения (или минимизации) перегрузки Web-страниц. То есть, пользователь получает немедленный отклик от Web-интерфейса в виде сообщений, изменения состояния элементов управления, появления или исчезновения элементов интерфейса, совсем как при работе с обычными desktop приложениями. При этом Web-приложение может активно взаимодействовать с сервером, хотя пользователь не ощущает при этом практически никаких задержек. Например, при написании сообщения в почтовом клиенте GMail производится автосохранение введеного текста, и при этом в интерфейсе выводится соответствующее сообщение. Достигается такой эффект во первых, использованием асинхронных запросов, а во вторых, минимизацией объема передаваемой информации.

Реализация AJAX приложений опирается на следующие элементы:

  • Асинхронное выполнение команд пользователя на сервере без перезагрузки страницы (XMLHttpRequest, IFrame)
  • Периодический опрос сервера на предмет наличия изменений (XMLHttpRequest, IFrame). Данные с сервера могут присылаться в виде XML, фрагментов JavaScript кода, JSON данных, HTML фрагментов.
  • Обновление Web-интерфейса без перезагрузки страницы (прямая модификация DOM модели страницы, активное использование CSS, свойства innerHTML, JavaScript)

Содержание книги

Многие web-разработчики считают, что вокруг AJAX поднята слишком большая шумиха. Типа, еще один инструмент в копилку и не более того. На самом деле для написания качественных AJAX приложений требуются особые навыки и знания. Книга “Ajax in Action” является отличным подспорьем в их приобретении.

В этой книге рассматриваются следующие вопросы:

  • Что такое AJAX, какими свойствами обладают AJAX приложения, чем процесс их создания отличается от написания обычных Web-приложений
  • Применение MVC-модели в AJAX приложениях
  • Применение паттернов проектирования к AJAX приложениям
  • Рефакторинг кода
  • Механизмы нотификации пользователя, обработка ошибочных ситуаций
  • Вопросы безопасности, доступ к внешним сервисам, механизмы авторизации
  • Производительность AJAX приложений, как ее измерить и улучшить

Все это занимает примерно половину книги. Во второй половине описывается процесс создания пяти AJAX приложений, при этом после решения конкретной задачи производится рефакторинг для получения обобщенного решения (если это имеет смысл):

  • Зависимые выпадающие списки с заполнением содержимого через AJAX
  • Поля ввода с автозаполнением (типа Google Suggest)
  • Web-портал (с механизмом авторизации, AJAX-окнами и демонстрацией механизма автосохранения)
  • Поиск с отображением результатов без перезагрузки страницы (с использованием XSLT для преобразования XML в HTML)
  • Программа для чтения внешних RSS каналов (ее особенность в том, что для ее использования не нужен сервер)

В конце книги приводится несколько полезных приложений, включая ссылки на различные инструменты, редакторы, отладчики, расширения для Firefox и другие полезные ресурсы. Также приводится краткое описание языка JavaScript и набор ссылок на наиболее популярные AJAX библиотеки.

Впечатление от книги

Если честно, то вторую половину книги я еще не дочитал :), но обязательно сделаю это в ближайшее время. Общее впечатление – очень хорошее. Внятное изложение материала, минимум “воды” и много примеров.

По мере изложения авторы демонстрируют создание ряда полезных инструментов, которые могут быть использованы любым разработчиком. Все примеры подробно разжеваны, хотя если код вам и так понятен, комментарии можно смело пропускать. Активно применяется рефакторинг и обобщение кода, значительную часть которого можно использовать в своих проектах.

Еще один приятный момент – в примерах изпользуется несколько серверных технологий (Java, PHP, C#). Это позволяет разработчикам с различным опытом работы найти примеры, которые им наиболее знакомы с одной стороны, а с другой – показывает как различные технологии интегрируются с AJAX приложениями.

Единственный момент, который меня несколько озадачил – в книге не раскрыты вопросы автоматизированного тестирования кода. При том, что объемы JavaScript кода в сложных AJAX приложениях могут достигать нескольких мегабайт, автоматизированные тесты являются серьезным подспорьем для его поддержки, особенно при рефакторинге.

В целом книгу можно рекомендовать для прочтения любому web-разработчику, так как очевидно, что описанные в ней принципы создания web-приложений будут распространяться все шире.

kirsa January 10, 2006 1:44 AM

Комментарии

Уже вышла на русском языке "AJAX in Action"
книга "Ajax в действии" Дейв Крейн, Эрик Паскарелло, Даррен Джеймс. Официальная страница книги в РУНЕТЕ -
http://www.williamspublishing.com/Books/5-8459-1034-X.html

Опубликовано: Виктор в June 11, 2006 12:47 AM

Сделать комментарий




Запомнить меня?