SlideShare une entreprise Scribd logo
1  sur  56
Télécharger pour lire hors ligne
Introduction in Node.js (in russian)
Михаил Давыдов
Разработчик JavaScript
Node.js –
серверный
JavaScript
3
4
История Node.js
•  Разработка с 2009 – Ryan Dahl
•  Поддержка Joyent
•  Событийный асинхронный I/O
•  V8 JavaScript от Google
•  libUV - ядро Node
–  событийный ввод-вывод
•  Кроссплатформенный (native)
5
Где и почему?
•  Node.js = JavaScript + Асинхронность
•  Приложения реального времени
–  Чаты
–  Серверы игр
–  Серверы Push-уведомлений
•  Нагруженные прокси
•  Сервисы с большим числом клиентов
•  Везде, где время I/O больше вычислений
6
Node.js
Node	
  V8	
  JS	
  
Среда	

Виртуалка	

любой	
  
Интерфейс
7
Установка
•  http://nodejs.org/download/
•  Просто выполняем установочный файл
8
В консоли
> node -v
v0.8.8
# npm – Node Package Manager
> npm -v
1.1.59
> node -e 'console.log("123")'
123
Запуск
9
main.js
console.log('Hello World!');
Запуск файла с node.js
> node main.js
Hello World!
Модули в Node.js
CommonJS Module
Глобальные переменные модуля
Любой файл – модуль
Глобальные переменные модуля
•  module = {exports:{}, ...};!
–  Объект описывающий данный модуль
•  exports = {};!
–  Объект экспорта данного модуля
•  require(moduleName): *!
•  __filename!
•  __dirname!
http://nodejs.org/api/modules.html
http://nodejs.org/api/globals.html
13
require()
•  Формат: .js .json .node
–  Может быть любой формат (нужно прописать правило)
–  Нативные модули на C++
•  Имена модулей в require()
–  Поведение по умолчанию:
–  'имя_модуля' -> npm или базовый node.js
–  './путь/до/модуля.js' -> локальный
–  './путь/до' -> './путь/до/index.js'
https://github.com/joyent/node/blob/master/lib/
module.js
14
module.js
var npmModule = require('npmModule'),
fs = require('fs'),
someMyModule = require('../dep.js');
var myFunction = function (a, b) {
return Math.PI * a + b;
};
console.log(__filename);
exports.myFunction = myFunction;
// Или
// module.exports = myFunction;
CommonJS Modules/1.0
15
main.js
var module = require('./module.js');
typeof module; // object
typeof module.myFunction; // function
var result = module.myFunction(1, 2);
console.log(result);
require('./module.js');
CommonJS Modules/1.0
16
Запуск файла с node.js
> node main.js
/path/to/myOtherModule.js
5.14159
17
Node.js кэширует модули и
выполняет их код
только 1 раз
18
Другие глобальные переменные
•  console
–  вывод данных в STDOUT
–  log
–  dir
•  process
–  информация о текущем процессе
–  время работы
–  затраты памяти
–  Информация о текущей ОС
–  текущая рабочая папка CWD
–  PID
•  setTimeout, setInterval
http://nodejs.org/api/process.html
NPM
Управление зависимостями
Декларация зависимостей
Задачи npm
•  Устанавливает модули из репозитория
•  Устраняет зависимости
•  Удаляет не нужные модули
•  Отправляет ваши модули в репозиторий
•  …
https://npmjs.org/
21
Зависимости main.js
•  main.js
–  module.js – наш модуль
•  module.js
–  npmModule – не наш модуль
–  fs – модуль node.js
–  ../dep.js – наш модуль
22
npmModule может быть не
установлен – его нужно
задекларировать
23
{
"dependencies": {
"npmModule": "*",
"npmModule": ">=1.0.2",
"npmModule": "http://asdf.com/asdf.tar.gz"
},
"name": "your-app",
"version": "1.0.0",
"description": "Hello World!",
"author": {
"name": "Barney Rubble",
"email": "b@rubble.com"
}
}
package.json
https://npmjs.org/doc/json.html
24
npm install
> wget http://site.ru/your-app.zip
> unzip your-app.zip
> cd your-app
> npm install
your-app
+-npmModule
> node mian.js
25
Базовые модули Node
fs
http
http://nodejs.org/api/
27
fs
•  Всевозможные функции работы с fs
•  fs.readFile
•  fs.writeFile
•  fs.realpath
•  …
http://nodejs.org/api/fs.html
28
Каждая функция fs имеет 2
типа: синхронный и
асинхронный
29
main.js
var fs = require('fs');
fs.readFile('./package.json', 'utf8', file);
function file(err, json) {
if (err) throw err;
console.log(json);
}
var json = fs.readFileSync('./package.json',
'utf8');
fs
http://nodejs.org/api/fs.html
30
Синхронный для CLI
Асинхронный для сервера
31
http/https
•  Всевозможные функции работы с http
•  HTTP(S) сервер
•  Скачивание файлов по сети
–  аналоги $.get, $.post
http://nodejs.org/api/http.html
32
main.js
var http = require('http');
http.get('http://site/', function (res) {
console.log("response: " + res.statusCode);
})
.on('error', function (e) {
console.log("Got error: " + e.message);
});
http – клиент
http://nodejs.org/api/http.html
33
var http = require('http');
var server = http.createServer();
server.on('request', function (req, res) {
res.writeHead(200, {
'Content-Type': 'text/plain'
});
res.end('okay');
});
server.listen(80, '127.0.0.1');
http – сервер
http://nodejs.org/api/http.html
34
Все API низкоуровневое
•  Объект req – Request
–  Описывает текущий запрос
–  Заголовки запроса
–  Тело запроса
–  Тип запроса GET POST
–  URL запроса
•  Объект res – Response
–  Описывает ответ на запрос
–  Заголовки ответа
–  Тело ответа
–  Статус ответа
35
var url = require('url');
// req.url == /?page=pagename&pewpew=ololo
function onRequest(req, res) {
var data = url.parse(req.url, true),
page = data.query.page,
userAgent = req.headers['user-agent'];
res.setHeader("Set-Cookie", "p=" + page);
res.setHeader("Content-Type","text/plain");
res.writeHead(200);
res.end(userAgent);
}
http – чуть сложнее сервер
http://nodejs.org/api/http.html
36
Как же много писать...
Библиотеки Node.js
express
optimist
colors
…
https://github.com/joyent/node/wiki/modules
https://npmjs.org/
38
// В 5 строк
require('express')()
.get('/', function (req, res) {
res.send('hello world');
})
.listen();
express – http фреймворк
http://expressjs.com/api.html
http://expressjs.com/guide.html
39
var express = require('express');
var app = express();
var staticDir = __dirname + '/public';
app.get('/', function (req, res){
res.send('hello world');
});
app.use(express.static(staticDir));
app.use(express.logger());
app.listen(3000);
express – http фреймворк
http://expressjs.com/api.html
http://expressjs.com/guide.html
40
var optimist = require('optimist')
.default('port', 80)
.default('host', '0.0.0.0');
var cfg = optimist.argv;
require('http').createServer();
server.listen(cfg.port, cfg.host);
optimist – CLI парсер
https://github.com/substack/node-optimist
> node main.js --port 81 --host pewpew.com
> node main.js
41
42
Можно и руками, но сильно
дольше…
43
console.log(process.argv);
CLI парсер руками
> node main.js --port 81 --host pewpew.com
> node main.js
[
'/path/to/node',
'main.js',
'--port',
'80',
'--host',
'pewpew.com'
]
44
CLI парсер руками
> node main.js --port 81 --host pewpew.com
// argv парсер в 97 байт
var argv = (function(a,b,c,d){c={};for
(a=a.split(/s*B[/-]+([w-]+)[s=]
*/),d=1;b=a[d++];c[b]=a[d++]||!0);return c})
(process.argv.join(' '));
console.log(argv);
// {port: "81", host: "pewpew.com"}
https://gist.github.com/1497865
45
require('colors');
console.log('hello'.green);
console.log('i like cake'.underline.red)
console.log('OMG Rainbows!'.rainbow);
colors – подсветка консоли
https://github.com/Marak/colors.js
> node main.js
hello
I like cake
OMG Rainbows!
46
require('colors');
console.log('hello'.green);
console.log('i like cake'.underline.red)
console.log('OMG Rainbows!'.rainbow);
colors – подсветка консоли
https://github.com/Marak/colors.js
> node main.js
hello
I like cake
OMG Rainbows!
47
Можно и руками, но сильно
дольше…
48
var red = 'u001b[31m',
blue = 'u001b[34m',
reset = 'u001b[0m';
console.log(
red + 'hello' + reset + ' ' +
blue + 'world' + reset);
Цветастая консоль руками
> node main.js
hello world
49
Все эти библиотеки можно
установить через npm:
npm install express!
node+dom
Бонус: node-webkit
51
Цель – десктопные
приложения на DOM и
Node.js API
https://github.com/zcbenz/nw-sample-apps
https://github.com/rogerwang/node-webkit
52
node-webkit
Node,	
  
