SlideShare uma empresa Scribd logo
1 de 76
Baixar para ler offline
Workshop do básico ao avançado
Eduardo Bohrer
@nbluis
Exemplos do workshop
Este workshop acompanha alguns exemplos práticos,
publicados em:
https://github.com/nbluis/workshop-nodejs
Temática
● As vezes eu falo demais, me interrompam !
● As vezes eu esqueço das coisas, perguntem !
● Eu sou gentil, não fique com vergonha !
● O maior objetivo é sair sem dúvidas
● A discussão é o melhor aprendizado
● Quanto mais codificarmos melhor
Conteúdo
● História
● Conhecendo Node.js
● Conhecendo JavaScript
● Node.js Core
● Criando Apps
● Online Apps
● Fazendo deploy
Conteúdo
● História
● Conhecendo Node.js
● Conhecendo Javascript
● Node.js Core
● Criando Apps
● Online Apps
● Fazendo deploy
Os 3 pilares do Node.js
● JavaScript
● V8 Engine
● IO Assíncrono
JavaScript
● 1995
● 10 dias
● ECMA
● Microsoft
● JavaScript vs Java
Brendan Eich
JavaScript
JavaScript para browsers - Funciona no IE 6 ?
● jQuery
● Prototype
● Dojo
● MooTools
● Até os dias de hoje (Ember, Angular, React, Backbone)
V8 Engine
Google Chrome / Chromium (Open-Source)
https://code.google.com/p/v8/
Compila o código Javascript para o formato nativo de máquina, permitindo que
rode a velocidade de um código binário compilado.
C10k problem
E se o site tiver 10mil usuários simultâneos ?
http://www.kegel.com/c10k.html
● Threads
● IO Síncrono
C10k problem
Tempo de acesso a informação
● Cache - 0.5ns
● Memória principal - 100ns
● Disco - 10.000.000ns
C10k problem
● select
● epool
● kqueue
● libevent
IO Assíncrono
Node.js
Mas o que tudo isso tem a ver com
Node.js ?
Habemus Node.js
Node.js
=
JavaScript + V8 + IO Assincrono
Node.js 2009
● Linguagem (JavaScript)
● Interpretador (V8)
● Um modelo (IO Assíncrono)
● API Base
● Interface de IO
Ryan Dahl
Node.js hoje
Versão 0.12.0
Joyent
Core Team
IO.js + Open Governance
Pausa para o café
Perguntas ?
Conteúdo
● História
● Conhecendo Node.js
● Conhecendo JavaScript
● Node.js Core
● Criando Apps
● Online Apps
● Fazendo deploy
Instalação
Read the docs !
apt-get install nodejs
yum install nodejs
https://nodejs.org/download/
REPL - Read Eval Print Loop
$ node -v
v0.12.0
$ node
> console.log(‘Hello World!’);
Rodando Scripts
$ echo "console.log('Hello World')" >> index.js
$ node index.js
Hello World!
Exemplos mais legais
● Servidor http simples
● Calculadora no console
Modularização
require
● Builtin / API
● Internal
● Third-party
Modularização
Criando um módulo
module.exports
Ver modules-sample
Node.js API
https://nodejs.org/api/
Detalharemos isso mais tarde
NPM.js
Node package manager
http://npmjs.org
● npm command line
● Global vs Local
● package.json
Package.json
● Informações básicas
● Colaboradores
● Dependências
● Licenças
● Tasks
Pausa para o café
Perguntas ?
Conteúdo
● História
● Conhecendo Node.js
● Conhecendo JavaScript
● Node.js Core
● Criando Apps
● Online Apps
● Fazendo deploy
JavaScript
● Tipagem dinâmica
● Orientada a objetos SIM
● Com modelo de protótipos
● Pitadas de linguagem funcional
Funções são tudo
function hello() {
console.log('Hello World!');
}
hello();
Podem ser auto-contidas
(function() {
console.log('Hello World!');
})();
Podem ser variáveis
var myFunction = function() {
console.log('Hello World!');
}
myFunction();
Podem ser parâmetros
function execute(callback) {
callback();
}
execute(function() {
console.log('Hello World!');
});
Podem retornar outras funções
function build() {
return function() {
console.log('Hello World!');
};
}
build()(); // WTF ?
E tudo isso junto também LOL
function execute(callback) { callback(); }
function build() {
return function() { console.log('Hello World!'); };
}
(function() {
execute(build());
})();
Podem ser instanciadas
function Animal() {}
new Animal();
Podem ter métodos
function Animal() {
this.comer = function() {
console.log('Estou Comendo!');
};
}
new Animal().comer();
Podem ter atributos
function Animal() {
var comeu = false;
this.comer = function() {
comeu = true;
};
}
new Animal().comer();
As vezes até “herança”
function Animal() {
this.comer = function() {console.log('Comi!');}
}
function Cachorro() {
Animal.apply(this);
}
new Cachorro().comer();
Sobrescrita de métodos também
function Animal() {
this.comer = function() {console.log('Comi!');}
}
function Cachorro() {
Animal.apply(this);
this.comer = function() {console.log('O cachorro comeu');}
}
new Cachorro().comer();
Podem ter + ou - parâmetros
function escreveNome(nome, sobrenome) {
console.log(nome, sobrenome);
}
escreveNome('João');
escreveNome('João', 'Silva');
Ou ter parâmetros sem ter (Troll)
function escreve() {
console.log(arguments[0], arguments[1], arguments[2],
arguments[3], arguments[4]);
};
escreve('JavaScript', 'é', 'coisa', 'do', 'demo');
Conhecendo mais
http://jstherightway.org/
Pausa para o café
Perguntas ?
Conteúdo
● História
● Conhecendo Node.js
● Conhecendo JavaScript
● Node.js Core
● Criando Apps
● Online Apps
● Fazendo deploy
Core API
https://nodejs.org/api/
Passada rápida
● EventEmitter
● Process
● Path e FileSystem
● HTTP
● Buffers e Streams
Event Emitter
Emissor de eventos por toda a plataforma.
Muito utilizado pela Core API e Módulos
externos.
Escutando eventos
var events = require('events'),
eventEmitter = new events.EventEmitter();
eventEmitter.on('meuevento', function() {
console.log('Meu evento aconteceu!');
});
Emitindo eventos
var events = require('events'),
eventEmitter = new events.EventEmitter();
eventEmitter.emit('meuevento');
Criando emissores de evento
Ver exemplo 03-customemitter.js
Node.js e eventos
● Porque eventos estão em todos os lugares ?
● Event Loop / Assíncrono
● Por isso que Javascript + Node.js são legais
● Veremos que toda a API do Node.js é assim
Process
Informações básicas sobre o processo e SO
STDIN e STDOUT
Módulo global, não necessita require
Ver Exemplos 06-process-sample
Path
Utilitário para resolução de caminhos de
diretórios e arquivos
Caminho absoluto, caminho relativo, etc.
Exemplos 07-path-sample
File System
Manipulação de arquivos
Ver exemplos 08-filesystem-samples
Async - Sync - Streams
HTTP
HTTP server e client
Ver exemplos 09 - http-samples
Muitas outras
https://nodejs.org/api/
Cluster, Cripto, Console, Debugger, DNS, Net,
Https, OS, Timers, TLS/SSL, UDP, URL, ZLIB
...
Pausa para o café
Perguntas ?
Conteúdo
● História
● Conhecendo Node.js
● Conhecendo JavaScript
● Node.js Core
● Criando Apps
● Online Apps
● Fazendo deploy
Express e Kraken
Express - framework web mais utilizado.
http://expressjs.com/
Kraken - Framework web criado pelo LinkedIn
que junta express com outros frameworks para
criar um framework full-stack.
http://krakenjs.com/
Iniciando um projeto express
Para este workshop vamos focar no express,
afim de entender a base de tudo.
Iniciando um projeto
Hora de botar tudo em prática!
● npm init
● dependências
● npm install
● Lets code….
Definindo rotas
app.get(‘/’, function(req,res) {});
app.post(‘/add’, function(req,res) {});
app.put(‘/update’, function(req,res) {});
Renderizando views
● Template engine
● Renderizando
● Parâmetros
● Conteúdo estático
Acessando banco de dados
● Driver
● Connection
● Query
● Result
● Parâmetros
Modularizando código
Exemplos
● Controllers
● Models
● Helpers
Conteúdo
● História
● Conhecendo Node.js
● Conhecendo JavaScript
● Node.js Core
● Criando Apps
● Online Apps
● Fazendo deploy
Web sockets
Spec HTML 5
Quantos canais abertos um servidor suporta ?
Event Loop + Async IO
Web sockets e Socket.IO
http://socket.io
Protocolo
Cliente
Fallback
Socket.IO APP
Ver Exemplo 11 - socket.io.sample
Conteúdo
● História
● Conhecendo Node.js
● Conhecendo JavaScript
● Node.js Core
● Criando Apps
● Online Apps
● Fazendo deploy
Deploy em nuvem
Deploy onsite
● Simples
● Preferencialmente Linux
● Instalação básica (gerenciador de pacotes)
● Deploy
● Exposto ou via proxy (NGINX / Apache)
Pausa para o café
Perguntas ?
Workshop do básico ao avançado
Eduardo Bohrer
@nbluis
https://github.com/nbluis/workshop-nodejs

