среда, 27 февраля 2013 г.

Книги по JavaScript которые вы обязаны прочитать


В данной статье я хочу привести список книг по Java Script которые должен прочитать каждый разработчик, работающий с этим языком. JavaScript находит все большее применение в различных областях: мобильные приложения, Веб, Windows 8 и даже разработка серверных решений. Все книги я разделил на категории и выбрал по две лучшие книги для каждой из них, а именно - в качестве вводного руководства, продвинутого руководства, специализированного руководства, руководства по производительности и две книги для изучения нюансов разработки на JavaScript под Windows 8.
Если я что то пропустил, и не дай бог чрезвычайно важное, не стесняйтесь пишите в коментариях.

Вводные руководства

Eloquent JavaScript, by Marijn Haverbecke
Быстрое и исчерпывающее руководство, которое поможет начать использовать JavaScript. Затронуты самые детальнейшие моменты. Отдельные главы посвящены DOM, модели браузера и природе HTTP запросов. Легко читается и наилучший способ из новичка превратится в знающего спеца.
Более углубленное и местами более приятное для чтения руководство по сравнение с первой книгой. К минусам можно отнести то, что книга сфокусирована только на JavaScript и AJAX. На более чем 500 страницах вы найдете намного больше кода, включающего ссылочный материал по основам AJAX. Если ваша цель имено JavaScript и Ajax, эта книга ответит на все ваши вопросы. Однако если вы хотили рассмотреть также существующие решения, фреймворки и инструменты, эта книга не сможет вам помочь, так как она издана в 2007 году и для ваших целей следует подыскать что нибудь поновее. Поэтому рекоменду в первую очередь для знакомства с языком.

Продвинтуые руководства

Эта книга содержит полное описание языка. На более чем 1000 страницах автор детально рассматривает каждый аспект языка и клиентских веб-приложений. Например по отдельной главе отведено библиотеке JQuery, клиентскому хранилищу данных, скриптовым медиа и графике и так далее. В каждом разделе рассматриавются мельчайшие подробности. Два раздела приложений завершают начатое: первый – справочная информация о Core Java (то есть язык), второй – клиентский JavaScript (в основном речь идет о DOM). Поскольку книга написана как руководство, ее не нужно читать от корки до корки. Лучше почитать отдельную главу по интересующему вас вопросу и получить ответы на все ваши вопросы. В этом плане книга выступает больше в роли детального справочника чем руководства. И по этой причине, я считаю, что это одна из немногих книг в этом списке, которые должны быть на книжной полке каждого пользователя JavaScript.
Effective JavaScript, by David Herman
Это еще одна книга, которую я рекомендую иметь под рукой каждому JavaScript разработчику. Она продолжает серию “Effective {язык}” издательства Addison-Wesley. Как и ее прародители,  эта небольшая книга содержит важные и полезные рекомендации по использованию языка. Каждая рекомендация описана на 1-2 страницах и содержит объяснение сути рекомендации и чего можно избежать благодаря ей. Читая книгу вы будете постоянно бормотать себе под нос «Я никогда не знал что». Я думаю,  полезно будет возвращатся к этой книге время от времени до тех пор, пока все рекомендации не осядут у вас в голове.

Производительность

Производительность JavaScript всегда была острой проблемой, но существующие усовершенствования в различных движках и виртуальных машинах серьезно улучшили отзывчивость веб приложений, построеных на JavaScript. Данная книга и последующая, затрагивает моменты, на которые еще стоит обратить внимание, что бы сделать JavaScript код еще более эффективным. Данная книга рассматривает использование инструментов позволяющих ускорить работу JavaScript: минимизация JS, использование YUV компрессора и компилятора замыканий Google и прочее. Также уделено много внимания средствам веб-мониторинга и интерпретированию результата. Это небольшая, но очень полезная книга описывающая основные пути уменьшения латентности JavaScript кода.
High-Performance JavaScript, by Nicholas Zakas
Если предыдущая книга имеет более практическую направленность, то эта книга затрагивает на вопросы производительности более целостно. Здесть подробно описываются узкие места производительности, а также ряд рекомендаций, как можно свести к минимуму их влияние. Дается перечень полезных рекомендаций, которые представлены скорее в общем контексте обсуждения, нежели на конкретном рассматриваемом случае, описываемых последовательно один за другим.
Обе книги небольшие и чрезвычайно полезны, и я рекомендую их читателям которые интересуются вопросами производительности. Я бы начал с книги Закаса, а потом перешел бы к знакомству с книгой Баркера.

Усовершенствованые навыки JavaScript