DOM	
  
V8	
  JS	
  
Среда	

Виртуалка	

Интерфейс	

GUI+*	
  
53
Аналогов много, но node-
webkit это первый, кто
использует Node.js
54
Список файлов в текущей директории
<ol class="b-files-list"></ol>
<script src="http://yandex.st/jquery/1.8.2/jquery.min.js">
</script>
<script>
var fs = require('fs');
fs.readDirSync('.')
.forEach(function (file) {
$('<li/>')
.text(file)
.appendTo('.b-files-list');
});
</script>
node-webkit
55
Заключение
•  Node.js
•  Npm
•  Формат модуля
–  CommonJS Module/1.0
–  exports, module, require
–  кэширование модуля
•  Зависимости проекта
–  package.json
•  Базовые модули
•  Библиотеки Node.js
56
Михаил Давыдов
Разработчик JavaScript
azproduction@yandex-team.ru
azproduction
Спасибо

Contenu connexe

Tendances

DevOps или исскуство ухода за Интернет-проектом
DevOps или исскуство ухода за Интернет-проектомDevOps или исскуство ухода за Интернет-проектом
DevOps или исскуство ухода за Интернет-проектомAlexander Titov
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияYandex
 
2013 09 19 кеширование на клиенте и сервере
2013 09 19 кеширование на клиенте и сервере2013 09 19 кеширование на клиенте и сервере
2013 09 19 кеширование на клиенте и сервереYandex
 