Mais conteúdo relacionado

Mais procurados

Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPDaniel Brandão
 
Modernizing Web Apps with .NET 6.pptx
Modernizing Web Apps with .NET 6.pptxModernizing Web Apps with .NET 6.pptx
Modernizing Web Apps with .NET 6.pptxEd Charbeneau
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Sérgio Souza Costa
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Bruno Grange
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controleProfessor Samuel Ribeiro
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento WebSérgio Souza Costa
 
O que é framework
O que é frameworkO que é framework
O que é frameworkfcdigital
 
Aula 01 - JavaScript: Introdução
Aula 01 - JavaScript: IntroduçãoAula 01 - JavaScript: Introdução
Aula 01 - JavaScript: IntroduçãoJessyka Lage
 
tdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdftdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdfDouglas Siviotti
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
Técnicas de Prototipação para Smartphones no Apoio à Avaliação de Interfaces ...
Técnicas de Prototipação para Smartphones no Apoio à Avaliação de Interfaces ...Técnicas de Prototipação para Smartphones no Apoio à Avaliação de Interfaces ...
Técnicas de Prototipação para Smartphones no Apoio à Avaliação de Interfaces ...Talita Pagani
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven DevelopmentElias Nogueira
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de softwareAlex Camargo
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 

Mais procurados (20)

Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Modernizing Web Apps with .NET 6.pptx
Modernizing Web Apps with .NET 6.pptxModernizing Web Apps with .NET 6.pptx
Modernizing Web Apps with .NET 6.pptx
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controle
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 
O que é framework
O que é frameworkO que é framework
O que é framework
 
