Canivete suíço do desenvolvedor Node
De Caio Incau
()
Sobre este e-book
Pois bem, é isto que este livro aborda: como resolver ou se prevenir de problemas na sua aplicação utilizando Express.
A ideia é tratar de diversos conceitos básicos e avançados que resolvam alguns dos principais impasses do dia a dia de um desenvolvedor.
Relacionado a Canivete suíço do desenvolvedor Node
Ebooks relacionados
Mezzio e PHP 7: Uma união poderosa para criação de APIs Nota: 2 de 5 estrelas2/5Sass: Aprendendo pré-processadores CSS Nota: 0 de 5 estrelas0 notasFragmentos de um programador: Artigos e insights da carreira de um profissional Nota: 5 de 5 estrelas5/5Caixa de Ferramentas DevOps: Um guia para construção, administração e arquitetura de sistemas modernos Nota: 0 de 5 estrelas0 notasYesod e Haskell: Aplicações web com Programação Funcional pura Nota: 0 de 5 estrelas0 notasVue.js: Construa aplicações incríveis Nota: 0 de 5 estrelas0 notasJavaScript Assertivo: Testes e qualidade de código em todas as camadas da aplicação Nota: 0 de 5 estrelas0 notasTest-Driven Development: Teste e Design no Mundo Real Nota: 0 de 5 estrelas0 notasDesenvolvimento web com ASP.NET MVC Nota: 0 de 5 estrelas0 notasMeteor: Criando aplicações web real-time com JavaScript Nota: 5 de 5 estrelas5/5ECMAScript 6: Entre de cabeça no futuro do JavaScript Nota: 5 de 5 estrelas5/5VRaptor: Desenvolvimento ágil para web com Java Nota: 0 de 5 estrelas0 notasO retorno do cangaceiro JavaScript: De padrões a uma abordagem funcional Nota: 0 de 5 estrelas0 notasRefatorando com padrões de projeto: Um guia em Ruby Nota: 0 de 5 estrelas0 notasColetânea Front-end: Uma antologia da comunidade front-end brasileira Nota: 0 de 5 estrelas0 notasProgressive Web Apps: Construa aplicações progressivas com React Nota: 3 de 5 estrelas3/5Vire o jogo com Spring Framework Nota: 0 de 5 estrelas0 notasProgramação Funcional: Uma introdução em Clojure Nota: 4 de 5 estrelas4/5Explorando APIs e bibliotecas Java: JDBC, IO, Threads, JavaFX e mais Nota: 0 de 5 estrelas0 notasProtractor: Lições sobre testes end-to-end automatizados Nota: 0 de 5 estrelas0 notasFront-end com Vue.js: Da teoria à prática sem complicações Nota: 5 de 5 estrelas5/5Aplicações mobile híbridas com Cordova e PhoneGap Nota: 0 de 5 estrelas0 notasPSRs: Boas práticas de programação com PHP Nota: 4 de 5 estrelas4/5Zend Expressive e PHP 7: Uma união poderosa para a criação de APIs Nota: 0 de 5 estrelas0 notasProgramação funcional em .NET: Explore um novo universo Nota: 0 de 5 estrelas0 notasConstruindo APIs REST com Node.js: Caio Ribeiro Pereira Nota: 5 de 5 estrelas5/5Guia prático de TypeScript: Melhore suas aplicações JavaScript Nota: 0 de 5 estrelas0 notasCodeIgniter: Produtividade na criação de aplicações web em PHP Nota: 0 de 5 estrelas0 notasZend Certified Engineer: Descomplicando a certificação PHP Nota: 0 de 5 estrelas0 notasTurbine seu CSS: Folhas de estilo inteligentes com Sass Nota: 0 de 5 estrelas0 notas
Programação para você
Introdução a Data Science: Algoritmos de Machine Learning e métodos de análise Nota: 0 de 5 estrelas0 notasOrientação a Objetos: Aprenda seus conceitos e suas aplicabilidades de forma efetiva Nota: 5 de 5 estrelas5/5O universo da programação: Um guia de carreira em desenvolvimento de software Nota: 5 de 5 estrelas5/5Python: Escreva seus primeiros programas Nota: 4 de 5 estrelas4/5HTML5 e CSS3: Domine a web do futuro Nota: 4 de 5 estrelas4/5MySQL: Comece com o principal banco de dados open source do mercado Nota: 4 de 5 estrelas4/5Lógica de Programação: Crie seus primeiros programas usando Javascript e HTML Nota: 4 de 5 estrelas4/5Scrum 360: Um guia completo e prático de agilidade Nota: 5 de 5 estrelas5/5PostgreSQL: Banco de dados para aplicações web modernas Nota: 5 de 5 estrelas5/5Introdução à programação em C: Os primeiros passos de um desenvolvedor Nota: 4 de 5 estrelas4/5Lógica de programação com Portugol: Mais de 80 exemplos, 55 exercícios com gabarito e vídeos complementares Nota: 0 de 5 estrelas0 notasAprenda a programar com Python: Descomplicando o desenvolvimento de software Nota: 5 de 5 estrelas5/5Business Intelligence: Implementar do jeito certo e a custo zero Nota: 4 de 5 estrelas4/5PHP e Laravel: Crie aplicações web como um verdadeiro artesão Nota: 0 de 5 estrelas0 notasO Programador Apaixonado: Construindo uma carreira notável em desenvolvimento de software Nota: 5 de 5 estrelas5/5React Native: Desenvolvimento de aplicativos mobile com React Nota: 5 de 5 estrelas5/5ECMAScript 6: Entre de cabeça no futuro do JavaScript Nota: 5 de 5 estrelas5/5Machine Learning: Introdução à classificação Nota: 0 de 5 estrelas0 notasEstruturas de Dados: Domine as práticas essenciais em C, Java, C#, Python e JavaScript Nota: 0 de 5 estrelas0 notasPython e mercado financeiro: Programação para estudantes, investidores e analistas Nota: 5 de 5 estrelas5/5Trilhas Python: Programação multiparadigma e desenvolvimento Web com Flask Nota: 5 de 5 estrelas5/5Guia do mestre programador: Pensando como pirata, evoluindo como jedi Nota: 3 de 5 estrelas3/5Manual de sobrevivência do novo programador: Dicas pragmáticas para sua evolução profissional Nota: 4 de 5 estrelas4/5Deixe seu código limpo e brilhante: Desmistificando Clean Code com Java e Python Nota: 0 de 5 estrelas0 notasArduino prático: 10 projetos para executar, aprender, modificar e dominar o mundo Nota: 3 de 5 estrelas3/5Cangaceiro JavaScript: Uma aventura no sertão da programação Nota: 3 de 5 estrelas3/5O Guia Definitivo para Geração de Renda com o ChatGPT para Empreendedores Nota: 0 de 5 estrelas0 notasCertificação Linux Essentials Nota: 4 de 5 estrelas4/5Produtividade em C#: Obtenha mais resultado com menos esforço Nota: 0 de 5 estrelas0 notas
Avaliações de Canivete suíço do desenvolvedor Node
0 avaliação0 avaliação
Pré-visualização do livro
Canivete suíço do desenvolvedor Node - Caio Incau
Sumário
Agradecimentos
Sobre o autor
1. Introdução
2. Melhorando a performance do lado do cliente
3. Cuidando de erros e logs
4. Melhorando performance e segurança
5. Envio de e-mails com Node.js
Agradecimentos
Gostaria primeiramente de agradecer ao Adriano, por ter acreditado no livro, sugerido o tema e, principalmente, por ter acreditado no garoto do interior que, há alguns anos atrás, teve seu primeiro emprego como estagiário no protótipo da Editora em que hoje escrevo.
Gostaria de agradecer também as pessoas que trabalham comigo pelo constante incentivo à aprendizagem e melhoria, principalmente aos meus amigos Maurício Aniche e Guilherme Silveira.
Por fim, mas não menos importante, gostaria de agradecer aos meus pais, por sempre estarem ao meu lado e também me incentivarem a sempre dar o melhor de mim.
Sobre o autor
Meu nome é Caio Incau, e trabalho com desenvolvimento de software. Comecei aos 16 anos estudando por conta em casa, na época com Delphi.
Aos 17 anos, entrei na faculdade para cursar Sistemas de Informação. Também nessa idade, tomei uma das melhores decisões que já tive: decidi estudar Java pela Caelum. Com 18 anos, comecei a trabalhar na Caelum, empresa onde trabalho até o presente momento.
Durante minha estadia no mercado de TI, tive a oportunidade de trabalhar com Java, Ruby, JavaScript e Objective-C.
Busco sempre me atualizar e aprender sobre novas tecnologias, pois acredito fortemente que este é o segredo para o sucesso em nossa área de trabalho.
Capítulo 1
Introdução
Você já passou por problemas reais ao fazer o deploy de uma aplicação com Express? Como, por exemplo, servir conteúdo estático de forma otimizada, tratar os erros, usar cache, ou até mesmo a necessidade de criar um Cluster?
Pois bem, é isto que este livro aborda: como resolver ou se prevenir de problemas na sua aplicação utilizando Express.
A ideia é tratar de diversos conceitos básicos e avançados que resolvam alguns dos principais impasses do dia a dia de um desenvolvedor.
1.1 Para quem é este livro
Este livro é para as pessoas que já possuem algum conhecimento em NodeJS, Express e Mongoose. Não é necessária uma grande experiência com essas ferramentas, apenas o básico.
Você pode seguir o livro sem o conhecimento prévio delas, porém será mais complicado de entender o código de exemplo.
Todo o código estará no meu repositório do GitHub, que você pode acessar em: https://github.com/CaioIncau/my-todo/tree/cap1, dividido por capítulos. Espero que você aproveite o que aprender aqui, e aplique em seus projetos, sejam eles pessoais ou empresariais.
Existe um grupo de discussão deste livro, no qual você pode postar dúvidas e compartilhar seus resultados: https://groups.google.com/forum/?hl=pt-BR#!forum/canivetenode.
1.2 Como este livro funciona
Este livro vai usar um projeto extremamente simples como exemplo. Será uma aplicação na qual você cadastra tarefas e, por isso, será chamada de Todo.
A proposta é que você veja o conceito e o transporte para o seu projeto, ou até mesmo que aplique diretamente nele: o Todo é apenas um apoio didático.
A cada capítulo, vamos avançando mais o projeto e adicionando novas funcionalidades voltadas para segurança, performance e manutenibilidade.
1.3 Configurando o projeto de exemplo na sua máquina
O projeto de exemplo está no GitHub, e ele pode ser clonado em seu estado inicial, neste repositório: https://github.com/CaioIncau/my-todo/tree/inicial.
Se você não é familiriazado com o Git, você pode baixar a versão zipada em: https://github.com/CaioIncau/my-todo/archive/inicial.zip.
Se você não tem o Node instalado, lembre-se de baixá-lo em https://nodejs.org/download/.
Rode o comando node -v e garanta que seu Node utiliza a versão 0.10 ou superior:
Node versionFigura 1.1: Node version
Após baixar o projeto e deszipá-lo, entre na pasta my-todo e rode o comando npm install. Usaremos o npm para resolver as dependências do projeto. Se precisar, delete a pasta .node_modules antes de realizar o npm install, pois pode haver conflitos com versões preexistentes dos módulos.
A saída do npm install será algo próximo a isto:
caioincau@MBA/my-todo-inicial: (master)$ npm install
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No README data
npm WARN deprecated [email protected]: Bad bug with save() - see github issue #2340
> [email protected] install /Users/caioincau/Documents/my-todo-inicial/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild 2> builderror.log) || (exit 0)
CXX(target) Release/obj.target/kerberos/lib/kerberos.o
CXX(target) Release/obj.target/kerberos/lib/worker.o
CC(target) Release/obj.target/kerberos/lib/kerberosgss.o
CC(target) Release/obj.target/kerberos/lib/base64.o
CXX(target) Release/obj.target/kerberos/lib/kerberos_context.o
SOLINK_MODULE(target) Release/kerberos.node
SOLINK_MODULE(target) Release/kerberos.node: Finished
> [email protected] install /Users/caioincau/Documents/my-todo-inicial/node_modules/mongoose/node_modules/mongodb/node_modules/bson
> (node-gyp rebuild 2> builderror.log) || (exit 0)
CXX(target) Release/obj.target/bson/ext/bson.o
SOLINK_MODULE(target) Release/bson.node
SOLINK_MODULE(target) Release/bson.node: Finished
[email protected] node_modules/ejs
[email protected] node_modules/cookie-parser
[email protected] node_modules/method-override
└── [email protected] ([email protected])
[email protected] node_modules/ejs-locals
[email protected] node_modules/serve-static
└──