O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
Introdução ao NodeJS
Introdução ao NodeJS
Carregando em…3
×

Confira estes a seguir

1 de 31 Anúncio

Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos

Baixar para ler offline

O JavaScript se reinventou mais uma vez, e mais uma vez, está entregando nas mãos dos desenvolvedores o poder de mudar o desenvolvimento. Uma das tecnologias favoritas no mundo Open Source é o Node.js, já usada em vários projetos.
Vamos conhecer como iniciar o caminho a ser percorrido para que você adentre o mundo da plataforma que está disponível em centenas de milhões de aplicações, e, num breve futuro, alcance o grau de profissionalismo para aproveitar grandes oportunidades de mercado.

O JavaScript se reinventou mais uma vez, e mais uma vez, está entregando nas mãos dos desenvolvedores o poder de mudar o desenvolvimento. Uma das tecnologias favoritas no mundo Open Source é o Node.js, já usada em vários projetos.
Vamos conhecer como iniciar o caminho a ser percorrido para que você adentre o mundo da plataforma que está disponível em centenas de milhões de aplicações, e, num breve futuro, alcance o grau de profissionalismo para aproveitar grandes oportunidades de mercado.

Anúncio
Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos (20)

Anúncio

Mais de Jackson F. de A. Mafra (20)

Mais recentes (20)