Flutter do zero a publicacao
Flutter do zero a publicacaoFlutter do zero a publicacao
Flutter do zero a publicacao
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
 
Aula 01 - JavaScript: Introdução
Aula 01 - JavaScript: IntroduçãoAula 01 - JavaScript: Introdução
Aula 01 - JavaScript: Introdução
 
tdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdftdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdf
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Apresentação rest api
Apresentação rest apiApresentação rest api
Apresentação rest api
 
Técnicas de Prototipação para Smartphones no Apoio à Avaliação de Interfaces ...
Técnicas de Prototipação para Smartphones no Apoio à Avaliação de Interfaces ...Técnicas de Prototipação para Smartphones no Apoio à Avaliação de Interfaces ...
Técnicas de Prototipação para Smartphones no Apoio à Avaliação de Interfaces ...
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de software
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 

Semelhante a Node.JS - Workshop do básico ao avançado

Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigitalJust Digital
 
Conhecendo o Nodejs
Conhecendo o NodejsConhecendo o Nodejs
Conhecendo o NodejsCaio Cutrim
 
NodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and MultithreadingNodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and MultithreadingRhuan Karlus Silva
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometemFernando Henriques
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011Evaldo Junior
 
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros PassosJackson F. de A. Mafra
 
Zend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutençãoZend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutençãoFlávio Lisboa
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimentamichel adriano medeiros
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)Carlos Santos
 
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Adler Medrado
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonIgor Sobreira
 
Visao geralti netshoes03
Visao geralti netshoes03Visao geralti netshoes03
Visao geralti netshoes03Ale Uehara
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
Node js - O poder do JavaScript do lado do servidor
Node js  - O poder do JavaScript do lado do servidorNode js  - O poder do JavaScript do lado do servidor
Node js - O poder do JavaScript do lado do servidorRomulo Fagundes
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Daniel Makiyama
 
GDG ABC Meetup #5 - Tendências 2015
GDG ABC Meetup #5 - Tendências 2015GDG ABC Meetup #5 - Tendências 2015
GDG ABC Meetup #5 - Tendências 2015Daniel Costa Gimenes
 

Semelhante a Node.JS - Workshop do básico ao avançado (20)

Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigital
 
Conhecendo o Nodejs
Conhecendo o NodejsConhecendo o Nodejs
Conhecendo o Nodejs
 
NodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and MultithreadingNodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and Multithreading
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011
 
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
 
Zend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutençãoZend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutenção
 
Django
DjangoDjango
Django
 
Node js - Javascript Server Side
Node js - Javascript Server SideNode js - Javascript Server Side
Node js - Javascript Server Side
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)
 
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
 
