O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Node.js - #1 - Introdução - Rodrigo Branas

2.026 visualizações

Publicada em

Na estréia da série sobre Node.js, vamos falar sobre a história e as principais caraterísticas da plataforma como o V8, event loop e thread pool.

Vamos mostrar por meio de diversos exemplos como o Node.js funciona e quais são os aspectos importantes em termos de escalabilidade e performance.

https://www.youtube.com/watch?v=KtDwdoxQL4A

Publicada em: Internet

Node.js - #1 - Introdução - Rodrigo Branas

  1. 1. Rodrigo Branas – @rodrigobranas - http://www.agilecode.com.br
  2. 2. O Node.js não nasceu com a intenção de levar o JavaScript para o servidor
  3. 3. Tudo começou com Ryan Dahl
  4. 4. A forma como a maior parte das plataformas lida com I/O está errada
  5. 5. As threads acabam passando a maior parte do seu tempo dormindo...
  6. 6. Isso acaba alocando recursos, como memória, desnecessariamente
  7. 7. Será que é possível fazer a mesma coisa de um jeito mais eficiente?
  8. 8. O Node.js processa tudo em uma única thread, utilizando um event loop
  9. 9. Hands-On: Single Thread primes-single-thread.js
  10. 10. Dessa forma, como é possível escalar e atender vários clientes ao mesmo tempo?
  11. 11. Na verdade, existe um thread pool responsável pelo processamento de I/O
  12. 12. Hands-On: Thread Pool files.js
  13. 13. Hands-On: Multi Thread primes-multi-thread.js
  14. 14. A libuv é uma biblioteca multi-plataforma responsável pela realização de I/O assíncrono, fornecendo a implementação do event loop e do thread pool, juntamente com o suporte a TCP e UDP socket, resolução de DNS, sistema de arquivos, processos entre outras.
  15. 15. Qual linguagem oferece um bom suporte ao desenvolvimento assíncrono?
  16. 16. C podia ser mais atraente...
  17. 17. Ele avaliou ainda Lua e Haskell
  18. 18. JavaScript é perfeito, tem uma sintaxe amigável e tudo gira em torno de funções
  19. 19. Os navegadores já utilizam de forma assíncrona, baseado em um event loop
  20. 20. O V8 é um interpretador de JavaScript de alta performance desenvolvido pelo Google. Ele tem o código aberto e foi desenvolvido em C++ com o objetivo de atender ao navegador Chrome.
  21. 21. Será que o Node.js é rápido mesmo?
  22. 22. Hands-On: Performance primes.js vs Primes.java
  23. 23. O Node.js uma plataforma de código aberto para a execução de JavaScript no servidor. É composto pela junção do interpretador V8, do Google, com a biblioteca libuv e por um conjunto de módulos.
  24. 24. Node.js  Bindings  (C++) Node.js  Code  Library  (JavaScript) http fs stream buffer net crypto zlib cluster dns ... +
  25. 25. A comunidade, insatisfeita com a Joyent, fez um fork do Node.js criando o io.js
  26. 26. Em 09/2015, com a saída da Joyent, io.js v3.3 se juntou com o Node.js v0.12, dando origem ao Node.js v4.0
  27. 27. Quem está utilizando Node.js?
  28. 28. Quer começar a utilizar Node.js?
  29. 29. node --version
  30. 30. REPL ou Read-Eval-Print-Loop
  31. 31. node helloWorld.js
  32. 32. O Node.js suporta ES6?
  33. 33. Rodrigo Branas   Agile Code: http://www.agilecode.com.br Twitter: @rodrigobranas SlideShare: http://www.slideshare.com/rodrigobranas YouTube: http://www.youtube.com/rodrigobranas LinkedIn: http://br.linkedin.com/in/rodrigobranas +Plus: https://plus.google.com/+RodrigoBranas GitHub: http://www.github.com/rodrigobranas

×