SlideShare uma empresa Scribd logo
O caminho da produtividade para
   desenvolvedores web




Bruno Pereira          7 anos do CEJUG
Agenda

»   Motivação
»   Desenvolvimento web Java antigamente
»   Cenário atual
»   Opções Modernas
»   Web standards e client-side
»   Caixa de ferramentas no Firefox
»   Conclusão
Motivação

»   Todos queremos fazer mais e melhor
»   Produtividade traz resultados
»   Resultados trazem reconhecimento
»   O perfil certo pode te manter no topo por muito tempo
Muito tempo atrás...




          Nós adoramos Struts!
A era do Struts 1.x




»   Muito mais produtivo que a Servlet API pura
»   Rápida curva de aprendizado
»   Virou padrão de mercado rapidamente
»   Ainda é o framework com mais deployments em produção
A era do Struts 1.x




»   Muito verbose
»   Necessidade de criar muitas classes
»   Configuration over convention
»   Começou a perder mercado em 2006


            Amadureceu muito o mercado, trazendo várias
            lacunas para os sucessores preencherem
What's Next???
Dezenas de opções, nenhuma dominante
Sucessores do Struts



»   Frameworks MVC Model 2
»   Frameworks orientados a componentes
»   Foco em desenvolvimento com POJOs
»   Muitas opções semelhantes
Cenário Atual – Frameworks Java




» Alta dose de opiniões pessoais «
Apache Tapestry



»   Bastante inovador, introduzindo “de fato” o modelo
    orientado a componentes
»   Péssima política de compatibilidade entre releases
»   Extremamente dependente do fundador do projeto
»   Comunidade não é muito forte, e só enfraquece
Java Server Faces



»   Ganhou muita adesão por ser padrão Java EE
»   “Resposta” da Sun ao desenvolvimento web .NET
»   Facilita que desenvolvedores criem páginas bonitas sem
    ter talento de design
»   Facilita a criação de interfaces RIA sem experiência em
    javascript
Java Server Faces



»   Longa curva de aprendizado
»   Dificulta trabalho com designers. Client-side muito sujo.
»   Bibliotecas de componentes conflitantes
»   Totalmente UN-RESTful. Urls non-bookmarkable.
»   Na linha de JSF, recomendado avaliar o JBoss Seam



1° mau hábito de desenvolvedores JSF: usar JSF!
Apache Wicket



»   All-Java development: uns adoram, outros odeiam
»   Client-side muito mais limpo que JSF
»   Comunidade muito ativa
»   Chegou tarde demais? Java já estava dando sinais da
    idade
Spring MVC



»   Ótima abordagem RESTful
»   Muito cômodo quando se usa outros componentes do
    framework
»   Framework Spring é um pouco complexo no começo
»   Excelente documentação e comunidade
»   Minha opção preferida em Java
Google Web Toolkit


»   Extremamente inovador, trazendo nova forma de
    trabalhar com javascript
»   Gera javascript cross-browser otimizado
»   Intensamente desenvolvido e testado para produtos
    Google
»   Markup gerado dinamicamente. Bom para RIA, mas não
    para sites tradicionais, com forte trabalho de design.
Opções Modernas




Um choque de produtividade!
Opções Modernas – Pontos em Comum

»   Componentes de persistência muito produtivos
»   Convention over configuration
»   Escritos com linguagens dinâmicas: Python, Groovy, Ruby
»   Muito menos código do que desenvolvimento Java
»   Abordagem RESTFul de arquitetura


      Recomendo muito avaliar pelo menos 1 dos 3!
»   Framework for perfectionists with deadlines
»   Criado para atender com qualidade aos prazos curtos de
    um ambiente editorial muito dinâmico
»   Geração de um Admin de conteúdo muito poderoso, que
    poupa muito tempo de desenvolvimento
»   Framework Python
»   Enorme comunidade, muito ativa
»   Feito em Groovy, sobre Spring, Hibernate e Sitemesh.
»   Oferece os enormes benefícios de Spring/Hibernate de
    forma bem menos complexa, mas sem tirar o poder.