JavaScript Patterns, by Stoyan Stefanov
Все языки и прикладные вопросы имеют соответсвтующие паттерны, которые помогают спроектировать простое и унифицированное решение. Эта замечательная и чрезвычайно полезная книга рассказывает о паттернах применимых в JavaScript. Автор погружается в недостаточно изученные темы, такие как карринг (currying) для того что бы показать как может быть использовано для решения целого ряда проблем. По поводу более привычных паттернов, таких как калбэки, он уделяет больше внимания вопросам плюсов и минусов применения данного паттерна в разных условиях, исследует достоинства и недостатки, проблемы масштаба, таймаутов и использования калбэков внутри библиотек. В отличие от других руководств по проектированию и паттернам, эта книга написана не в академическом тоне, не содежит новых непонятных терминов и не решает простые задачи замудренным способом. Она достаточно прагматична, поэтому подойдет для широкого круга пользователей среднего и продвинутого уровня.
JavaScript: The Good Parts, by Douglas Crockford
Я включил эту книгу в мой список, потому что люди которых я уважаю, хвалят ее. Преамбула книги действительно содержит краткое описание: «... путем изучения хороших правильных практик и неправильных вы получите детальное представление о поистине элегантных частях JavaScript… По мере чтения книги и приобретения полезных навыков которые содержит эта книга, вы также забудете о тех плохих практиках и приемах которые использовали ранее.» Хех, в моем списке уже есть книги которые помогут вам разобраться, как можно писать на JavaScript, а как не стоит. Учитывая тот факт, что некоторые главы являются не более чем кратким справочником по материалу которые также без труда можно найти в любой другой книге по языку слегка остужают мой энтузиазм по поводу данной книги. Тем не менее Крокфорд является очвень важной фигурой в сообществе JavaScript поэтому все его мысли по поводу что такое хорошо а что такое плохо всегда добираются до каждого уголка сообщества. В этом смысле, знания о том, что думает данный автор по конкретному вопросу будут весьма полезными, хотя я сильно сомневаюсь что они смогут повлиять на ваш стиль написания кода.

JQuery

jQuery, jQuery UI, and jQuery Mobile, by Adrianan de Jonge and Phil Dutson
Любой разработчик который только познакомился с JQuery тут же пытается решить с помощью данного фреймворка все свои проблемы. Это не всегда заканчивается хорошо и после того как случается что нибудь нехорошее, разработчик становится более избирательным при принятии решений и использует JQuery только для тех задач, которые призван решать данный фреймворк. Эта книга предполагает что читатель знаком с JQuery, и в ней содержится больше число рецептов использования фреймворка для решения проблем общего характера для веб приложений и для мобильных программ. Вне зависимости от того, о чем иде речь, о простой задаче, как например добавления содержимого с использованием append() или изменения представления мобильного приложения на лету,  рецепты просты, хорошо описаны и годятся для любого приложения.
Murach's JavaScript and JQuery, Zak Rubalcaba and Mike Murach
Это еще одна книга, построенная на рецептах использования JQuery. Каждые две страницы решают конкретную проблему и иллюстрируют, как следует использовать JQuery в данной ситуации. Несмотря на то что эти рецептыможно будет использовать в будущем, все же основная задача книги научить правильному использованию JQuery. Автру это удалось и пожалуй это самый быстрый способ научиться правильно использовать фреймворк. Как и предыдущая книга, она также содержит информацию о JQuery Mobile.

JavaScript и Windows 8

Вы наверняка знаете такой факт о Windows 8, что если вы знаете JavaScript и имеете некоторый опыт в исползовании HTML5, то вы можете писать программы для Windows 8. Это небольшая книга являетсяч замечательным руковоодством по данному вопросу. Книга также предполагает наличие необходимых знаний о JavaScript и HTML5. В начале вы пройдете краткий экскурс как создавать и компоновать программу, после этого будет описано как управлять различными элементами при создании приложения, встроеными ресурсами (включая базовые элементы управления) и приемы доступа к локальному хранилищу. В дополнительной секции повествуется о Live SDK, которая позволяет устанавливать соединение с вспомогательн1ыми сервисами для таких задач как аутентификация или передача файлов на Microsoft SkyDrive.
В отличие от всех остальных книг данная книга отпечатана в цвете. Код используемый для иллюстрации примеров имеет синтаксическую подсветку, а многочисленные цветные иллюстрации показывают как работают элементы управления и что содерджат конкретные фрагменты кода. В дополнение можно сказать что все инструкции в книге очень понятны и логичны.
Building Windows 8 Apps with JavaScript, by Chris Sells and Brandon Satrom
Немного более расширенная версия предыдущей книги. В дополнение к описанию работы с пользощвательским интерфейсом (заголовки, поддержка тачскрина, анимация и пр.) она также содержит описание фоновых задач, парралелизма и асинхронности, и что важно таких задач как помещения приложений в онлайн магазин, и если хотите как запустить рекламу в вашем приложении. Хорошее руководство по использованию языку JavaScript, который позволяет создавать мобильные приложения под Windows 8.

В основу публикации положена статья http://www.drdobbs.com/tools/developer-reading-list-the-must-have-boo/240148421