Выжимаем из сервера максимум (Андрей Паньгин)
Выжимаем из сервера максимум (Андрей Паньгин)Выжимаем из сервера максимум (Андрей Паньгин)
Выжимаем из сервера максимум (Андрей Паньгин)Ontico
 
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Ontico
 
How to build solid CI-CD pipeline / Илья Беда (beda.software)
How to build solid CI-CD pipeline / Илья Беда (beda.software)How to build solid CI-CD pipeline / Илья Беда (beda.software)
How to build solid CI-CD pipeline / Илья Беда (beda.software)Ontico
 
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...Ontico
 
Незаурядная Java как инструмент разработки высоконагруженного сервера
Незаурядная Java как инструмент разработки высоконагруженного сервераНезаурядная Java как инструмент разработки высоконагруженного сервера
Незаурядная Java как инструмент разработки высоконагруженного сервераodnoklassniki.ru
 
Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)Ontico
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияYandex
 
Windows Azure and node js
Windows Azure and node jsWindows Azure and node js
Windows Azure and node jsAlex Tumanoff
 
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Ontico
 
Smirnov twisted-python
Smirnov twisted-pythonSmirnov twisted-python
Smirnov twisted-pythonAndrey Smirnov
 
HTML 5: будущее уже сегодня, Сергей Байдачный, Microsoft Ukraine
HTML 5: будущее уже сегодня, Сергей Байдачный, Microsoft UkraineHTML 5: будущее уже сегодня, Сергей Байдачный, Microsoft Ukraine
HTML 5: будущее уже сегодня, Сергей Байдачный, Microsoft UkraineVolha Banadyseva
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Vadim Madison
 
Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)
Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)
Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)Ontico
 