Anúncio

Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos

  1. 1. Nodejs - Os Primeiros Passos
  2. 2. JACKSON FERREIRA DE ANDRADE MAFRA Desenvolvedor há mais de 20 anos com background em projetos de e-commerce e real estate, desde 2009 com interesses focados para o desenvolvimento de interfaces móveis e aplicações MEAP. Me chama lá... http://about.me/jacksonfdam http://linkedin.com/in/jacksonfdam @jacksonfdam
  3. 3. O JavaScript, durante muito tempo, não foi uma linguagem respeitada. Era considerada uma linguagem de amadores e, por de fato ser utilizada por muitos programadores inexperientes, gerava códigos mal-escritos. O JS mudou e moldou a web, deu muito mais poder aos desenvolvedores, e se estabeleceu permanentemente como a linguagem de scripts para a web.
  4. 4. Hoje, o JavaScript se reinventou mais uma vez, e mais uma vez, está entregando nas mãos dos desenvolvedores o poder de mudar o desenvolvimento. Vamos conhecer como iniciar o caminho a ser percorrido para que você adentre o mundo da plataforma que está disponível em centenas de milhões de aplicações, e, num breve futuro, alcance o grau de profissionalismo para aproveitar grandes oportunidades de mercado.
  5. 5. Javascript O mundo do JavaScript tomou outra dimensão a partir do momento que o ecossistema node/npm explodiu. Com ele, tanto a comunidade quanto as empresas, começaram a enxergar o verdadeiro potencial da linguagem.
  6. 6. Javascript Com o seu sucesso e crescimento, não demorou para que saísse uma nova versão da especificação ECMAScript que levasse a linguagem para o próximo nível. Foi então que saiu o ES6 (ou ECMAScript 2015, se preferir), trazendo uma série de melhorias significativas.
  7. 7. Javascript Para obter conhecimento abrangente ("domínio") de JavaScript, você precisa estar familiarizado com a totalidade das especificações ECMAScript sobre as quais se baseia. JavaScript sua sintaxe, ES2017, melhores práticas, pitfalls, async/promises
  8. 8. Javascript ● Classes ● Object Methods ● Getters e Setters ● Dados privados ● Herança ● Parâmetros Padrão ● Um novo for: for.. of ● Declaração de valores, escopo e hoisting ● Uma nova maneira de extrair dados de arrays e objetos ● Trabalhando com Strings ● Template literals ● Multi-line strings ● Funções ● Múltiplos retornos em uma função
  9. 9. Javascript O uso de ES6 deixa a sintaxe do JavaScript muito mais elegante e de fácil entendimento fora suas novas funcionalidades que adicionaram mais poder a linguagem. Frameworks novos ou antigos já estão nascendo ou sendo migrados para essa nova sintaxe por isso recomendo fortemente que você tire um tempo para estudar mais sobre ela.
  10. 10. Javascript Também podemos transpilar código ES5 para ES6 utilizando o Lebab (sim, Babel ao contrário).
  11. 11. Conhecendo o node.js Segundo próprio site: “o node.js é uma plataforma construída sobre o runtime do Chrome, para facilitar a construção de aplicativos escaláveis, usando um modelo baseado em eventos, não bloqueável que o torna leve e eficiente. Ideal para aplicativos com uso intensivo de dados, ou em tempo real capaz de rodar em sistemas diversos”.
  12. 12. Conhecendo o node.js Trocando em miúdos: trata-se um conjunto de bibliotecas, desenvolvidas em C++, na forma de um aplicativo que permite a execução de código escrito em javascript na linha de comando da sua máquina.
  13. 13. Conhecendo o node.js Runtime do Chrome Para ser simples o node.js baseia-se no V8, uma máquina virtual, em código aberto, que está sendo exaustivamente desenvolvida pelo Google para o Chrome. As ambições do V8 incluem: ser mais rápido, independente da plataforma e mais estável que os engines, e máquinas virtuais, que andam por ai, populando nossos navegadores e permitindo o uso de javascript em páginas HTML.
  14. 14. Conhecendo o node.js Não bloqueável A web está evoluindo. Originalmente usávamos a web apenas para consumir conteúdo estático. Fotos de gatos, por exemplo. Hoje usamos para convivência, interação social em sites úteis como o Facebook, onde podemos ver fotos de gatos, publicadas por pessoas que você respeitava, quase em tempo real.
  15. 15. Conhecendo o node.js Não bloqueável Queremos o tempo real. Queremos conversar, ler e postar, todo o tempo e o tempo todo. Qualquer um com experiência de desenvolvimento web sabe que as requisições HTTP não foram feitas para este cenário. Na verdade, não foram feitas nem para ver as fotos de gatos. O processo de requisição e resposta utilizado pelo protocolo HTTP é lento, arcaico e baseado em textos.
  16. 16. Conhecendo o node.js Não bloqueável Quando usamos uma linguagem de programação como o PHP, ou o Java, sobre um servidor web como o Apache, com ou sem o Tomcat, cada requisição gera um thread que, por sua vez, provoca a alocação de um determinado espaço de memória.
  17. 17. Conhecendo o node.js Não bloqueável Digamos, apenas para ilustrar, que sejam 1,5Mbytes por conexão. Se assim for, um servidor com 4 Gbytes, será capaz de suportar alguma coisa próximo a 2600 clientes simultâneos. Parece bom? Não é. E olhe que eu nem estou falando dos ciclos e mais ciclos de cpu que são gastos apenas para ficar mudando de thread. Neste esquema, um aumento na demanda só pode ser atendido com alterações na infraestrutura ou na arquitetura do aplicativo. Em língua de gente: caro, muito caro.
  18. 18. Conhecendo o node.js Não bloqueável Na esperança de resolver este problema o node.js adota um único thread, que não pode ser bloqueado por nenhuma requisição de entrada/saída, para tratar todas as requisições que o servidor recebe. A ideia original, o node.js foi criado por Ryan Dahl em 2009, pode ter sido a fomentadora de outras iniciativas na mesma direção: como a tecnologia usada nos servidores web mais modernos como o Nginx e o Thin e em projetos parecidos com o node.js para o Python (Twisted) e para o Ruby (EventMachine). Nada como a cópia e a adoção desenfreada de uma tecnologia para validar sua utilização.
  19. 19. Conhecendo o node.js Não bloqueável O conceito por trás do nodel.js é simples: toda e qualquer requisição é tratada pelo sistema servidor em um único thread, sem a alocação de memória extra necessária e sem ciclos de cpu desperdiçados na alternância de threads.
  20. 20. Conhecendo o node.js Baseado em eventos Formalmente, pode-se dizer que o node.js usa uma arquitetura baseada em eventos de I/O não-blocante. I/O, ou E/S como se usa em português do Brasil, é um termo que se refere a toda operação, feita entre a CPU e qualquer outro dispositivo, por exemplo o disco. No caso da web, este termo é aplicado a tarefas que serão executadas fora do thread principal, por exemplo consultas a bancos de dados. Então, do ponto de vista do node.js, operação de I/O é qualquer operação que precise ser executada fora do thread principal.
  21. 21. Conhecendo o node.js Baseado em eventos O não-blocante indica que nenhuma operação de I/O irá interromper o fluxo do thread principal. Ou seja, todas as requisições serão executadas, e nenhuma delas será capaz de interromper o processamento das outras enquanto termina de enviar dados.
  22. 22. Conhecendo o node.js Baseado em eventos O que o node.js faz é criar um laço onde toda e qualquer operação assíncrona de entrada e saída gera um evento. Cada chamada a uma função externa ao thread principal pendura uma função de callback neste laço. Assim que o evento ocorre o callback correspondente é chamado.
  23. 23. Conhecendo o node.js Um desenvolvedor que trabalha com Node.js é um back-end ou um front- end? Nós trabalhamos com uma linguagem de programação, que pode ser usada tanto no front, quanto no back e pronto.
  24. 24. Conhecendo o node.js A partir de uma ideia tão legal quanto o Node.js, surgiu o io.js. O io.js apareceu em Dezembro de 2014, a partir de um fork do Node feito pelo Fedor Indutny (que pela lista do Node, foi o 112 contribuidor do Node), mas que era um integrante core do time.
  25. 25. Conhecendo o node.js A plataforma inteira do Node pode rodar em Linux, OS X ou FreeBSD e até em Windows. Como várias linguagens, o Node também pode ser controlada via linha de comando.
  26. 26. Conhecendo o node.js Linux é padrão: é um dos sabores mais conhecidos do mercado. Um pouco de file descriptors, conceitos de daemon, até mesmo saber como visualizar seu processo e os recursos que ele está consumindo (aquele ps basicão, lsof, curl, etc) e entender o Sistema Operacional é sempre bom.
  27. 27. Conhecendo o node.js C++ é aquele diferencial, não essencial mas legal. C++ é tipo chocolate: basicão, tá aí desde sempre e quase tudo é feito em cima dele. É bom (não essencial) quando temos uma curiosidade para olhar o código do V8, ver como é feita a libuv, criar uns binds marotos, fazer um dtrace e suas probes, enfim, se der deu.
  28. 28. Node.js● HTTP metodos/verbos, status ● Node.js internals (workers, V8, GC, bailout, workers, memória, looping, libuv) ● Processos, threads, testes de integração, unitários ● Performance ● Monitoração ● Logs ● 12 fatores sobre aplicação (https://12factor.net/pt_br/)
  29. 29. Node.js ● Npm ● Nodemon ● Forever ● Sequelize ● Express ● Nunjucks
  30. 30. Node.js ● Consign: Para realizar autoload de módulos ● Body-parser: Para receber parâmetros de formulários trafegados em requests. ● Express-validator: Para validação de dados ● Express-session: Para criação de variáveis de sessão ● Crypto: Para criptografia de dados utilizando MD5 ● Connect-Multiparty: Para upload de arquivos
  31. 31. Perguntas?

×