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

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
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.