SlideShare uma empresa Scribd logo
O que move a web atualmente?
Fábio Leandro Janiszevski
Fabio Leandro?
● ~3 anos de desenvolvimento WEB na empresa “Ponto Gestor”;
● ~6 anos de experiência com servidores de alta disponibilidade;
● ~15 anos com experiência em Linux;
● Mantenedor do projeto OpenSource “SmartRouter PROJECT”;
● “fabiosammy”. Google it!
● Professor na UTFPR - Campus Guarapuava desde maio/2015;
O que veremos hoje?
● Padrões de projeto;
● Plataformas de desenvolvimento;
● Serviços X Servidores;
● CRUD;
● Frameworks;
● Exemplo prático;
● Monitoramento;
Desenvolvimento WEB
● Aprender conceitos “cliente-servidor”;
● Cuidar com a concorrência;
● Desenvolvimento Ágil! (The Agile Moviment);
● Muitas tecnologias, e muita evolução!
● Tecnologia específica, espere por problemas!
Padrões de Projeto
Plataforma é importante?
“Tudo o que faço no windows, faço no linux!” (vice-versa)
POSIX!
Plataforma é importante?
● Windows NÃO É POSIX! (Apesar de que o INTERIX é 100% compatível);
● Unix-Like SÃO POSIX;
● A maioria dos padrões da RFC, baseiam-se no POSIX (Quando se aplica);
● Escolha a plataforma para o seu caso; (Evite querer desenvolver .NET em
ambientes Linux, ou Ruby em ambientes Windows!)
CRUD
● Criar, Ler, Alterar e destruir;
● Navegadores interpretam(segundo a RFC do HTTP 1.1) GET e POST;
● Criar = POST;
● Ler = GET;
● Alterar = PATCH ou PUT;
● Destruir = DELETE;
● Formulários, formulários, formulários…
Serviços e Servidores
● Para o crud anterior, devemos criar um serviço que siga o padrão Rest para uma
coleção de “alunos”:
○ Criar um novo aluno? POST /alunos
○ Deletar um aluno? DELETE /alunos/1
○ Editar um aluno? PUT /alunos/1
○ Visualizar um aluno? GET /alunos/1
○ Visualizar TODOS os alunos? GET /alunos
○ Visualizar formulários de adicionar ou editar um aluno? GET /alunos/new | GET /alunos/1/edit
Serviços e Servidores
● Agora falamos em como devemos interpretar essas rotas(notem que em nenhum
momento foi apresentada a extensão dos arquivos);
● Um servidor de aplicações web vai ser o responsável por interpretar cada verbo
HTTP, e encaminhar a aplicação ou arquivo responsável;
● Apache e Nginx são os mais difundidos e discutidos para a maioria das aplicações
web, cada um com suas respectivas arquiteturas e aplicações;
Conclusões
● “Alunos” NÃO! Students!
● Além do Rest, podemos citar o SOAP;
● Muitas regras para cada caso;
● Serviço é como o meu cliente vai acessar o sistema, servidor é como eu vou
entregar o sistema;
Frameworks
● Facilitam o progresso de desenvolvimento, gerando produtividade;
● Deixe de pensar em como fazer, mas sim em vamos fazer;
● Pensem em um conjunto de classes que tem por objetivo trazer uma
funcionalidade genérica;
● - “Minha aplicação vai ter conexão ao banco de dados! Como vou conectar ao
banco? E se eu precisar mudar o banco de dados (mysql -> postgres)?”
Então eu devo criar esse
“framework”?
NÃO!
Mas… Como vou confiar em
algo que eu não desenvolvi?
Então porque esta utilizando
uma linguagem “de outros”?!
Dificilmente uma empresa local terá
capital intelectual, tempo e mão-de-obra o
suficiente para competir com uma
comunidade mundial.
People think that because something is
"technically superior" everybody else
should blindly adopt. But this is not how
the market works.
Exemplos de frameworks
● Para CSS: Bootstrap(Twitter), Foundation, Semantic UI…
● Para Java(WEB): Play(Scala), Click, Wicket, JSF(Oracle), Struts…
● Para JavaScript: React(Facebook), AngulaJS(Google), EmberJS…
● Para PHP: Zend, Laravel, Synfony…
● Para Ruby: Rails, Cuba, Sinatra, Hanami, Padrino …
Vamos a uma prática rápida
com o rails.
rails new myapp…
Perguntas que não
querem calar
● Onde esta o banco de dados?
● Como eu não programei?
● Cadê as queries?
● Como ficou as “rotas”?
● E se eu precisar validar?
Ótimo, então vamos todos parar
e utilizar rails!
Calma! Só porque um notebook novo foi lançado, não
vamos descartar os nossos atuais. O mesmo vale para
softwares;
Conclusão
Esqueçam de fazer “a minha maneira”, e sim escolher uma
linguagem, buscar e testar frameworks existentes, e optar pelo uso
de um.
Não esqueçam de monitorar a
aplicação!
WEB é um caos!
Soluções de
Monitoramento
● Newrelic
● Datadog
● PagerDuty
Alguns serviços disponíveis para
utilizar em sua app inicial.
O futuro…
● A evolução do hardware esta seguindo o paralelismo (GPU e CPU multi-core);
● Linguagens funcionais são “mais simples” para programar em paralelo, pois
diferente das linguagens imperativas e orientadas a objetos, não existe variável
mutável(Pensem como funções matemáticas);
● Fortran e COBOL!
● F# (.NET Funcional);
● R (Estatistíca);
● Scala (Java OO + Funcional);
● Elixir (WEB - Linguagem brasileira!);
● … e ainda nem falemos sobre http 2.0, realtime e websocket!
Perguntas?
Muito obrigado!
fabiosammy@gmail.com

