Книга «Изучаем Node. Переходим на сторону сервера. 2-е изд. дополненное и переработанное»

в 9:15, , рубрики: node.js, Блог компании Издательский дом «Питер», книги, Профессиональная литература

image Технология Node.js всё еще молода и в то же время существует достаточно долго, чтобы крупные корпорации (LinkedIn, Yahoo! и Netflix) взяли ее на вооружение.

Эта книга посвящена Node и тем модулям, которые образуют базовую функциональность Node. Вы начнете знакомство с основ создания веб-сервера и базовых функциональностей, а затем перейдете к системе модулей, REPL, разработке приложений, проблемам безопасности, дочерним процессам, познакомитесь с новыми функциональностями, появившимися в ES6, комплексной разработкой (Express, MongoDB, Redis, AngularJS и Backbone.js), приемами разработки приложений и, наконец, с использованием Node в других областях, таких как микроконтроллеры и «интернет вещей».

Для кого написана эта книга

На мой (автора) взгляд, читатели этой книги относятся к двум категориям.

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

Ко второй категории относятся разработчики серверных приложений, которые хотят попробовать что-то новое или перейти на более современную технологию. Они работали на Java или C++, Ruby или PHP, а теперь они желают освоить язык JavaScript и объединить его со своим знанием серверной среды.

У этих двух вроде бы разных аудиторий есть одно общее знание: JavaScript (или ECMAScript, если выражаться точнее). Читатель этой книги должен очень уверенно владеть языком JavaScript. Есть и другое сходство: обеим категориям придется изучать одни и те же азы Node, включая базовый Node API.

Однако каждая категория смотрит на изучение Node со своей точки зрения и руководствуется своими навыками. Чтобы книга приносила больше пользы, я постаралась представить материал с обеих точек зрения. Например, разработчика C++ или Java может заинтересовать создание дополнений для Node на языке C++, которое вряд ли вызовет интерес у разработчика клиентских приложений. В то же время такие концепции, как прямой или обратный порядок байтов, могут быть очень знакомыми для разработчиков серверных приложений, но не для специалистов по клиентскому программированию. Я не могу глубоко изложить любую из этих перспектив, но постараюсь, чтобы материал не показался слишком сложным или скучным любому читателю.

Я совершенно точно не собираюсь заставлять вас что-либо заучивать наизусть. В книге будут представлены API базовых модулей, но я не стану описывать все объекты и все функции, потому что они документированы на сайте Node. Вместо этого я постараюсь рассмотреть важнейшие аспекты всех базовых модулей и конкретную функциональность Node, которая, на мой взгляд, особенно важна для того, чтобы вы не уступали другим разработчикам Node. Конечно, основной фактор успеха — практика, а эта книга — средство обучения. Перевернув последнюю страницу книги, вы сможете самостоятельно перейти к углубленному изучению конкретных типов функциональности, например работе с семейством технологий MEAN (Mongo-Express-Angular-Node). Материал книги станет отправной точкой, от которой вы сможете пойти в любом из интересующих вас направлений Node.

Структура книги

В этой книге первоочередное внимание уделено основам. Она посвящена Node и тем модулям, которые образуют базовую функциональность Node. Конечно, я упомяну ряд сторонних модулей и подробно опишу npm, но главная цель этой книги заключается в том, чтобы дать читателю представление о базовой функциональности Node. А когда вы уверенно встанете на ноги, вы сможете пойти в нужном направлении.

Глава 1 знакомит читателя с Node; в нее также включено краткое описание процедуры установки. Вам предоставится возможность опробовать Node на практике: сначала мы создадим веб-сервер из документации Node, а затем более сложный сервер, код которого приведен в книге. Кроме того, будет затронута тема создания дополнений Node для читателей, программирующих на C/C++. И разве можно представить себе введение в Node без обзора истории развития среды, первой версии которой был присвоен номер 4.0 вместо 1.0?

В главе 2 рассматривается важнейшая функциональность Node: принципы обработки событий, глобальные объекты, необходимые для создания приложений Node, и асинхронный характер Node. Также будет представлен объект буфера — структуры данных, передаваемой многими сетевыми функциями Node.