»   É a opção de mais fácil integração com Java
»   Gera WAR padrão Java
»   Comunidade bem menor do que Django e Rails
»   Será que tem futuro dentro da VMWare?
»   É a opção com mais sucesso comercial
»   Forte comunidade no Brasil e no mundo
»   Excelentes ferramentas para TDD/BDD
»   Tem feito excelente uso da plataforma Java, reduzindo
    drasticamente as questões de escalabilidade
Web Standards e Client-side
Client-side - Motivação

»   Skills de client-side são muito mais perenes do que skills
    em um determinado framework server-side
»   As exigências de usabilidade e UX são cada vez maiores,
    e são o diferencial de alguns produtos
»   Se o dinossauro do Struts era fera em client-side, ele
    aprenderá Rails/Grails/Django e vai ser ninja :)
»   ... mas se ele aprender JSF vai virar um rinoceronte :)
»   Consórcio que desenvolve as especificações
                 abertas para máxima interoperabilidade de
                 produtos web

    Por que devo me importar com isso?
»   Sites mais legíveis para pessoas e engines de busca
»   Manutenção do site fica mais fácil
»   Compatibilidade cross-browser
»   Acessibilidade
»   É melhor para você e pro seu cliente

    Como começar?
Frameworks Javascript/Ajax




»   Talvez mais opções do que Frameworks web Java
»   É importante ser proficiente em pelo menos 1 deles
»   Programadores poliglotas podem usar sempre o mesmo
    framework Javascript
»   Talvez seja o mais popular atualmente

               Perfeito na separação de:


Conteúdo/Estrutura             HTML

           +
      Design/Visual            CSS

           +
Comportamento/UX               Javascript
Filosofia principal: facilitar interação entre HTML e JS
1) Encontrar (query) elementos HTML
2) Fazer alguma coisa com eles
<html>                               <html>
 <body>                               <body>
  <span>     $(“span”).                <span class=”ceara”>
   CEJUG     addClass(“ceara”);          CEJUG
  </span>                              </span>
  <span>                               <span class=”ceara”>
   7 anos                                7 anos
  </span>                              </span>
 </body                               </body
</html>                              </html>
»   Cross-browser. Suporta até non-browsers (IE6)
»   Queries através de seletores CSS (até CSS 3) ou xpath
»   Bem leve: 19 KB minified + gzipped
»   Extensamente testado
»   Enorme ecossistema de plugins, quase um Eclipse JS :)
»   Enorme e vibrante comunidade
»   Documentação excepcional, incluindo vários livros
»   Integrado em muitos produtos
HTTP
    Você fala dele pro seu browser todo dia. Já são
    íntimos? Precisam ser!

»   Há outros métodos além de GET e POST. Conheça todos.
»   Entenda seu web server: o STATUS significa muito!
»   Saiba interpretar os cabeçalhos do Request/Response
»   Aprenda os conceitos de uma arquitetura REST de
    verdade
»   Saiba dizer porque você colocou charset=UTF-8 ou
    charset=ISO-8859-1. NÃO EXISTE “TEXTO PLANO”!!!
O melhor amigo do desenvolvedor web
Live HTTP Headers




»   Trace completo dos cabeçalhos do Request/Response
»   Permite filtrar conteúdo relevante e salvar análise
»   Oferece “Replay” de Request, podendo ainda editá-lo
Poster




»   Facilidade de montar qualquer tipo de requisição, com
    controle total sobre cabeçalhos e conteúdo
»   Visão detalhada do Request/Response. Perfeito para REST
     ou qualquer aplicação web.
Firebug




»   Inspecionar e modificar conteúdo e estilo
»   Verificar tempo de carregamento de cada arquivo
»   Debug de Javascript
                          2 eras na internet: AF e DF
Web Developer

                                Junto com o Firebug:
                               indispensável



»   Validação de HTML/CSS/JS
»   Inspecionar CSS detalhadamente
»   Destacar elementos de diferentes características
»   Manipular cookies
»   Régua para medir qualquer pedaço da página
»   Identificar imagens quebradas
Google Page Speed

»   Extensão do Firebug
»   Poderoso “profiler” de velocidade das páginas
»   Você vai sentir vergonha no começo :)
»   Relatório completo do que está bom, do que está ruim e
    como melhorar cada coisa
»   Cache, downloads paralelos, gzip, eficiência do CSS,
    posição de imports e muito mais


