За последние несколько лет платформа Node.js стремительно повысила свой статус от экспериментальной технологии до основы для серьезных промышленных проектов. Тысячи программистов оценили возможность построения достаточно сложных, высоко нагруженных приложений на простом, элегантном и, самое главное, легковесном механизме.
Все эти скучные слова правдивы, но на самом деле не это главное. Прежде всего Node.js - это совершенно увлекательная и захватывающая вещь, с которой по-настоящему интересно работать!
Есть одна проблема - невозможно рассказывать про использование Node.js в отрыве от остальных технологий современно»! веб-разработки (и Highload-раэработки). Я и не стал этого делать, дав обзор инструментов, без которых сегодня трудно обойтись. Прежде всего это чудесный язык JavaScript, и в книге рассказано о новинках в его последней и будущей спецификациях (EcmaScript 5 и 6). Кроме того, дается краткое введение в большинство связанных веб-технологий - от NoSQL-xpaнилищ данных (Memcached, MongoDB, Redis) дo CSS-препроцессоров и MVC JavaScript-фреймворков. Конечно, эту книгу нельзя рассматривать как полноценный учебник по MongoDB, LESS или EcmaScript 6, Dart или CoffeScript, но в ней дано основное представление об этих довольно интересных вещах, вполне достаточное для начала работы.
ООП в JavaScript.
Поддерживает ли JavaScript парадигму объектно-ориентированного программирования? С одной стороны, да, безусловно, с другой - при изучении реализации ООП в JavaScript большинство специалистов, привыкших к разработке на C++ или Java, в лучшем случае отмечают своеобразие этой самой реализации. Ну действительно, есть объекты, но где классы? как наследовать? А инкапсулировать? Как с этим вообще можно работать?
На самом деле работать можно, и даже очень эффективно, просто надо помнить, что ООП в JavaScript прототипное. То есть в нем отсутствует понятие класса, а наследование производится путём клонирования существующего экземпляра объекта - прототипа. С этим обстоятельством не надо бороться, его надо использовать.
Объекты в JavaScript представляют собой в первую очередь ассоциативный массив. То есть набору строковых ключей соответствует одно любое значение. Значением массива может быть и функция, в таком случае она является методом этого объекта.
Содержание.
Благодарности.
Вступление.
Об этой книге.
Предыстория.
Веб-страница, веб-сервис, веб-приложение.
Асинхронность как необходимость.
Решения - Twisted, Tornado и другие.
Странный язык - JavaScript.
Волшебные замыкания.
Что такое замыкание?.
Применение замыканий.
ООП в JavaScript.
Явление Node.
Хватит теории! Начало работы с Node.js.
Установка Node.
Веб-сервер из пяти строк.
Сайт на Node.js.
Node Core.
Как все работает? Event loop в Node.js.
Глобальные объекты (Globals).
Global.
Объект Console.
Require и псевдоглобальные объекты.
Процессы.
Свойства и методы объекта Process.
Метод process.nextTick().
Процессы ввода/вывода.
Signal Events.
Child Process - параллелизм в Node.js.
Понятие буфера.
Таймеры.
События.
Слушаем!.
Объект EventEmitter.
Модули.
Пакетный менеджер npm.
Создаем собственный модуль.
А теперь по-взрослому - пишем Си++ Addons.
Работа с файлами.
В дебри файловой системы.
Маленький полезный модуль - Path.
Бродим по папкам.
Работа с файлами - вот она, асинхронность.
Читаем файлы.
Watching Files.
Потоки - унифицируем работу с источниками данных.
ReadS tream/Write Stream.
Веб-сервер на потоках.
Сервер HTTP, и не только.
Создаем ТСР-сервер.
UDP - тоже полезный протокол.
Переходим на прикладной уровень - реализация HTTP.
IncomingMessage - входящий HTTP-запрос.
ServerResponse.
HTTP-клиент (грабим Центробанк).
HTTPS - шифруемся!.
Запускаем HTTPS-сервср.
И секретный клиент.
WebSockets - стандарт современного веба.
Браузер - веб-сервер. Надо что-то менять.
WebSockets - окончательное решение?.
Простой способ - модуль ws.
Начинаем работу с ws.
Реализация WebSocket-чата.
Обмен бинарными данными.
Socket.io - webSockets для пролетариата.
Реальное время для всех!.
Начинаем работать с socket.io.
Простой чат на socket.io.
Усложняем.
Совершенствуем приложение - дополнительные возможности socket.io.
Пространства имен.
«Летучие» сообщения.
Извещения (acknowledgements).
Конфигурация.
Пирамиды судьбы - асинхронный поток выполнения и как с ним бороться.
Начинаем строить пирамиды.
Долой анонимность!.
Node.js control-flow.
Async - берем поток исполнения в свои руки.
Инструмента async.
Control How средствами async.
Живи тельный водопад (async waterfall).
Node.js и данные. Базы данных.
MySQL и Node.js.
Четыре буквы - CRUD.
Preparing Queries.
Чтение, обновление и удаление данных.
Работа с пулом соединений.
ORM-система Sequelize.
Начинаем работать с Sequelize.
CRUD на Sequelize.
Связи.
NoSQL.
NodeJS и Memcached.
Основы Memc has bed.
Реализация.
Создаем приложение.
MemcacheDB - все-таки DB.
Redis - очень полезный овощ.
Redis - что он умеет?.
Основы работыс Redis.
Модуль Redis для Node.js.
Хэши (Hashes).
Множества (Sets).
Упорядоченные множества (Sorted Sets).
Механизм Publish/Subscribe.
Очередь сообщений с помощью Redis.
MongoDB: JavaScript - он везде!.
Для чего?.
Основы работы с MongoDB.
Native MongoDB.
Рики-тики-тави: Mongoose для MongoDB.
Основы работы с Mongoose.
CRUD по-мангустски.
Сеттеры, гетеры и прочие приятные вещи.
Переходим на сторону клиента.
Мыслим шаблонами.
Mustache - усатый и не логичный.
EJS-пришелец из мира RoR.
Синтаксис EJS-шаблонов.
Помощники (Helpers).
EJS и Node.js.
Фильтры.
Jade - нечто нефритовое.
Начинаем работу с Jade.
Include - собираем шаблон по частям.
Примеси.
CSS-препроцессоры - решение проблем стиля.
LESS - больше, чем Sass.
Вложенные блоки.
Переменные.
Операции и функции.
Примеси.
Работаем с LESS в Nodejs.
Возьмем CSS и отсечем лишнее.
И тут примеси.
Функции и переменные.
Stylus и Node.js.
Поднимаем разработку на новый уровень.
Чего нам не хватает?.
Connect - middleware framework для node.js.
Что такое middleware? (и зачем все это?).
Connect на практике.
Статический сайт одной строчкой (почти).
Совершенствуем сайт.
Пишем свое СПО.
Еще немного Connect.
Веб-каркас для node (node.js web-fгаmework'и).
Что такое web-framework?.
Express.
Начало работы c Express.
Закат солнца вручную.
Подключаем шаблонизатор.
Задействуем статику.
Подключаем CSS.
Разработка RESTFul-приложения на основе Express.
Немного о REST-архитектуре.
Приступаем к реализации RESTFul API.
Подключаем источник данных.
А теперь - на три буквы (на MVC).
Немного об архитектуре MVC.
Структурируем код.
Добавляем новую сущность.
Практика разработки приложений Node.js.
Nodemon - друг разработчика.
Отладка Node.js-приложений (debug-режим).
Node Inspector - отладка на стороне клиента.
Тестирование Node, js-приложений.
Что такое Unit-тестирование?.
TDD/BDD.
Accert - утвердительный модуль.
Should - BDD-style тестовый фреймворк.
Цепочки утвержден ий.
Chai - BDD/TDD-библиотека утверждений.
Chai TDD-стиль.
Chai BDD.
Mocha - JavaScript тест-фреймворк.
Начинаем работать с Mocha.
Exports.
QUnit.
Асинхронный код.
Jasmine-ароматный BDD-фреймворк.
Основы работы с Jasmine.
Jasmine и асинхронный код.
Spies - шпионим и эмуллируем.
Grunt - The JavaScript Task Runner.
Grunt - начало работы.
Инструменты Grunt.
Grunt watch - задача-наблюдатель.
Grunt connect web server.
Альтернативы JavaScript и Node.js.
CoffceScript - зависимость с первой чашки.
Краткий курс по кофе.
Классы, наследование, полиморфизм, генераторы!.
CoffeScript и Node.js.
Пишем сервер на CoffeScript.
TypeScript - типа Javascript от Microsoft.
Node.js как TypeScript-компилятор.
Аннотации типов.
Классы! настоящие классы!.
Модули.
Что еще?.
Dart - дротик в спину JavaScript от Google.
Экосистема Dart.
Знакомство с Dart.
ООП - чтим традиции!.
Область видимости и библиотеки.
Изоляторы.
Будущее уже сейчас - ECMAScript.next и Node.
ECMAScript 5 - уже стандарт.
Всякие строгости - Strict Mode в JavaScript.
JSON.
Объекты.
Who's Next? ECMAScript 6.
ECMAScnpt6 в браузерах и в Node.js.
Вот теперь настоящие классы!.
Модульная структура.
Функции - let it block!.
Arrow function.
Обещания.
Proxy-займемся метапрограммированием на JavaScript.
Генераторы.
Заключение - что дальше?.
Приложение - полезные ресурсы по платформе Node.js.
Список литературы.
Предметный указатель.
Купить .
По кнопкам выше и ниже «Купить бумажную книгу» и по ссылке «Купить» можно купить эту книгу с доставкой по всей России и похожие книги по самой лучшей цене в бумажном виде на сайтах официальных интернет магазинов Лабиринт, Озон, Буквоед, Читай-город, Литрес, My-shop, Book24, Books.ru.
По кнопке «Купить и скачать электронную книгу» можно купить эту книгу в электронном виде в официальном интернет магазине «Литрес», и потом ее скачать на сайте Литреса.
По кнопке «Найти похожие материалы на других сайтах» можно найти похожие материалы на других сайтах.
On the buttons above and below you can buy the book in official online stores Labirint, Ozon and others. Also you can search related and similar materials on other sites.
Хештеги: #учебник по программированию :: #программирование :: #Сухов
Смотрите также учебники, книги и учебные материалы:
- Начинаем программировать на Python, Гэддис Т., 2019
- Python для чайников, Мюллер Д.П., 2019
- Программирование на Python, том 2, Лутц М., 2011
- Программирование на Python, том 1, Лутц М., 2011
- Как устроен Python, Гид для разработчиков, программистов и интересующихся, Харрисон М., 2019
- Изучаем программирование на Python, Бэрри П., 2017
- Изучаем Angular 2, Дилеман П., 2017
- Секреты JavaScript ниндзя, Резиг Д., Бибо Б., 2015