Basis.js – «под капотом»
Basis.js – «под капотом»Basis.js – «под капотом»
Basis.js – «под капотом»Roman Dvornov
 
Дмитрий Стогов
Дмитрий СтоговДмитрий Стогов
Дмитрий СтоговCodeFest
 
Распределенные системы в Одноклассниках
Распределенные системы в ОдноклассникахРаспределенные системы в Одноклассниках
Распределенные системы в Одноклассникахodnoklassniki.ru
 

Tendances (20)

DevOps или исскуство ухода за Интернет-проектом
DevOps или исскуство ухода за Интернет-проектомDevOps или исскуство ухода за Интернет-проектом
DevOps или исскуство ухода за Интернет-проектом
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
 
2013 09 19 кеширование на клиенте и сервере
2013 09 19 кеширование на клиенте и сервере2013 09 19 кеширование на клиенте и сервере
2013 09 19 кеширование на клиенте и сервере
 
Выжимаем из сервера максимум (Андрей Паньгин)
Выжимаем из сервера максимум (Андрей Паньгин)Выжимаем из сервера максимум (Андрей Паньгин)
Выжимаем из сервера максимум (Андрей Паньгин)
 
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
 
How to build solid CI-CD pipeline / Илья Беда (beda.software)
How to build solid CI-CD pipeline / Илья Беда (beda.software)How to build solid CI-CD pipeline / Илья Беда (beda.software)
How to build solid CI-CD pipeline / Илья Беда (beda.software)
 
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
 
Незаурядная Java как инструмент разработки высоконагруженного сервера
Незаурядная Java как инструмент разработки высоконагруженного сервераНезаурядная Java как инструмент разработки высоконагруженного сервера
Незаурядная Java как инструмент разработки высоконагруженного сервера
 
Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
 
Windows Azure and node js
Windows Azure and node jsWindows Azure and node js
Windows Azure and node js
 
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
 
Chef @DevWeb
Chef @DevWebChef @DevWeb
Chef @DevWeb
 
Smirnov twisted-python
Smirnov twisted-pythonSmirnov twisted-python
Smirnov twisted-python
 
HTML 5: будущее уже сегодня, Сергей Байдачный, Microsoft Ukraine
HTML 5: будущее уже сегодня, Сергей Байдачный, Microsoft UkraineHTML 5: будущее уже сегодня, Сергей Байдачный, Microsoft Ukraine
HTML 5: будущее уже сегодня, Сергей Байдачный, Microsoft Ukraine
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?
 
Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)
Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)
Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)
 
Basis.js – «под капотом»
Basis.js – «под капотом»Basis.js – «под капотом»
Basis.js – «под капотом»
 
Дмитрий Стогов
Дмитрий СтоговДмитрий Стогов
Дмитрий Стогов
 
Распределенные системы в Одноклассниках
Распределенные системы в ОдноклассникахРаспределенные системы в Одноклассниках
Распределенные системы в Одноклассниках
 

En vedette

JavaScript. Event Loop and Timers (in russian)
JavaScript. Event Loop and Timers (in russian)JavaScript. Event Loop and Timers (in russian)
JavaScript. Event Loop and Timers (in russian)Mikhail Davydov
 
JavaScript. Basics (in russian)
JavaScript. Basics (in russian)JavaScript. Basics (in russian)
JavaScript. Basics (in russian)Mikhail Davydov
 
Ajax and Transports (in russian)
Ajax and Transports (in russian)Ajax and Transports (in russian)
Ajax and Transports (in russian)Mikhail Davydov
 