É o gabarito da sua página, basta apertar um botão :)
Conclusão
»   Produtividade no server-side é sempre importante,
    mantenha-se atualizado com o que há de mais novo
»   Client-side é igualmente importante, e suas habilidades
    serão duradouras
»   Web standards são critérios fundamentais de qualidade
»   HTTP é seu idioma com o servidor: seja fluente
»   Aprenda com o Firefox e vire um Web Jedi!
Dúvidas
Contato


twitter.com/blpsilva
http://brunopereira.org
blpsilva@gmail.com

Mais conteúdo relacionado

PDF
Drupal 7 - Nova Versão para Novos Desafios
Paulino Michelazzo
 
PPTX
Introdução ao desenvolvimento de aplicações web
Rodrigo Branas
 
PPTX
Mantendo os dados do seu app web offline com PouchDB
Sidney Roberto
 
PDF
Dicas para Workflow WordPress + JavaScript - WordCamp Salvador
Fellyph Cintra
 
PPT
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
tdc-globalcode
 
PDF
Bootstrap 4
Tais Reis
 
PDF
React - Biblioteca Javascript para criação de UI
Cleiton Francisco
 
PDF
Java Web Fácil com VRaptor
Frederico Maia Arantes
 
Drupal 7 - Nova Versão para Novos Desafios
Paulino Michelazzo
 
Introdução ao desenvolvimento de aplicações web
Rodrigo Branas
 
Mantendo os dados do seu app web offline com PouchDB
Sidney Roberto
 
Dicas para Workflow WordPress + JavaScript - WordCamp Salvador
Fellyph Cintra
 
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
tdc-globalcode
 
Bootstrap 4
Tais Reis
 
React - Biblioteca Javascript para criação de UI
Cleiton Francisco
 
Java Web Fácil com VRaptor
Frederico Maia Arantes
 

Mais procurados (20)

PDF
Performance - Acelere seu site! Na web tempo é mais que dinheiro.
Gustavo Corrêa Alves
 
PDF
Node.js e Express
Dan Vitoriano
 
ODP
Javascript para adultos
Guilherme Blanco
 
PPTX
Desenvolvendo para WordPress com Docker, Git e WP-CLI
Rudá Almeida
 
PPTX
Powershell “à minha maneira”
pt_programar
 
PDF
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
Yelken Heckman Ferreira Gonzales
 
PDF
Cache em aplicações web
Jean Carlo Emer
 
PPT
XPT Framework
Alexsandro Pereira
 
PPTX
Introdução básica ao JavaScript
Carlos Eduardo Kadu
 
PDF
Aplicações Web - um estudo sobre React
Jean Carlo Emer
 
PDF
Apresentação sobre Drupal
Webdrop
 
PDF
AMP Roadshow SP 2019 - Web Apps Modernas
Dan Vitoriano
 
PDF
Construindo Aplicações com Zero Load Time
João Moura
 
PDF
Aula 4. bibliotecas js
andreluizlc
 
PDF
Instalando Drupal, Começando do Começo
sauloamui
 
ODP
Palestra SFD etec Netbeans e Java 3D
Renato Puccini
 
PPT
Mini-curso RoR - Aula 01
Agence Educacional
 
PPTX
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Alexandre Tarifa
 
PDF
Curso AngularJS - Parte 1
Alvaro Viebrantz
 
PDF
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Celso Fernandes
 
Performance - Acelere seu site! Na web tempo é mais que dinheiro.
Gustavo Corrêa Alves
 
Node.js e Express
Dan Vitoriano
 
Javascript para adultos
Guilherme Blanco
 
Desenvolvendo para WordPress com Docker, Git e WP-CLI
Rudá Almeida
 
Powershell “à minha maneira”
pt_programar
 
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
Yelken Heckman Ferreira Gonzales
 
Cache em aplicações web
Jean Carlo Emer
 
XPT Framework
Alexsandro Pereira
 
Introdução básica ao JavaScript
Carlos Eduardo Kadu
 
Aplicações Web - um estudo sobre React
Jean Carlo Emer
 
Apresentação sobre Drupal
Webdrop
 
AMP Roadshow SP 2019 - Web Apps Modernas
Dan Vitoriano
 
Construindo Aplicações com Zero Load Time
João Moura
 
Aula 4. bibliotecas js
andreluizlc
 
