Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Рецензия на книгу Д.Гудмана (5-е издание) "Javascript. Библия пользователя."


краткое содержание

Рецензия на книгу Д.Гудмана (5-е издание) "Javascript. Библия пользователя."

Рассмотрено содержание глав в плане полезности для обучения и пользования как справочником. Кратко упоминается о существовании и отличиях 6-го английского издания книги по сравнению с 5-м.
Существует дней: 491
Автор: 12345c
Другие выпуски:
Рассылка 'Упражнения по яванскому письму. Javascript.'
 

06.05.2007


"Javascript, Библия пользователя", 5-е издание - книга, не нуждающаяся в презентации.

Гудман, Денни; Моррисон, Майкл. "Javascript, Библия пользователя", 5-е издание.

Рецензия на книгу.

Предлагается вниманию рецензия на книгу, которая по своему объёму и основательности привлекает внимание самых серьёзных читателей и специалистов. Насколько она подходит как учебник? Как справочник? Сделана попытка дать ответы с приведением ссылок и цитат содержания.

Обзор был сделан в начале мая, но это не меняет его актуальности, как и актуальности самой книги, несмотря на то, что в мире существует (с апреля 2007г.) её английское 6-е издание.

 

Рассмотрим достоинства и прочие особенности самого увесистого и самого свежего справочника по языку Javascript, изданного на русском языке. Кроме 1150 страниц бумажного текста, он содержит дополнительные главы объёмом 450 страниц на CD-диске, прилагаемом к книге. На нём же - примеры, упомянутые в книге, поэтому их не обязательно вручную набирать для проверки работы. Книга заслуживает внимания уже из-за той пунктуальности, с которой приведены справочные данные по всем, в том числе и умершим (c NN4, IE3) конструкциям языка.

Книга написана специалистом, который "держит руку на пульсе" языка с момента его зарождения. И это буквально; как описывает в предисловии создатель Javascript Брендан Эйх (Brendan Eich), на него при создании языка большое влияние оказала книга Гудмана по другому языку, HyperCard. Значит, в структуре нового языка он угадывал конструкции, которые описывал ранее как автор этой книги.

 

Важно не путать эту книгу с её более ранним изданием - 4-м от того же издательства. Разница очень существенная, потому что в прежнем издании охватываются браузеры до NN6, без Мозиллы и Safari, оригинал на английском выпущен в апреле 2001 года. В более новом 5-м издании учтены NN7, Mozilla 1.0, Safari 1.0. Что интересно, полностью проигнорирована Опера в какой-либо версии.

По этим же соображениям для читающих на английском стоит обратить внимание на только что вышедшую (в апреле 2007 г.) книгу 6-го издания этих авторов. Для русскоговорящих читателей пока доступна книга, рецензируемая ниже в этой статье. Конечно, в дальнейшем мы будем сравнивать эти 2 книги, чтобы читатель точно знал, что он не приобретает, ограничиваясь 5-м изданием, а ради чего надо обращаться к 6-му.

Попытаемся спрогнозировать - когда выпустят 6-е на русском? Сравним времена выхода книг. Разные издательства сотрудничают, что можно видеть по многим другим ценным книгам, не только из области веб-программирования. Например, версии книги "Ajax в действии" были выпущены в октябре 2005-го и в 3-м квартале 2006-го. Рассматриваемая нами книга - в марте 2004-го и в 3-м квартале 2006-го; 4-е издание - в апреле 2001-го и в 3-м квартале 2003-го. Как видно, сроки заключения договора с переводом могут составлять год, но для "Библии JS" они регулярно составляли 2.5 года. Поэтому не нужно очень надеяться на скорый выход перевода, но следует знать, за какой справкой нужно обращаться к английскому изданию.

 

Почему разговор идёт так, будто бы эта книга - полноценная справка, не требующая обращения к оригиналам - документации W3C и различных фирм? Потому что книга, действительно, претендует на полноценный справочник, ослабленный только временем написания и публикации. Другими словами, стандарты и фирменная документация на браузеры выходит по требованиям рынка, довольно быстро, а книга - как бы слепок того, что автор успел запечатлеть на момент написания. А написание для такого динамично развивающегося языка как JavaScript было ох как давно - уже 3 года назад, и только полгода назад было представлено русскоговорящим читателям (например, эпоха "аякса" началась как раз чуть позже, поэтому в книге упомянут объект XMLHttp (удивительно! Говорит о полноте), появившийся ещё в 98-м году, в бете-2 IE5, но не использовавшийся до Google Suggest, примерно до середины 2004 года), но размещён он в дополнительных главах на диске. То, что входит в данную книгу, уже переработано с расчётом, что не потребуется переворачивать разную документацию, чтобы получить подробные сведения о свойстве и его применимости в браузерах. Часто встречаются и оговорки о том, что следует применять в других браузерах вместо описываемого уникального свойства. Поэтому как справочник книга удобнее исходных текстов. Она содержит в том числе опыт автора в решении типичных проблем, которые поднимались на веб-конференциях (форумы, списки рассылок) по JS.