Глава 3 подробно описывает систему модулей Node, а также содержит подробное описание npm — системы управления модулями Node от независимых разработчиков. В этой главе вы узнаете, как приложение ищет используемые модули Node и как создать собственный модуль Node. Далее для представления более сложных аспектов функциональности Node будет исследована поддержка изолированной среды (sandboxing). Просто для интереса я также представлю три популярных модуля Node от независимых разработчиков: Async, Commander и Underscore.

Интерактивная консоль, входящая в поставку Node и известная под названием REPL, — бесценный учебный инструмент и учебная среда. REPL посвящена отдельная глава 4. Я расскажу о том, как использовать этот инструмент, и о том, как создать вашу собственную, специализированную модификацию REPL.

Разработка приложений Node для Интернета рассматривается в главе 5. В частности, мы гораздо подробнее рассмотрим модули Node, предоставляющие средства для веб-разработки. Вы увидите, что необходимо для создания полнофункционального веб-сервера для статических файлов, и научитесь запускать приложения Node в сочетании с Apache при помощи прокси-сервера Apache.

Глава 7 посвящена сетевой поддержке, а о сетях невозможно говорить без обсуждения проблемы безопасности. Эти две темы всегда идут рука об руку — как арахисовое масло и джем, как шоколад и… что угодно. Я расскажу о поддержке TCP и UDP в Node, а также о том, как реализовать сервер HTTPS (в дополнение к серверу HTTP, создание которого рассматривалось в главе 5). Также будет описана механика, лежащая в основе цифровых сертификатов, принципы работы протокола SSL (Secure Sockets Layer) и его обновленной версии TLS (Transport Layer Security). Глава завершается описанием криптографического модуля Node и работы с хешами паролей.

Одной из наиболее приятных особенностей Node является возможность использования функциональности операционной системы при помощи дочерних процессов. Некоторые из моих любимых приложений Node — небольшие утилиты для работы со сжатыми файлами, популярное графическое приложение ImageMagick и программа для получения экранных снимков на сайтах. Конечно, они не производят впечатления на фоне модных приложений с хитроумными облачными интерфейсами, но прекрасно подходят для изучения работы с дочерними процессами. Дочерние процессы рассматриваются в главе 8.

В большинстве примеров книги используется язык JavaScript, с которым вы работаете уже не первый год. Впрочем, одной из главных причин деления Node.js/io.js и появления нового, объединенного продукта была поддержка новых версий ECMAScript, таких как ES6 (или ECMAScript 2015, если угодно). В главе 9 я расскажу о том, что в настоящее время поддерживается в Node, к каким последствиям ведет новая функциональность, а также когда и как использовать новую функциональность вместо старой. Также будут описаны некоторые тонкости, связанные с использованием новых возможностей JavaScript. Я отклонюсь от описания встроенной функциональности только один раз: когда буду описывать реализацию обещаний (promises) в очень популярном модуле Bluebird.

В главе 10 рассматриваются фреймворки и функциональность, образующие так называемую комплексную разработку Node. Я расскажу об Express — фреймворке, очень часто применяемом при разработке приложений Node. Также вы опробуете на практике MongoDB и Redis и познакомитесь с парой фреймворков, обеспечивающих «комплексность» в концепции комплексной разработки Node: AngularJS and Backbone.js.

После того как вы напишете код приложения Node, он отправится в эксплуатацию. В главе 11 рассматриваются инструменты и приемы разработки приложений Node и обеспечения их функционирования, включая модульное, нагрузочное и эталонное тестирование, основные методы и инструменты отладки. Кроме того, я расскажу о том, как организовать восстановление приложения после сбоя.

Глава 12 — своего рода «десерт». В ней рассматриваются некоторые возможности для переноса ваших новых навыков Node в другие области, включая мир микроконтроллеров/микрокомпьютеров как часть «Интернета вещей», и версия Node, которая не работает на базе V8.

» Более подробно с книгой можно ознакомиться на сайте издательства
» Оглавление
» Отрывок

Для Хаброжителей скидка 25% по купону — Node

Автор: Издательский дом «Питер»

Источник

Поделиться

* - обязательные к заполнению поля