Mais conteúdo relacionado

PDF
JavaFX: A nova biblioteca gráfica da plataforma Java
jesuinoPower
 
PPTX
Javafx
Adilmar Dantas
 
PPTX
Como é ser uma Front-end em 2018
Tatiane Aguirres Nogueira
 
PDF
Rest web services com Java
jesuinoPower
 
PDF
JavaFX 2
jesuinoPower
 
PDF
Ria e Java FX
Marcelo Quinta
 
PDF
Clean Architecture
Rodrigo Branas
 
PDF
Introdução ao LiveOak
jesuinoPower
 
JavaFX: A nova biblioteca gráfica da plataforma Java
jesuinoPower
 
Como é ser uma Front-end em 2018
Tatiane Aguirres Nogueira
 
Rest web services com Java
jesuinoPower
 
JavaFX 2
jesuinoPower
 
Ria e Java FX
Marcelo Quinta
 
Clean Architecture
Rodrigo Branas
 
Introdução ao LiveOak
jesuinoPower
 

Mais procurados (20)

PPTX
JavaFX - Uma visão Geral
Eder Nogueira
 
PPTX
Testes Automatizados
Rodrigo Branas
 
KEY
Desenvolvimento PHP com Vagrant - TDC 2012
Rogerio Prado de Jesus
 
PPTX
Frameworks: uma mão na roda para o desenvolvimento
Iago Santos Leão
 
PDF
Introdução ao java fx e visage
jesuinoPower
 
PDF
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
William Oliveira
 
PDF
JavaFX: Desktop para desenvolvedores WEB
jesuinoPower
 
PDF
Desenvolvimento rápido de aplicações com JEE e JavaFX
jesuinoPower
 
PPTX
Criando aplicações java fx em minutos
Bruno Oliveira
 
PPTX
CodeIgniter 4 - Introdução
Rafael Pinheiro
 
PPTX
Seja um júnior não seja um sobrinho
Alexandre Andrade
 
PDF
JavaCE Conference 2012: ExtJS 4 + VRaptor
Loiane Groner
 
PDF
Java não é tão difícil quanto parece
jesuinoPower
 
PDF
Blazor #SnetTalks3
André Agostinho
 
PPTX
Micro frontend
Thiago Martins
 
PDF
JavaScript Moderno
Josino Rodrigues
 
ODP
Django - Muito além do básico
Christiano Anderson
 
PPTX
Aplicações ricas com JavaFX 2
Claudiney Marques
 
PDF
Ir para cloud com arquitetura de microservices resolverá o meu problema?
Better Developer
 
PDF
Conectando jBPM com o mundo - TDC 2014 SP
jesuinoPower
 