Подобные полноценные справочники знает история. Например, на том же уровне подробности был справочник JavaScript Programmer's Reference - (англ.) Cliff Wootton, 2001, 2600 стр. Но, в отличие от Гудмана, он не стал продолжать эстафету несения обновлений браузеров и языка, его книг новых изданий не наблюдается. Имеются и наши авторы, взявшиеся за подобный фундаментальный труд (по отдельности - Дронов, Дунаев). Есть одно только "зло" у таких трудов - справочники очень быстро устаревают. 2 года - нормальный срок их службы. Гудман соблюдает эти сроки, поэтому его книга "держит марку" (с учётом достойного качества материала). Книги наших авторов требуют обновлений в течение такого же периода, но пока они выпущены с новизной на уровне Гудмана 4 издания.

 

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

 

Как выглядит книга Гудмана с точки зрения учебника? Если говорить одним словом, то самое подходящее - никак, хотя есть несколько глав, где он старается расширить круг читателей за счёт новичков. В предисловии он даже производит героическую попытку провозгласить книгу подходящей для всех категорий читателей (пункты о том, что делать опытным, малоопытным и совсем неопытным в программировании читателям с книгой, и вроде для всех рецепт есть). За ним следуют и маркетологи, скромно утверждающие это в конце аннотации. Но это - как говорится, "бизнес"; их дело - убедить покупателя, а наше дело - посмотреть на реальное положение вещей.

Главы 1-12 (2 части книги из 5) - это честная попытка на 140 страницах написать учебник языка. Остальные главы - справочник, снабжённый, как говорилось, достаточно богатым опытом решения проблем языка. Они полезны для тех, кто сам может составить подобный пример, исследовать на работоспособность и усвоить замечания.

  • ЧАСТЬ I. ЗНАКОМСТВО С JAVASCRIPT 35
    • ГЛАВА 1. Роль JavaScript в World Wide Web 36
    • ГЛАВА 2. Творческие изыскания в сложных полевых условиях 44
    • ГЛАВА 3. Первый собственный сценарий 52
  • ЧАСТЬ II. РУКОВОДСТВО ПО JAVASCRIPT 61
    • ГЛАВА 4. Объекты документа и браузера 62
    • ГЛАВА 5. Сценарии и документы HTML 83
    • ГЛАВА 6. Основы программирования. Часть 1 94
    • ГЛАВА 7. Основы программирования. Часть 2 105
    • ГЛАВА 8. Объекты документа и окна 118
    • ГЛАВА 9. Формы и их элементы 131
    • ГЛАВА 10. Строки, математические выражения и даты 145
    • ГЛАВА 11. Работа с окнами и фреймами 155
    • ГЛАВА 12. Изображения и динамический HTML 165-175

Учебник, ужатый в 2 небольших части книги, на взгляд, не очень завлекательный. Возможно, части неопытных читателей сокращённый стиль преподавания будет "не по зубам". Нельзя сказать, что проблемы новичков здесь разжёвываются. Идеи, зачем нужно программировать, лучше черпать в более простых и популярных книгах. Таково моё мнение как опытного пользователя языка, не имеющего опыта преподавания и не знающего проблем начальной стадии обучения. Поэтому к моим словам не стоит относиться как к очень весомым. Тем не менее, мнение такое: если этих первых 2 частей на 140 страницах хватит, чтобы понять язык, остальные части и вся книга окажутся очень ценными. Для специалистов, которым ещё требуется справочник - тоже. Специалистам, которые знают, в каких первоисточниках справочные данные лежат - нет, книга не нужна. Она для них не содержит таких идей, ради которых стоит держать её. Но весьма рекомендуется иметь в электронном виде для того, чтобы иметь возможность показывать цитаты менее опытным специалистам. Также, тем, кто знает материал на 40-80%, книга нужна как справочник.

 

Но и после этой чистой бравурной тирады в честь книги надо сказать ещё одно "но" по отношению к ней как к учебнику. Да, она содержит все актуальные (и устаревшие) свойства языка, чтобы разобраться с его свойствами. Но надо сказать, что первые 140 страниц его части как учебника не содержат некоторые важные глубокие свойства ядра языка, нужные для его понимания. Т.е. их надо рассматривать как "уровень языка для начинающих" - тот, на котором пользуются им 99% специалистов в веб-программировании. Такие существенные части как prototype и базовые объекты, описаны дальше, в части справочника. Поэтому, если Вы как начинающий пользователь не хотите пребывать в заблуждениях относительно базовых свойств языка, книга не даст ответа. Если о прототипах рассказывается в 3-й части, то о closure (замыканиях) - нигде, в том числе и в дополнительных главах на CD-диске. Упоминаний об утечках памяти - тоже. Поэтому для специалистов книга действительно не подходит как справочник.

  • ЧАСТЬ III. ОБЪЕКТЫ ДОКУМЕНТА 175 //это существенно как учебник
    • ГЛАВА 13. Основы JavaScript 176
    • ГЛАВА 14. Основы объектной модели документа 196-235
    • ... //Далее - справочник в той же части

Среднюю часть книги, примерно 60% объёма, занимают справочные данные по свойствам объектов документа. Наиболее важная часть книги (вместе с ядром языка, описанным далее).

    • ГЛАВА 15. Основные объекты HTML-элементов 235
    • ГЛАВА 16. Объекты window и frame 392
    • ГЛАВА 17. Объекты history и location 512
    • ГЛАВА 18. Объекты document и body 535
    • ГЛАВА 19. Объекты ссылки и анкера 613
    • ГЛАВА 20. Объекты изображения, области и карты изображений 622
    • ГЛАВА 21. Объект form и вложенные в него объекты 650
    • ГЛАВА 22. Объект кнопки 671
    • ГЛАВА 23. Текстовые объекты формы 692
    • ГЛАВА 24. Объекты select, option и fileupload 713
    • ГЛАВА 25. Объекты событий 737
    • ГЛАВА 26. Таблица стилей и объекты стилей 810-867

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

  • ЧАСТЬ IV. ОБЪЕКТЫ ЯЗЫКА JAVASCRIPT 867
    • ГЛАВА 27. Объект string 868
    • ГЛАВА 28. Объекты Math, Number и Boolean 895
    • ГЛАВА 29. Объект Date 908
    • ГЛАВА 30. Объект Array 924
    • ГЛАВА 31. Управляющие структуры и обработка исключительных ситуаций 945
    • ГЛАВА 32. Операторы JavaScript 975
    • ГЛАВА 33. Функции и пользовательские объекты 996
    • ГЛАВА 34. Глобальные функции и выражения 1024
    • ГЛАВА 35. Текстовые объекты тела страницы 1039-1121

Конечно, это вопрос выбора, что считать более важным - базовые объекты или объекты документа. Такое расположение разделов подчёркивает, что наиболее важная цель, преследуемая языком - работа с документом, и его структуру следует знать в первую очередь. А базу языка в любом случае придётся знать.

 

Приложение "А" содержит таблицы - "Справочник по объектам браузера и JavaScript". Они хороши для напоминания об объектах. Но лучше пользоваться ими не из книги, а в редакции, бесплатно лежащей на сайте Гудмана (лучше формат). Выбираете тот формат, который будет удобнее в пользовании (предполагается распечатать на листах или склеить в большую карту формата A1).

