Slide 1

Slide 1 text

TypeScript server-side szybkie API w Express.js Michał Michalczuk

Slide 2

Slide 2 text

Node.js 2 Czym jest node.js? • Środowisko wykonawcze • Wieloplatformowe środowisko wykonawcze • Wieloplatformowe środowisko wykonawcze do wytwarzania aplikacji serwerowych stworzonych w JavaScript • Rozwijany od 2009 roku jako OpenSource • Wykorzystuje silnik V8 (by Google)

Slide 3

Slide 3 text

Node.js 3 Czym nie jest node.js? • Frameworkiem • Wielowątkowy

Slide 4

Slide 4 text

Event Driven Programming 4

Slide 5

Slide 5 text

Event Driven Programming 5 element.onclick(...) Jak obsłużymy ten event? • Callback • Promise

Slide 6

Slide 6 text

Node.js: single thread 6 Pan event-loop i jego wiadomości Callbacks

Slide 7

Slide 7 text

Node.js: event-loop 7 Browser event-loop Źródło: https://developer.mozilla.org/en/docs/Web/JavaScript/EventLoop while(queue.waitForMessage()) { queue.processNextMessage(); }

Slide 8

Slide 8 text

Node.js: event-loop 8 The almighty event loop Źródło: https://strongloop.com/strongblog/node-js-performance-event-loop-monitoring/

Slide 9

Slide 9 text

Node.js: event-loop 9

Slide 10

Slide 10 text

Node.js: nie blokuje I/O 10 • L1-Cache3 cykle • L2-Cache 14 cykli • RAM 250 cykli • Dysk 41 000 000 cykli • Sieć 240 000 000 cykli Dlaczego to tak istotne?

Slide 11

Slide 11 text

Express.js 11 Czym jest express.js? • Fast, unopinionated, minimalist web framework for Node.js • HTTP API + MVC • Middleware

Slide 12

Slide 12 text

Coding Session Code show session Show me the code

Slide 13

Slide 13 text

Node.js + Express.js 13

Slide 14

Slide 14 text

Node.js + Express.js: Wykorzystanie 14 DIRTy applications • Data Intensive • Real Time

Slide 15

Slide 15 text

Node.js + Express.js: Wykorzystanie 15 Kiedy nie używać • Systemy zorientowane na obliczenia • Systemy zorientowane na operacje obciążające CPU • Gdy potrzebujemy wielowątkowości (tutaj oczywiście jest możliwa, ale mało wygodna)

Slide 16

Slide 16 text

Dziękuję za uwagę