Dart - светлая сторона силы?
Dart - светлая сторона силы?Dart - светлая сторона силы?
Dart - светлая сторона силы?Mikhail Davydov
 
JavaScript. OOP (in russian)
JavaScript. OOP (in russian)JavaScript. OOP (in russian)
JavaScript. OOP (in russian)Mikhail Davydov
 
Dump-IT Загрузка и инициализация JavaScript
Dump-IT Загрузка и инициализация JavaScriptDump-IT Загрузка и инициализация JavaScript
Dump-IT Загрузка и инициализация JavaScriptMikhail Davydov
 
JavaScript. Loops and functions (in russian)
JavaScript. Loops and functions (in russian)JavaScript. Loops and functions (in russian)
JavaScript. Loops and functions (in russian)Mikhail Davydov
 
Components now! (in russian)
Components now! (in russian)Components now! (in russian)
Components now! (in russian)Mikhail Davydov
 
JavaScript. Event Model (in russian)
JavaScript. Event Model (in russian)JavaScript. Event Model (in russian)
JavaScript. Event Model (in russian)Mikhail Davydov
 
JavaScript. Async (in Russian)
JavaScript. Async (in Russian)JavaScript. Async (in Russian)
JavaScript. Async (in Russian)Mikhail Davydov
 
Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907NodejsFoundation
 

En vedette (12)

JavaScript. Event Loop and Timers (in russian)
JavaScript. Event Loop and Timers (in russian)JavaScript. Event Loop and Timers (in russian)
JavaScript. Event Loop and Timers (in russian)
 
JavaScript. Basics (in russian)
JavaScript. Basics (in russian)JavaScript. Basics (in russian)
JavaScript. Basics (in russian)
 
Ajax and Transports (in russian)
Ajax and Transports (in russian)Ajax and Transports (in russian)
Ajax and Transports (in russian)
 
Dart - светлая сторона силы?
Dart - светлая сторона силы?Dart - светлая сторона силы?
Dart - светлая сторона силы?
 
JavaScript. OOP (in russian)
JavaScript. OOP (in russian)JavaScript. OOP (in russian)
JavaScript. OOP (in russian)
 
Dump-IT Загрузка и инициализация JavaScript
Dump-IT Загрузка и инициализация JavaScriptDump-IT Загрузка и инициализация JavaScript
Dump-IT Загрузка и инициализация JavaScript
 
JavaScript. Loops and functions (in russian)
JavaScript. Loops and functions (in russian)JavaScript. Loops and functions (in russian)
JavaScript. Loops and functions (in russian)
 
Components now! (in russian)
Components now! (in russian)Components now! (in russian)
Components now! (in russian)
 
JavaScript. Event Model (in russian)
JavaScript. Event Model (in russian)JavaScript. Event Model (in russian)
JavaScript. Event Model (in russian)
 
JavaScript. Async (in Russian)
JavaScript. Async (in Russian)JavaScript. Async (in Russian)
JavaScript. Async (in Russian)
 
Components now!
Components now! Components now!
Components now!
 
Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907
 

Similaire à Introduction in Node.js (in russian)

CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDBCodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDBCodeFest
 
Серверный JavaScript: NodeJS и CouchDB
Серверный JavaScript: NodeJS и CouchDBСерверный JavaScript: NodeJS и CouchDB
Серверный JavaScript: NodeJS и CouchDBStepan Stolyarov
 
Владимир Алаев "Разработка на Node.js: инструменты, библиотеки, сервисы"
Владимир Алаев "Разработка на Node.js: инструменты, библиотеки, сервисы"Владимир Алаев "Разработка на Node.js: инструменты, библиотеки, сервисы"
Владимир Алаев "Разработка на Node.js: инструменты, библиотеки, сервисы"Yandex
 
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ..."nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...MoscowJS
 
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...Kirill Danilov
 
Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...
Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...
Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...Badoo Development
 
Node.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчикаNode.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчикаAlexei Smolyanov
 
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17MoscowJS
 
Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Yandex
 
