From .NET to Node.js: путешествие туда и обратно

33
From .NET to Node.js, путешествие туда и обратно? Виталий Слободин @vitalliumm Backend Meetup 23.01.2015

Transcript of From .NET to Node.js: путешествие туда и обратно

Page 1: From .NET to Node.js: путешествие туда и обратно

From .NET to Node.js,путешествие туда и обратно?

Виталий Слободин @vitalliumm

Backend Meetup 23.01.2015

Page 2: From .NET to Node.js: путешествие туда и обратно

Кто я?

• упоротый .NET разработчик • сижу на .NET больше 5 лет (не отпускает)

• Node.js - 1,5 года коммерческой разработки

Page 3: From .NET to Node.js: путешествие туда и обратно

Почему?

Зачем?

Убийца - садовник?

Page 4: From .NET to Node.js: путешествие туда и обратно

Трилогия

1. Нежданное

путешествие

2. Пустошь Смауга

3. Битва пяти воинств

Page 5: From .NET to Node.js: путешествие туда и обратно

Нежданное путешествие

Page 6: From .NET to Node.js: путешествие туда и обратно

Почему Node.js?• JavaScript

• скорость

• асинхронность

• одна кодовая база

• работает везде

• и другое

Page 7: From .NET to Node.js: путешествие туда и обратно

Асинхронность

Page 8: From .NET to Node.js: путешествие туда и обратно

Пустошь Смауга

Page 9: From .NET to Node.js: путешествие туда и обратно

.NET vs Node.jsIIS => Node.exe

C# / VB => JavaScript

NuGet => npm ASP.NET WebForm => Express + EJS

ASP.NET MVC => Express + Vash ASP.NET WebAPI => Express

SignalR => socket.io

Page 10: From .NET to Node.js: путешествие туда и обратно

Переключаемся…

npm init npm install express —save

npm install vash —save

express.js

Page 11: From .NET to Node.js: путешествие туда и обратно

package.json vs packages.config

package.json packages.config

Page 12: From .NET to Node.js: путешествие туда и обратно

vash (@razor)

Page 13: From .NET to Node.js: путешествие туда и обратно

middlewares?

Page 14: From .NET to Node.js: путешествие туда и обратно

middlewares!npm install body-parser —save

npm install compression —save

npm install cookie-parser —save

npm install express-mailer —save

npm install express-session —save

Page 15: From .NET to Node.js: путешествие туда и обратно

.NET vs Node.js

C# => NodeJs

F# => NodeJs

Python => NodeJs

TSQL => NodeJs

Powershell => NodeJs

Page 16: From .NET to Node.js: путешествие туда и обратно

Битва пяти воинств

Page 17: From .NET to Node.js: путешествие туда и обратно

Орки (ES5)• дублированные callback’и• вызов callback'а может потеряться по дороге• В обработчик emitter могут прийти несколько событий типа «error»• Callback'и — отстой• У вас могут быть ошибки вообще из других потоков

Page 18: From .NET to Node.js: путешествие туда и обратно

… урки (ES2015)• Если не поймать ошибку, то все полетит к чертям• Часто непонятно, как именно обрабатываются ошибки• Обработчики ошибок слишком многословны• Callback'и — отстой (╯°□°)╯︵ ┻━┻• библиотека может случайно запустить callback несколько раз, или

неправильно очистит обработчики

Page 19: From .NET to Node.js: путешествие туда и обратно
Page 20: From .NET to Node.js: путешествие туда и обратно

Отладка?

Page 21: From .NET to Node.js: путешествие туда и обратно

console.log• встроенный отладчик

• node-inspector

• http://www.joyent.com/developers/node/debug

• отладчики в IDE

Page 22: From .NET to Node.js: путешествие туда и обратно

Do not disturb… Debugging is in progress…

Page 23: From .NET to Node.js: путешествие туда и обратно

JavaScript

Мы в дерьме

Page 24: From .NET to Node.js: путешествие туда и обратно

TypeScript FTW!

Page 25: From .NET to Node.js: путешествие туда и обратно

JavaScript vs TypeScript

Page 26: From .NET to Node.js: путешествие туда и обратно

JavaScript vs TypeScript

Page 27: From .NET to Node.js: путешествие туда и обратно

TypeScript

Page 28: From .NET to Node.js: путешествие туда и обратно

TypeScript• Аннотации типов • проверка на этапе редактирования • классы • интерфейсы • “миксины” • параметры по умолчанию • шаблоны • модули • и другое

Page 29: From .NET to Node.js: путешествие туда и обратно
Page 30: From .NET to Node.js: путешествие туда и обратно

Завершаем приключение

Page 31: From .NET to Node.js: путешествие туда и обратно

Q&A

Page 32: From .NET to Node.js: путешествие туда и обратно

Спасибо!

Page 33: From .NET to Node.js: путешествие туда и обратно

Какменя найти:

http://vk.com/vitallium @vitaliumm

http://github.com/vitallium

http://it61.herokuapp.com

А также в нашемуютном Slack чате: