Изучаем Node.js


Шелли Пауэрс, «Изучаем Node.js», Издательский дом «Питер», ISBN 978-5-496-00356-8. Тут я должен был указать год издания, но я зашёл в тупик — в выходных данных указан 2014 год, однако на дворе — 2013.


Обложка С этой книгой у меня несколько сложные отношения. Оригинал на английском был успешно куплен ещё в июле 2012 года, на стадии Early Release, но были прочитаны только первые три главы. Потом всё никак не мог найти свободного времени, чтобы дочитать. И вот, в конце августа «Питер» внезапно издаёт перевод на русский язык, при этом не просто перевод, а с возможностью купить pdf-версию. Оплата пейпалом, все дела. Обещают в будущем делать и ?epub, и mobi. В общем, взял и прочитал.

upd: внезапно издатели убрали электронную версию книги с сайта, так что я успел вовремя

Книга о 400 страницах, с иллюстрациями и примерами исходного кода. Примеры, как правило, небольшие. Но есть и такие, что занимают три страницы. В книге 16 глав, во введении автор написал раздел «Как получить от этой книги максимальную пользу», в котором предлагается такой план:

  • первые 4 главы — для новичков,
  • с 5-й по 8-ю главы разговор идёт об Express и Connect, дальше — можно читать выборочно, здесь речь идёт о разных БД, работе с графикой и с сокетами.
  • 14-я глава — о тестировании,
  • 15-я – безопасность,
  • 16-я — деплой.

В общем, вот вам полное содержание книги.

Однако самых зелёных новичков ждёт много тяжёлой работы: Шелли, по всей видимости, заядлый линуксоид, поэтому начинает сразу с вот такого выстрела:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential openssl libssl-dev pkg-config

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

Но если пробиться через тернии описания установки ноды, то дальше становится уже проще.

Про установку ноды и запуск примеров. Как я уже говорил, книга была написана в первой половине 2012 года и в ней рассматривается node 0.6.x, на момент выпуска уже была готова 0.8.x и автор по мере сил пытался это учесть. Сейчас на дворе node 0.10.x, и кое-что из примеров может оказаться совсем уже устаревшим. Я хотел было протестировать все примеры к книге, благо они находятся в открытом доступе. Но, во-первых, в файле package.json опечатка и npm ругается и отказывается работать, во-вторых, три пакета из зависимостей (db-mysql, canvas и emailjs) не захотели ставиться, ну и в-третьих, мне стало совсем лень.

Советы после прочтения

Главу про REPL, во всяком случае, вторую её часть можно смело пропускать, вам вряд ли пригодится знание, как построить свой собственный интерактивный интерпретатор.

Также можно не особо вчитываться в первую половин 15-й главу, там ад из генерации самоподписного сертификата в линуксовой консоли, шифрования паролей и прочих радостей https. Мне кажется, что этим должны заниматься специально обученные люди. Такое ощущение, что автору было очень нужно написать 400 страниц (особенно стойко это ощущение проявляется при прочтении приложения «Node, Git и GitHub»).

Резюме

Первая половина книги полезна для погружения в мир асинхронного веб-программирования и работы с одним из популярных фреймворков. Тема MVС, на мой взгляд, до конца не была расрыта. Каждая глава рассказывает обо всём понемногу, примеры незатейливые, всё вертится вокруг некоторого приложения для виджетов (вот только не надо меня спрашивать, что за виджеты имеются в виду). Вторую половину действительно можно читать выборочно или для общего развития. Для меня были полезны главы про кишочки модульной структуры, решение проблемы callback hell, Redis и деплой.

Качество перевода, в целом приемлемое, я ожидал худшего. Конечно, никакого технического редактора у издания нет, поэтому приходится смириться с переводам «Блочное тестирование» для unit-testing и дословным переводом «переделка» для рефакторинга. Хуже, что в оригинале встречаются ошибки и опечатки. Самая убойная — о глобальном объекте windows в браузере.

Стоит ли читать эту книгу? И да, и нет. Если вы совсем-совсем новичок в JS и веб-разработке — скорее всего вам эта книга будет не по зубам. Если вы уже запустили пару проектов на ноде — вы, скорее всего, не найдёте в ней ничего нового. Если же есть интерес, но пока не знаете, с какой стороны подступиться — книга будет вполне подходящим подспорьем для старта (хотя при цене в 588 руб. на сайте издательства и 498 — на Озоне, я, пожалуй, откажусь).

Оригинал на oreilly.com оценён на 3.5, на Озоне отзывов пока нет. Моя оценка — четвёрка с минусом.