JavaFX - Uma visão Geral
Eder Nogueira
 
Testes Automatizados
Rodrigo Branas
 
Desenvolvimento PHP com Vagrant - TDC 2012
Rogerio Prado de Jesus
 
Frameworks: uma mão na roda para o desenvolvimento
Iago Santos Leão
 
Introdução ao java fx e visage
jesuinoPower
 
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
William Oliveira
 
JavaFX: Desktop para desenvolvedores WEB
jesuinoPower
 
Desenvolvimento rápido de aplicações com JEE e JavaFX
jesuinoPower
 
Criando aplicações java fx em minutos
Bruno Oliveira
 
CodeIgniter 4 - Introdução
Rafael Pinheiro
 
Seja um júnior não seja um sobrinho
Alexandre Andrade
 
JavaCE Conference 2012: ExtJS 4 + VRaptor
Loiane Groner
 
Java não é tão difícil quanto parece
jesuinoPower
 
Blazor #SnetTalks3
André Agostinho
 
Micro frontend
Thiago Martins
 
JavaScript Moderno
Josino Rodrigues
 
Django - Muito além do básico
Christiano Anderson
 
Aplicações ricas com JavaFX 2
Claudiney Marques
 
Ir para cloud com arquitetura de microservices resolverá o meu problema?
Better Developer
 
Conectando jBPM com o mundo - TDC 2014 SP
jesuinoPower
 
Anúncio

Destaque (20)

PPTX
Benchmarks bamboe picknicken
laurenztack
 
DOC
Mz ranc tahunan-1-lama
Tengku Hisamuddin Tengku Mohamed
 
PDF
James marshall math blog
40475044
 
PDF
James marshall math blog
40475044
 
PDF
Tx2014 Feature and Highlights
Heath Turner
 
DOCX
Lab2
Red Bull
 
PPTX
What\'s New - RAPID 2011 Plenary Address
ToddGrimm
 
PPTX
Pigen og træet
Ove Christensen
 
DOC
CV_SantoshiSunandaGaddam
Santoshi Sunanda
 
PPTX
Digital patientmappe slutkonference feb 2012
Ove Christensen
 
PPTX
Solar collector system_blog
laurenztack
 
PDF
Coeliac2
Eyal Livne
 
PDF
James marshall math blog
40475044
 
PPTX
Te dxfinal
Katy Hutchison
 
PPTX
Ibm cloud service
jayyoon86
 
PPTX
就労コンテスト発表用資料 20101026
heartbeat1209
 
PDF
Aplicações web realtime
Fabio Janiszevski
 
PPTX
Diapositivas karina freitas
fkarina
 
PPTX
Keynote address - AMUG 2011 - Miami, Florida
ToddGrimm
 
Benchmarks bamboe picknicken
laurenztack
 
Mz ranc tahunan-1-lama
Tengku Hisamuddin Tengku Mohamed
 
James marshall math blog
40475044
 
James marshall math blog
40475044
 
Tx2014 Feature and Highlights
Heath Turner
 
Lab2
Red Bull
 
What\'s New - RAPID 2011 Plenary Address
ToddGrimm
 
Pigen og træet
Ove Christensen
 
CV_SantoshiSunandaGaddam
Santoshi Sunanda
 
Digital patientmappe slutkonference feb 2012
Ove Christensen
 
Solar collector system_blog
laurenztack
 
Coeliac2
Eyal Livne
 
James marshall math blog
40475044
 
Te dxfinal
Katy Hutchison
 
Ibm cloud service
jayyoon86
 
就労コンテスト発表用資料 20101026
heartbeat1209
 
Aplicações web realtime
Fabio Janiszevski
 
Diapositivas karina freitas
fkarina
 
Keynote address - AMUG 2011 - Miami, Florida
ToddGrimm
 
Anúncio

Semelhante a O que move a web atualmente? (20)

PDF
PHP Turbinado com CodeIgniter - Conisli 2011
Evaldo Junior
 
PPTX
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
michel adriano medeiros
 
PDF
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
André Luiz Forchesatto
 
PPTX
Desenvolvimento web - conceitos, tecnologia e tendências.
Valmir Justo
 
ODP
Aula01-JavaScript
Jorge Ávila Miranda
 
PDF
Node.JS - Workshop do básico ao avançado
Eduardo Bohrer
 
ODP
Apresentação Minas - Desenvolvendo Sites
thiagolima
 
PDF
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Thiago Sinésio
 
PDF
Oficina de PHP - Software Freedom Day Luziânia 2013
George Mendonça
 
PDF
Gerenciando Projetos Com Ruby On Rails
Rodrigo Urubatan
 
PDF
Não deixe seu projeto só nas mãos do framework
Giuseppe Lopes
 
PDF
Desmitificando as aplicações RESTFul usando Django Rest Framework
Bruno Oliveira
 
PDF
Spring boot
John Godoi
 
PDF
Escalando apps com React e Type Script e SOLID
Ruben Marcus Luz Paschoarelli
 
PDF
Qualidade em projetos PHP - PHPSC Conf 2011
Luís Cobucci
 
PDF
Visao geralti netshoes03
Ale Uehara
 
PDF
Visao geralti netshoes03
Alexandre Uehara
 
PDF
Carreira de Desenvolvimento
Alvaro Viebrantz
 
PPTX
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Rodrigo Kono
 
ODP
Aula09 - Java Script
Jorge Ávila Miranda
 
PHP Turbinado com CodeIgniter - Conisli 2011
Evaldo Junior
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
michel adriano medeiros
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
André Luiz Forchesatto
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Valmir Justo
 
Aula01-JavaScript
Jorge Ávila Miranda
 
Node.JS - Workshop do básico ao avançado
Eduardo Bohrer
 
Apresentação Minas - Desenvolvendo Sites
thiagolima
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Thiago Sinésio
 
Oficina de PHP - Software Freedom Day Luziânia 2013
George Mendonça
 
Gerenciando Projetos Com Ruby On Rails
Rodrigo Urubatan
 
Não deixe seu projeto só nas mãos do framework
Giuseppe Lopes
 
Desmitificando as aplicações RESTFul usando Django Rest Framework
Bruno Oliveira
 
Spring boot
John Godoi
 
Escalando apps com React e Type Script e SOLID
Ruben Marcus Luz Paschoarelli
 
Qualidade em projetos PHP - PHPSC Conf 2011
Luís Cobucci
 
Visao geralti netshoes03
Ale Uehara
 
Visao geralti netshoes03
Alexandre Uehara
 
Carreira de Desenvolvimento
Alvaro Viebrantz
 
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Rodrigo Kono
 
Aula09 - Java Script
Jorge Ávila Miranda
 