Node.js for Noobs
Node.js for NoobsNode.js for Noobs
Node.js for Noobs
 
Visao geralti netshoes03
Visao geralti netshoes03Visao geralti netshoes03
Visao geralti netshoes03
 
Visao geralti netshoes03
Visao geralti netshoes03Visao geralti netshoes03
Visao geralti netshoes03
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Node js - O poder do JavaScript do lado do servidor
Node js  - O poder do JavaScript do lado do servidorNode js  - O poder do JavaScript do lado do servidor
Node js - O poder do JavaScript do lado do servidor
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
GDG ABC Meetup #5 - Tendências 2015
GDG ABC Meetup #5 - Tendências 2015GDG ABC Meetup #5 - Tendências 2015
GDG ABC Meetup #5 - Tendências 2015
 

Mais de Eduardo Bohrer

Monitorando sistemas distribuidos
Monitorando sistemas distribuidosMonitorando sistemas distribuidos
Monitorando sistemas distribuidosEduardo Bohrer
 
Kubernetes - ThoughtWorks Tech Radar 18
Kubernetes - ThoughtWorks Tech Radar 18Kubernetes - ThoughtWorks Tech Radar 18
Kubernetes - ThoughtWorks Tech Radar 18Eduardo Bohrer
 
Refatoração - XPConfBR 2015
Refatoração - XPConfBR 2015 Refatoração - XPConfBR 2015
Refatoração - XPConfBR 2015 Eduardo Bohrer
 
Builds e Pipelines - A arte de automatizar a entrega de software!
Builds e Pipelines - A arte de automatizar a entrega de software!Builds e Pipelines - A arte de automatizar a entrega de software!
Builds e Pipelines - A arte de automatizar a entrega de software!Eduardo Bohrer
 
Git para quem gosta de git
Git para quem gosta de gitGit para quem gosta de git
Git para quem gosta de gitEduardo Bohrer
 
NoSQL and AWS Dynamodb
NoSQL and AWS DynamodbNoSQL and AWS Dynamodb
NoSQL and AWS DynamodbEduardo Bohrer
 
uMov.me API - Do básico ao avançado
uMov.me API - Do básico ao avançadouMov.me API - Do básico ao avançado
uMov.me API - Do básico ao avançadoEduardo Bohrer
 
XSS (Cross site scripting)
XSS (Cross site scripting)XSS (Cross site scripting)
XSS (Cross site scripting)Eduardo Bohrer
 
Memória e Garbage Collection na JVM
Memória e Garbage Collection na JVMMemória e Garbage Collection na JVM
Memória e Garbage Collection na JVMEduardo Bohrer
 
Chaos Report - Web Security Version
Chaos Report - Web Security VersionChaos Report - Web Security Version
Chaos Report - Web Security VersionEduardo Bohrer
 

Mais de Eduardo Bohrer (10)

Monitorando sistemas distribuidos
Monitorando sistemas distribuidosMonitorando sistemas distribuidos
Monitorando sistemas distribuidos
 
Kubernetes - ThoughtWorks Tech Radar 18
Kubernetes - ThoughtWorks Tech Radar 18Kubernetes - ThoughtWorks Tech Radar 18
Kubernetes - ThoughtWorks Tech Radar 18
 
Refatoração - XPConfBR 2015
Refatoração - XPConfBR 2015 Refatoração - XPConfBR 2015
Refatoração - XPConfBR 2015
 
Builds e Pipelines - A arte de automatizar a entrega de software!
Builds e Pipelines - A arte de automatizar a entrega de software!Builds e Pipelines - A arte de automatizar a entrega de software!
Builds e Pipelines - A arte de automatizar a entrega de software!
 
Git para quem gosta de git
Git para quem gosta de gitGit para quem gosta de git
Git para quem gosta de git
 
NoSQL and AWS Dynamodb
NoSQL and AWS DynamodbNoSQL and AWS Dynamodb
NoSQL and AWS Dynamodb
 
uMov.me API - Do básico ao avançado
uMov.me API - Do básico ao avançadouMov.me API - Do básico ao avançado
uMov.me API - Do básico ao avançado
 
XSS (Cross site scripting)
XSS (Cross site scripting)XSS (Cross site scripting)
XSS (Cross site scripting)
 
Memória e Garbage Collection na JVM
Memória e Garbage Collection na JVMMemória e Garbage Collection na JVM
Memória e Garbage Collection na JVM
 
Chaos Report - Web Security Version
Chaos Report - Web Security VersionChaos Report - Web Security Version
Chaos Report - Web Security Version
 

Node.JS - Workshop do básico ao avançado