from .net to node.js: путешествие туда и обратно

Post on 16-Feb-2017

273 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

Backend Meetup 23.01.2015

Кто я?

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

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

Почему?

Зачем?

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

Трилогия

1. Нежданное

путешествие

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

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

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

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

• скорость

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

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

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

• и другое

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

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

.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

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

npm init npm install express —save

npm install vash —save

express.js

package.json vs packages.config

package.json packages.config

vash (@razor)

middlewares?

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

.NET vs Node.js

C# => NodeJs

F# => NodeJs

Python => NodeJs

TSQL => NodeJs

Powershell => NodeJs

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

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

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

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

Отладка?

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

• node-inspector

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

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

Do not disturb… Debugging is in progress…

JavaScript

Мы в дерьме

TypeScript FTW!

JavaScript vs TypeScript

JavaScript vs TypeScript

TypeScript

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

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

Q&A

Спасибо!

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

http://vk.com/vitallium @vitaliumm

http://github.com/vitallium

http://it61.herokuapp.com

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

top related