O que move a web atualmente?

  • 1. O que move a web atualmente? Fábio Leandro Janiszevski
  • 2. Fabio Leandro? ● ~3 anos de desenvolvimento WEB na empresa “Ponto Gestor”; ● ~6 anos de experiência com servidores de alta disponibilidade; ● ~15 anos com experiência em Linux; ● Mantenedor do projeto OpenSource “SmartRouter PROJECT”; ● “fabiosammy”. Google it! ● Professor na UTFPR - Campus Guarapuava desde maio/2015;
  • 3. O que veremos hoje? ● Padrões de projeto; ● Plataformas de desenvolvimento; ● Serviços X Servidores; ● CRUD; ● Frameworks; ● Exemplo prático; ● Monitoramento;
  • 4. Desenvolvimento WEB ● Aprender conceitos “cliente-servidor”; ● Cuidar com a concorrência; ● Desenvolvimento Ágil! (The Agile Moviment); ● Muitas tecnologias, e muita evolução! ● Tecnologia específica, espere por problemas!
  • 6. Plataforma é importante? “Tudo o que faço no windows, faço no linux!” (vice-versa)
  • 8. Plataforma é importante? ● Windows NÃO É POSIX! (Apesar de que o INTERIX é 100% compatível); ● Unix-Like SÃO POSIX; ● A maioria dos padrões da RFC, baseiam-se no POSIX (Quando se aplica); ● Escolha a plataforma para o seu caso; (Evite querer desenvolver .NET em ambientes Linux, ou Ruby em ambientes Windows!)
  • 9. CRUD ● Criar, Ler, Alterar e destruir; ● Navegadores interpretam(segundo a RFC do HTTP 1.1) GET e POST; ● Criar = POST; ● Ler = GET; ● Alterar = PATCH ou PUT; ● Destruir = DELETE; ● Formulários, formulários, formulários…
  • 10. Serviços e Servidores ● Para o crud anterior, devemos criar um serviço que siga o padrão Rest para uma coleção de “alunos”: ○ Criar um novo aluno? POST /alunos ○ Deletar um aluno? DELETE /alunos/1 ○ Editar um aluno? PUT /alunos/1 ○ Visualizar um aluno? GET /alunos/1 ○ Visualizar TODOS os alunos? GET /alunos ○ Visualizar formulários de adicionar ou editar um aluno? GET /alunos/new | GET /alunos/1/edit
  • 11. Serviços e Servidores ● Agora falamos em como devemos interpretar essas rotas(notem que em nenhum momento foi apresentada a extensão dos arquivos); ● Um servidor de aplicações web vai ser o responsável por interpretar cada verbo HTTP, e encaminhar a aplicação ou arquivo responsável; ● Apache e Nginx são os mais difundidos e discutidos para a maioria das aplicações web, cada um com suas respectivas arquiteturas e aplicações;
  • 12. Conclusões ● “Alunos” NÃO! Students! ● Além do Rest, podemos citar o SOAP; ● Muitas regras para cada caso; ● Serviço é como o meu cliente vai acessar o sistema, servidor é como eu vou entregar o sistema;
  • 13. Frameworks ● Facilitam o progresso de desenvolvimento, gerando produtividade; ● Deixe de pensar em como fazer, mas sim em vamos fazer; ● Pensem em um conjunto de classes que tem por objetivo trazer uma funcionalidade genérica; ● - “Minha aplicação vai ter conexão ao banco de dados! Como vou conectar ao banco? E se eu precisar mudar o banco de dados (mysql -> postgres)?”
  • 14. Então eu devo criar esse “framework”? NÃO!
  • 15. Mas… Como vou confiar em algo que eu não desenvolvi? Então porque esta utilizando uma linguagem “de outros”?!
  • 16. Dificilmente uma empresa local terá capital intelectual, tempo e mão-de-obra o suficiente para competir com uma comunidade mundial.
  • 17. People think that because something is "technically superior" everybody else should blindly adopt. But this is not how the market works.
  • 18. Exemplos de frameworks ● Para CSS: Bootstrap(Twitter), Foundation, Semantic UI… ● Para Java(WEB): Play(Scala), Click, Wicket, JSF(Oracle), Struts… ● Para JavaScript: React(Facebook), AngulaJS(Google), EmberJS… ● Para PHP: Zend, Laravel, Synfony… ● Para Ruby: Rails, Cuba, Sinatra, Hanami, Padrino …
  • 19. Vamos a uma prática rápida com o rails. rails new myapp…
  • 20. Perguntas que não querem calar ● Onde esta o banco de dados? ● Como eu não programei? ● Cadê as queries? ● Como ficou as “rotas”? ● E se eu precisar validar?
  • 21. Ótimo, então vamos todos parar e utilizar rails! Calma! Só porque um notebook novo foi lançado, não vamos descartar os nossos atuais. O mesmo vale para softwares;
  • 22. Conclusão Esqueçam de fazer “a minha maneira”, e sim escolher uma linguagem, buscar e testar frameworks existentes, e optar pelo uso de um.
  • 23. Não esqueçam de monitorar a aplicação! WEB é um caos!
  • 24. Soluções de Monitoramento ● Newrelic ● Datadog ● PagerDuty Alguns serviços disponíveis para utilizar em sua app inicial.
  • 25. O futuro… ● A evolução do hardware esta seguindo o paralelismo (GPU e CPU multi-core); ● Linguagens funcionais são “mais simples” para programar em paralelo, pois diferente das linguagens imperativas e orientadas a objetos, não existe variável mutável(Pensem como funções matemáticas); ● Fortran e COBOL! ● F# (.NET Funcional); ● R (Estatistíca); ● Scala (Java OO + Funcional); ● Elixir (WEB - Linguagem brasileira!); ● … e ainda nem falemos sobre http 2.0, realtime e websocket!