Instalando Drupal, Começando do Começo
sauloamui
 
Palestra SFD etec Netbeans e Java 3D
Renato Puccini
 
Mini-curso RoR - Aula 01
Agence Educacional
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Alexandre Tarifa
 
Curso AngularJS - Parte 1
Alvaro Viebrantz
 
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Celso Fernandes
 
Anúncio

Semelhante a Desenvolvimento web produtivo (20)

PPTX
Introdução sobre desenvolvimento web
Rodrigo Rodrigues
 
PPTX
Desenvolvimento web - conceitos, tecnologia e tendências.
Valmir Justo
 
PPTX
ExtJS - Jumpstart para o Grupo DevRioClaro
Daniel Da Cunha Bueno
 
PPT
Introdução à Programação “para Web” de Carlos Bazilio
RicardoKratz2
 
ODP
Apresentação Minas - Desenvolvendo Sites
thiagolima
 
PDF
Curso HTML 5 - Aula Inicial
Tiago Antônio da Silva
 
PDF
Palestra ror edted
brunoaalves
 
PPT
Introdução à Programação “para Web” - Carlos Bazilio
RicardoKratz2
 
PPT
Talk at QConSP
Victor Pantoja
 
PPSX
Web Tools Pt Br
Paulo Mattos
 
PPTX
Introdução ao desenvolvimento da web.pptx
MarceloRosenbrock1
 
PDF
(A18) LabMM3 - Ajax
Carlos Santos
 
PPT
Javascript levado a serio
Jaydson Gomes
 
PDF
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Thiago Sinésio
 
ODP
Novas Funcionalidades Liferay 6
Thiago Leão Moreira
 
PPTX
CEJS 0.0.2
hvitorino
 
PDF
PHP Papa-Léguas: Performance em PHP
Flávio Lisboa
 
PPTX
Curso PHP UNIFACS 2014.1 – Frameworks
Jonata Weber
 
PDF
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Cesar Romero
 
PDF
T18_LM3: Ajax
Carlos Santos
 
Introdução sobre desenvolvimento web
Rodrigo Rodrigues
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Valmir Justo
 
ExtJS - Jumpstart para o Grupo DevRioClaro
Daniel Da Cunha Bueno
 
Introdução à Programação “para Web” de Carlos Bazilio
RicardoKratz2
 
Apresentação Minas - Desenvolvendo Sites
thiagolima
 
Curso HTML 5 - Aula Inicial
Tiago Antônio da Silva
 
Palestra ror edted
brunoaalves
 
Introdução à Programação “para Web” - Carlos Bazilio
RicardoKratz2
 
Talk at QConSP
Victor Pantoja
 
Web Tools Pt Br
Paulo Mattos
 
Introdução ao desenvolvimento da web.pptx
MarceloRosenbrock1
 
(A18) LabMM3 - Ajax
Carlos Santos
 
Javascript levado a serio
Jaydson Gomes
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Thiago Sinésio
 
Novas Funcionalidades Liferay 6
Thiago Leão Moreira
 
CEJS 0.0.2
hvitorino
 
PHP Papa-Léguas: Performance em PHP
Flávio Lisboa
 
Curso PHP UNIFACS 2014.1 – Frameworks
Jonata Weber
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Cesar Romero
 
T18_LM3: Ajax
Carlos Santos
 
Anúncio

Mais de Bruno Luiz Pereira da Silva (10)

PDF
4 passos para a Transformação Digital
Bruno Luiz Pereira da Silva
 
PDF
Preparando sua arquitetura para microservicos
Bruno Luiz Pereira da Silva
 
PDF
QCon 2015 - DevOps, Chef, Puppet e Ansible e como vender milhões na Black Fri...
Bruno Luiz Pereira da Silva
 
PDF
Arquiteturas escaláveis e tolerantes a falhas
Bruno Luiz Pereira da Silva
 
PDF
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
Bruno Luiz Pereira da Silva
 
PDF
Lean e Data Science para levar o turismo brasileiro a outro patamar
Bruno Luiz Pereira da Silva
 
PDF
Segurança e automação na Amazon: Lições das trincheiras
Bruno Luiz Pereira da Silva
 
PDF
Construção de APIs profissionais em Java
Bruno Luiz Pereira da Silva
 