Дополнительные главы на CD-диске.

  • ГЛАВА 36 Объекты указания в HTML
  • ГЛАВА 37 Объекты таблиц и списков (важно для работы с таблицами!)
  • ГЛАВА 38 Объект Navigator и другие объекты среды (важные объекты упрятаны сюда, screen в том числе)
  • ГЛАВА 39 Позиционируемые объекты (стоит прочитать как учебник, кроме относящегося к NN4)
  • ГЛАВА 40 Внедряемые объекты (applet, object, ...)
  • ГЛАВА 41 Объекты XML

    Здесь упрятан XMLHttpRequest (основной объект для ajax-приложений). Но в новом издании он описан полнее.

  • ГЛАВА 42 Регулярные выражения и объекты RegExp

    Странно, что такая нужная глава (21 страница) для работы с текстами не вынесена в основное содержание. В новом издании - так же.

  • ГЛАВА 43 Проверка вводимых данных
  • ГЛАВА 44 Создание сценариев с Java-апплетами и надстройками
  • ГЛАВА 45 Отладка сценариев
  • ГЛАВА 46 Безопасность и защищенные сценарии в Netscape Navigator
  • ГЛАВА 47 О реализации Dynamic HTML в различных браузерах
  • ГЛАВА 48 Поведения в Internet Explorer (behavior. Важно.)
  • ГЛАВА 49 Приложение: таблицы и календари
  • ГЛАВА 50 Приложение: таблица поиска
  • ГЛАВА 51 Приложение: форма заказа
  • ГЛАВА 52 Приложение: оглавление
  • ГЛАВА 53 Приложение: обработка данных и графики
  • ГЛАВА 54 Приложение: флаги бновления
  • ГЛАВА 55 Приложение: Decision Helper
  • ГЛАВА 56 Межбраузерное приложение DHTML: карта-мозаика
  • ГЛАВА 57 Приложение: преобразование данных XML

В дополнительных главах содержатся как просто важные, так и очень важные сведения о языке. Около 70% глав уделяет внимание примерам, методикам и пояснениям (что означают сообщения об ошибках в браузерах, например), но оставшиеся важны для знания языка. Поэтому если внезапно отключат электричество, а ноутбука нет, это означает, что с бумажной частью книги Вы ещё не владеете всей информацией о языке. Читайте дополнительные главы.

 

 

 

Что появилось в 6-м английском издании.

Появилась глава по объекту XMLHttp. Точнее, она извлечена из дополнительных глав и дополнена.

  • Chapter 27: Ajax and XML - 867
    • Elements and Nodes - 868
    • xml Element Object - 869
    • XMLHttpRequest Object - 871-879

В ней исправно перечисляются свойства и методы его и появление в браузерах. Надо сказать, что это наиболее полное перечисление по сравнению с появлявшимися перечислениями в статьях. Расшифрованы коды состояния при вызове события onreadystatechange. Кстати, нет слов о той шумихе, которую вызвало "открытие" объекта в народе - одни сухие факты свойств. И правильно - есть объект, а есть его применение. В примерах к главам 52 и 57 есть использование объекта.

Упоминания об Опере появились. Но только в текстах, многокоратно; в списке совместимостей свойств с браузерами снова ей не нашлось места. (Этот недостаток преодолевается отличной документированностью самой Оперы, всех её версий.) Как полагается свежему изданию, в нём упомянуты браузеры IE7, Opera9, Firefox 1.5.0.7 (в списках совместимостей присутствует как Moz1.8).

Убраны наиболее ненужные параграфы про NN4, например описание его модели событий. Но описания свойств пестрят подробностями о нём, также как и о более ранних версиях. Согласитесь, что излишние археологические исследования будут отвлекать пользователей справочника. С другой стороны, полезно знать, откуда ноги растут, в том числе у технологий. Но надо ли так много упоминаний, тем более в справочных статьях? Может быть, существуют компании-разработчики, которые требуют абсолютной совместимости от некоторых своих продуктов? Тогда да, таким справочник по IE3-NN3-NN4 нужен. Такую ситуацию довольно трудно представить. Может быть, это интранет с машинами от Win95? (Если кто-то из читателей обнаружит ситуацию, когда знания о старых браузерах реально понадобились - не поленитесь, опишите этот случай в комментариях.)

 

Обсуждение и отзывы можно, кроме комментариев на сайте javascript.aho.ru, прочитать в конференции, в разделе "Javascript".

Дата источника новости - август 2006 г..

Ярлыки: , , ,

Автор: 12345c
(источник)
  
 javascript.aho.ru , © I.Svetlov, 2005-2007 
Текущая очерёдность плана статей (подписчики могут корректировать через голосование).
11. Анимация падающего снега в окне браузера.
10. Инструменты Web 2.0 - приложения, работающие через браузер.
9. Многуровневое меню с навигацией по наведению мыши.
8. Ключевые слова новых технологий, которые нужно знать разработчику веб-страниц.
3. Как писать тексты с доступом через JS без экранирования специальных символов (< и другие).
4. select и list - в них есть много общего. Как и с меню навигации. Эмулятор селекта.
5. Древовидное меню, подход к данным, отделение данных от представления.
6. Многонедельный календарь со ссылками. (По списку строится календарь.)

Форум сайта рассылки, почта автора рассылки.

 


В избранное