webpack: 7 бед - один ответ
webpack: 7 бед - один ответwebpack: 7 бед - один ответ
webpack: 7 бед - один ответDenis Izmaylov
 
Как превратить приложение в платформу
Как превратить приложение в платформуКак превратить приложение в платформу
Как превратить приложение в платформуVadim Kruchkov
 
NPM и модульная архитектура приложения
NPM и модульная архитектура приложенияNPM и модульная архитектура приложения
NPM и модульная архитектура приложенияDenis Latushkin
 
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"oelifantiev
 
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Yandex
 
Истинный DevOps. Секрет 42.
Истинный DevOps. Секрет 42.Истинный DevOps. Секрет 42.
Истинный DevOps. Секрет 42.Nikita Borzykh
 
«DevOps — это о передаче смысла» — Александр Титов, Express 42
«DevOps — это о передаче смысла» — Александр Титов, Express 42«DevOps — это о передаче смысла» — Александр Титов, Express 42
«DevOps — это о передаче смысла» — Александр Титов, Express 42DevDay
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayAndrey Rebrov
 
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)7bits
 
What do you MEAN? или введение в Fullstack JavaScript
What do you MEAN? или введение в Fullstack JavaScriptWhat do you MEAN? или введение в Fullstack JavaScript
What do you MEAN? или введение в Fullstack JavaScriptVasiliy Teliatnikov
 
Windows Azure & NodeJS Microsoft SWIT 2012
Windows Azure & NodeJS Microsoft SWIT 2012 Windows Azure & NodeJS Microsoft SWIT 2012
Windows Azure & NodeJS Microsoft SWIT 2012 Dmytro Mindra
 

Similaire à Introduction in Node.js (in russian) (20)

CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDBCodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
 
Серверный JavaScript: NodeJS и CouchDB
Серверный JavaScript: NodeJS и CouchDBСерверный JavaScript: NodeJS и CouchDB
Серверный JavaScript: NodeJS и CouchDB
 
Владимир Алаев "Разработка на Node.js: инструменты, библиотеки, сервисы"
Владимир Алаев "Разработка на Node.js: инструменты, библиотеки, сервисы"Владимир Алаев "Разработка на Node.js: инструменты, библиотеки, сервисы"
Владимир Алаев "Разработка на Node.js: инструменты, библиотеки, сервисы"
 
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ..."nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
 
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
 
Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...
Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...
Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...
 
Node.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчикаNode.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчика
 
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
 
Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"
 
webpack: 7 бед - один ответ
webpack: 7 бед - один ответwebpack: 7 бед - один ответ
webpack: 7 бед - один ответ
 
Как превратить приложение в платформу
Как превратить приложение в платформуКак превратить приложение в платформу
Как превратить приложение в платформу
 
NPM и модульная архитектура приложения
NPM и модульная архитектура приложенияNPM и модульная архитектура приложения
NPM и модульная архитектура приложения
 
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"
 
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
 
Истинный DevOps. Секрет 42.
Истинный DevOps. Секрет 42.Истинный DevOps. Секрет 42.
Истинный DevOps. Секрет 42.
 
«DevOps — это о передаче смысла» — Александр Титов, Express 42
«DevOps — это о передаче смысла» — Александр Титов, Express 42«DevOps — это о передаче смысла» — Александр Титов, Express 42
«DevOps — это о передаче смысла» — Александр Титов, Express 42
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps way
 
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)
 
What do you MEAN? или введение в Fullstack JavaScript
What do you MEAN? или введение в Fullstack JavaScriptWhat do you MEAN? или введение в Fullstack JavaScript
What do you MEAN? или введение в Fullstack JavaScript
 
Windows Azure & NodeJS Microsoft SWIT 2012
Windows Azure & NodeJS Microsoft SWIT 2012 Windows Azure & NodeJS Microsoft SWIT 2012
Windows Azure & NodeJS Microsoft SWIT 2012
 

Introduction in Node.js (in russian)