ODP
Da água pro vinho, o caminho do desenvolvimento web Java
Bruno Luiz Pereira da Silva
 
PPT
Web Services Rest
Bruno Luiz Pereira da Silva
 
4 passos para a Transformação Digital
Bruno Luiz Pereira da Silva
 
Preparando sua arquitetura para microservicos
Bruno Luiz Pereira da Silva
 
QCon 2015 - DevOps, Chef, Puppet e Ansible e como vender milhões na Black Fri...
Bruno Luiz Pereira da Silva
 
Arquiteturas escaláveis e tolerantes a falhas
Bruno Luiz Pereira da Silva
 
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
Bruno Luiz Pereira da Silva
 
Lean e Data Science para levar o turismo brasileiro a outro patamar
Bruno Luiz Pereira da Silva
 
Segurança e automação na Amazon: Lições das trincheiras
Bruno Luiz Pereira da Silva
 
Construção de APIs profissionais em Java
Bruno Luiz Pereira da Silva
 
Da água pro vinho, o caminho do desenvolvimento web Java
Bruno Luiz Pereira da Silva
 
Web Services Rest
Bruno Luiz Pereira da Silva
 

Último (16)

PPTX
Curso de Java 2 - (PrimeiroPrograma, Variáveis, Tipos e Operadores.pptx
Anderson Maciel
 
PPTX
Gestão de Mudanças - Os maiores desafios da Gestão de Mudanças e Gestão de Pr...
Gateware Group
 
PPTX
Curso de Java 7 - (ArrayList, Collections,(Set, List, Queue, Map)).pptx
Anderson Maciel
 
PPTX
Gestão de Mudanças - Fases do processo de mudança organizacional
Gateware Group
 
PPTX
Curso de Java 3 - (Estruturas de Controle, Decisão, Loop, Procedimento).pptx
Anderson Maciel
 
PPTX
Curso de Java 1 - (Introdução Geral).pptx
Anderson Maciel
 
PPTX
Curso de Java 4 - (Orientação a Objetos).pptx
Anderson Maciel
 
PPTX
21 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
PPTX
Computacao-e-Tecnologias-Digitais-Por-Que-Aprender.pptx
RobertaOliveiradaFon1
 
PPTX
22 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
PPTX
Curso de Java 6 - (Números, Data e Hora).pptx
Anderson Maciel
 
PDF
Explorando o Futuro do Corpo: Implantes Neurais e o Biohacking dos Sentidos
cooperliora
 
PPTX
Desenvolvimento-de-Produtos-Inovadores.pptx
ssuser1d7565
 
PDF
Certificado em Redes Neurais Artificiais em Python
CaioSilva506151
 
PPTX
Curso de Java 5 - (Strings) Tipo de Dados.pptx
Anderson Maciel
 
PPTX
aplicativopenseira.pptx Aplicativo que organiza Pensamentos - Peça Publicitária
StelaNorie1
 
Curso de Java 2 - (PrimeiroPrograma, Variáveis, Tipos e Operadores.pptx
Anderson Maciel
 
Gestão de Mudanças - Os maiores desafios da Gestão de Mudanças e Gestão de Pr...
Gateware Group
 
Curso de Java 7 - (ArrayList, Collections,(Set, List, Queue, Map)).pptx
Anderson Maciel
 
Gestão de Mudanças - Fases do processo de mudança organizacional
Gateware Group
 
Curso de Java 3 - (Estruturas de Controle, Decisão, Loop, Procedimento).pptx
Anderson Maciel
 
Curso de Java 1 - (Introdução Geral).pptx
Anderson Maciel
 
Curso de Java 4 - (Orientação a Objetos).pptx
Anderson Maciel
 
21 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
Computacao-e-Tecnologias-Digitais-Por-Que-Aprender.pptx
RobertaOliveiradaFon1
 
22 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
Curso de Java 6 - (Números, Data e Hora).pptx
Anderson Maciel
 
Explorando o Futuro do Corpo: Implantes Neurais e o Biohacking dos Sentidos
cooperliora
 
Desenvolvimento-de-Produtos-Inovadores.pptx
ssuser1d7565
 
Certificado em Redes Neurais Artificiais em Python
CaioSilva506151
 
Curso de Java 5 - (Strings) Tipo de Dados.pptx
Anderson Maciel
 
aplicativopenseira.pptx Aplicativo que organiza Pensamentos - Peça Publicitária
StelaNorie1
 

Desenvolvimento web produtivo

  • 1. O caminho da produtividade para desenvolvedores web Bruno Pereira 7 anos do CEJUG
  • 2. Agenda » Motivação » Desenvolvimento web Java antigamente » Cenário atual » Opções Modernas » Web standards e client-side » Caixa de ferramentas no Firefox » Conclusão
  • 3. Motivação » Todos queremos fazer mais e melhor » Produtividade traz resultados » Resultados trazem reconhecimento » O perfil certo pode te manter no topo por muito tempo
  • 4. Muito tempo atrás... Nós adoramos Struts!
  • 5. A era do Struts 1.x » Muito mais produtivo que a Servlet API pura » Rápida curva de aprendizado » Virou padrão de mercado rapidamente » Ainda é o framework com mais deployments em produção
  • 6. A era do Struts 1.x » Muito verbose » Necessidade de criar muitas classes » Configuration over convention » Começou a perder mercado em 2006 Amadureceu muito o mercado, trazendo várias lacunas para os sucessores preencherem
  • 8. Dezenas de opções, nenhuma dominante
  • 9. Sucessores do Struts » Frameworks MVC Model 2 » Frameworks orientados a componentes » Foco em desenvolvimento com POJOs » Muitas opções semelhantes
  • 10. Cenário Atual – Frameworks Java » Alta dose de opiniões pessoais «
  • 11. Apache Tapestry » Bastante inovador, introduzindo “de fato” o modelo orientado a componentes » Péssima política de compatibilidade entre releases » Extremamente dependente do fundador do projeto » Comunidade não é muito forte, e só enfraquece
  • 12. Java Server Faces » Ganhou muita adesão por ser padrão Java EE » “Resposta” da Sun ao desenvolvimento web .NET » Facilita que desenvolvedores criem páginas bonitas sem ter talento de design » Facilita a criação de interfaces RIA sem experiência em javascript
  • 13. Java Server Faces » Longa curva de aprendizado » Dificulta trabalho com designers. Client-side muito sujo. » Bibliotecas de componentes conflitantes » Totalmente UN-RESTful. Urls non-bookmarkable. » Na linha de JSF, recomendado avaliar o JBoss Seam 1° mau hábito de desenvolvedores JSF: usar JSF!
  • 14. Apache Wicket » All-Java development: uns adoram, outros odeiam » Client-side muito mais limpo que JSF » Comunidade muito ativa » Chegou tarde demais? Java já estava dando sinais da idade
  • 15. Spring MVC » Ótima abordagem RESTful » Muito cômodo quando se usa outros componentes do framework » Framework Spring é um pouco complexo no começo » Excelente documentação e comunidade » Minha opção preferida em Java
  • 16. Google Web Toolkit » Extremamente inovador, trazendo nova forma de trabalhar com javascript » Gera javascript cross-browser otimizado » Intensamente desenvolvido e testado para produtos Google » Markup gerado dinamicamente. Bom para RIA, mas não para sites tradicionais, com forte trabalho de design.
  • 17. Opções Modernas Um choque de produtividade!
  • 18. Opções Modernas – Pontos em Comum » Componentes de persistência muito produtivos » Convention over configuration » Escritos com linguagens dinâmicas: Python, Groovy, Ruby » Muito menos código do que desenvolvimento Java » Abordagem RESTFul de arquitetura Recomendo muito avaliar pelo menos 1 dos 3!
  • 19. » Framework for perfectionists with deadlines » Criado para atender com qualidade aos prazos curtos de um ambiente editorial muito dinâmico » Geração de um Admin de conteúdo muito poderoso, que poupa muito tempo de desenvolvimento » Framework Python » Enorme comunidade, muito ativa
  • 20. » Feito em Groovy, sobre Spring, Hibernate e Sitemesh. » Oferece os enormes benefícios de Spring/Hibernate de forma bem menos complexa, mas sem tirar o poder. » É a opção de mais fácil integração com Java » Gera WAR padrão Java » Comunidade bem menor do que Django e Rails » Será que tem futuro dentro da VMWare?
  • 21. » É a opção com mais sucesso comercial » Forte comunidade no Brasil e no mundo » Excelentes ferramentas para TDD/BDD » Tem feito excelente uso da plataforma Java, reduzindo drasticamente as questões de escalabilidade
  • 22. Web Standards e Client-side
  • 23. Client-side - Motivação » Skills de client-side são muito mais perenes do que skills em um determinado framework server-side » As exigências de usabilidade e UX são cada vez maiores, e são o diferencial de alguns produtos » Se o dinossauro do Struts era fera em client-side, ele aprenderá Rails/Grails/Django e vai ser ninja :) » ... mas se ele aprender JSF vai virar um rinoceronte :)
  • 24. » Consórcio que desenvolve as especificações abertas para máxima interoperabilidade de produtos web Por que devo me importar com isso? » Sites mais legíveis para pessoas e engines de busca » Manutenção do site fica mais fácil » Compatibilidade cross-browser » Acessibilidade » É melhor para você e pro seu cliente Como começar?
  • 25. Frameworks Javascript/Ajax » Talvez mais opções do que Frameworks web Java » É importante ser proficiente em pelo menos 1 deles » Programadores poliglotas podem usar sempre o mesmo framework Javascript
  • 26. » Talvez seja o mais popular atualmente Perfeito na separação de: Conteúdo/Estrutura HTML + Design/Visual CSS + Comportamento/UX Javascript
  • 27. Filosofia principal: facilitar interação entre HTML e JS 1) Encontrar (query) elementos HTML 2) Fazer alguma coisa com eles <html> <html> <body> <body> <span> $(“span”). <span class=”ceara”> CEJUG addClass(“ceara”); CEJUG </span> </span> <span> <span class=”ceara”> 7 anos 7 anos </span> </span> </body </body </html> </html>
  • 28. » Cross-browser. Suporta até non-browsers (IE6) » Queries através de seletores CSS (até CSS 3) ou xpath » Bem leve: 19 KB minified + gzipped » Extensamente testado » Enorme ecossistema de plugins, quase um Eclipse JS :)
  • 29. » Enorme e vibrante comunidade » Documentação excepcional, incluindo vários livros » Integrado em muitos produtos
  • 30. HTTP Você fala dele pro seu browser todo dia. Já são íntimos? Precisam ser! » Há outros métodos além de GET e POST. Conheça todos. » Entenda seu web server: o STATUS significa muito! » Saiba interpretar os cabeçalhos do Request/Response » Aprenda os conceitos de uma arquitetura REST de verdade » Saiba dizer porque você colocou charset=UTF-8 ou charset=ISO-8859-1. NÃO EXISTE “TEXTO PLANO”!!!
  • 31. O melhor amigo do desenvolvedor web
  • 32. Live HTTP Headers » Trace completo dos cabeçalhos do Request/Response » Permite filtrar conteúdo relevante e salvar análise » Oferece “Replay” de Request, podendo ainda editá-lo
  • 33. Poster » Facilidade de montar qualquer tipo de requisição, com controle total sobre cabeçalhos e conteúdo » Visão detalhada do Request/Response. Perfeito para REST ou qualquer aplicação web.
  • 34. Firebug » Inspecionar e modificar conteúdo e estilo » Verificar tempo de carregamento de cada arquivo » Debug de Javascript 2 eras na internet: AF e DF
  • 35. Web Developer Junto com o Firebug: indispensável » Validação de HTML/CSS/JS » Inspecionar CSS detalhadamente » Destacar elementos de diferentes características » Manipular cookies » Régua para medir qualquer pedaço da página » Identificar imagens quebradas
  • 36. Google Page Speed » Extensão do Firebug » Poderoso “profiler” de velocidade das páginas » Você vai sentir vergonha no começo :) » Relatório completo do que está bom, do que está ruim e como melhorar cada coisa » Cache, downloads paralelos, gzip, eficiência do CSS, posição de imports e muito mais É o gabarito da sua página, basta apertar um botão :)
  • 37. Conclusão » Produtividade no server-side é sempre importante, mantenha-se atualizado com o que há de mais novo » Client-side é igualmente importante, e suas habilidades serão duradouras » Web standards são critérios fundamentais de qualidade » HTTP é seu idioma com o servidor: seja fluente » Aprenda com o Firefox e vire um Web Jedi!