SlideShare uma empresa Scribd logo
Latinoware 2012 - Desenvolvendo Interfaces com Holy
Leandro Guimarães
     about.me/leguimas




    1997           2003




           2008
Latinoware 2012 - Desenvolvendo Interfaces com Holy
holy
ho.ly

n santuário, lugar sagrado. • adj santo,
sagrado, consagrado, divino. he took holy
orders ele tornou-se padre. Holy Cross
Day Dia da Exaltação da Cruz. Holy of
Holies Santíssimo, Santuário. holy
orders clero.
Latinoware 2012 - Desenvolvendo Interfaces com Holy
Teve sua “origem” na época da Guerra Fria com pesquisadores militares
  americanos pensando em um meio de distribuir suas informações
         diminuindo a vulnerabilidade das bases americanas.
              ARPANET - Advanced Research Projects Agency
RFC 685 com a descrição do
               protocolo TCP/IP.
Década de 70
               Avanço em redes privadas.




               Grandes   redes   integradas     por
               TCP/IP.
Década de 80
               Abertura comercial em 1988.



               Grandes   redes   integradas     por
               TCP/IP.

Década de 90   Criação da
               (WWW).
                             World   Wide       Web

               Popularização (Brasil – 1995).
Sistemas

• Domínio da arquitetura cliente-servidor (desktop);
• Processamentos cada vez mais complexos e pesados;
• Clients cada vez mais robustos;
• Dependência “geográfica” para acesso à informação;
• Hardware alto custo.


          [ 1995 – 2000 ]
Clientes (“escalabilidade”) mais
     robustos a um alto custo.
  Dependência “geográfica” para
      acesso à informação.



              +
  Comunicação entre máquinas
   geograficamente separadas.
Possibilidade de transitar dados de
          forma confiável.
Acessar a informação de qualquer
              lugar.
Investir em servidores mais robustos
       mas que concentrem o
           processamento.
    Ter clients mais enxutos,
 consequentemente, mais baratos.
Latinoware 2012 - Desenvolvendo Interfaces com Holy
Do desktop para a WEB...
Nos primórdios...




       Servidor                     Clients
Tecnologias “embrionárias”   Simples “consumidores” de
    e bastante simples.            informações.

   Páginas dinâmicas.         Recursos precários para
                                exibição de dados.
Nos primórdios...
Com o passar do tempo...


               Servidor
Com o passar do tempo...

Client
                     Desenvolvimento da
                          tecnologia
                     (JavaScript, jQuery,
                        CSS, HTML5)




Barateamento
Mas...
Consequências...



       Servidor                          Clients
Sobrecarregados em não só           Capacidade ociosa: o
   se responsabilizar pelo          servidor prepara tudo
  processamento de dados          mesmo o client fornecendo
mas também por preparar a         uma capacidade incrível
visualização dos dados pelo       para a visualização, e até
           client.                    processamento, de
                                        informações.
     Dificuldades de
     escalabilidade.                Comprometimento da
                                       usabilidade.
Latinoware 2012 - Desenvolvendo Interfaces com Holy
Desenvolver um novo
CMS para a Globosat.
      (2008)



         Testemunho
Principais dificuldades encontradas:
     Conteúdo altamente dinâmico;
     Conciliar usabilidade     e    formulários
gerados dinamicamente;

Além disso...
     Gostamos de prototipação mas os protótipos
são desperdiçados pois não são reaproveitados;


            Testemunho
E se a gente separasse, efetivamente, o cliente
  (visualização e input de dados) do servidor (obtenção e
  processamento de dados)? Os browsers atualmente tem
    tecnologia suficiente pra obter dados e renderizar a
visualização na tela da melhor forma com a usabilidade e
                  design que se queira...




                        Paulo Murer
Outra coisa: pra que precisa renderizar a página toda vez
que qualquer alteração nela precisa ser feita? Se precisar
 mudar só um label, precisa renderizar a página toda?

E se a gente gosta de protótipos, por que não criar um jeito
     de se fazer protótipo que possa ser reaproveitado?




                         Paulo Murer
Latinoware 2012 - Desenvolvendo Interfaces com Holy
O que é?


  Uma solução open-source para o desenvolvimento
    WEB na qual se isola, efetivamente, cliente e
   servidor. O servidor tem como responsabilidade
“somente” a gestão dos dados enquanto o cliente tem
   como responsabilidade interagir com o servidor,
      enviando e obtendo dados, e renderizar as
                 informações na tela.


     http://holy.dextra-sw.com
Como funciona?


    Para as ações na sua aplicação, você faz uma
requisição AJAX para o seu servidor obtendo a resposta
   necessária. De posse da resposta, você chama um
   template que renderizará os dados recebidos na
               página da sua aplicação.
Como assim?
Como assim?
                            Obtenção dos dados




      HTML            HTTP REST

                       $.ajax()
<body>                              Servidor
  <div id=“myDiv”>
  </div>
                        JSON
</body>
Como assim?
                                 Obtenção do template




      HTML                     HTTP

                              $.holy()
<body>                                           Servidor
  <div id=“myDiv”>
  </div>
                           TEMPLATE XML
</body>




                      <template selector=“#myDiv">
                        <span>${dado}</span>
                      </template>
Como assim?
                         Renderização dos dados
                                        (trimpath)



      HTML
<body>
  <div id=“myDiv”>
                                    Servidor
    <span>Hello</span>
  </div>
</body>
Como assim?




muuk.html           muuk.xml            dashboard.js




            aguardandoTimeTecnico.xml
Benefícios

• Real separação entre cliente e servidor;
• Desenvolvimento de protótipos funcionais e 100%
reaproveitáveis;
• Tecnologias padrão de mercado (W3C) e amplamente
conhecidas;
• Acervo de componentes: tudo o que a WEB oferece;
• WEB API “de graça”;
• Facilidade de desenvolvimento de novas camadas de
interface;
Benefícios


• Facilidade para a implementação de testes
automatizados – controle total sobre os componentes;
• Independência da plataforma utilizada no servidor;
• Economia de processamento no servidor de aplicação;
• Facilidade para escalar seu sistemas (sessionless);
• Foco na usabilidade e, se eu quiser, no design da
aplicação.
Tendências



Leaving JSPs in the dust: moving LinkedIn to
        dust.js client-side templates.
                 http://bit.ly/R8UMgg




   Improving performance on twitter.com
                 http://bit.ly/R8UPc2
@leguimas          leguimas




leandro.guimaraes@dextra.com.br
Latinoware 2012 - Desenvolvendo Interfaces com Holy
Casos de Sucesso
         SOFTWARE LIVRE

    AGILE COM PONTO DE FUNÇÃO




 ATA DE REGISTRO DE PREÇO

www.dextra.com.br/arp

Mais conteúdo relacionado

PPTX
Introdução a programação para a Internet
PDF
Introducao desenvolvimento-web
PDF
Introdução ao desenvolvimento Web
PPTX
Introdução sobre desenvolvimento web
ODP
0 Introdução ao Desenvolvimento Web - Apresentação
PDF
Introdução à Arquitetura Web
PDF
Fundamentos de arquitetura Web
PPTX
Windows Azure na Prática
Introdução a programação para a Internet
Introducao desenvolvimento-web
Introdução ao desenvolvimento Web
Introdução sobre desenvolvimento web
0 Introdução ao Desenvolvimento Web - Apresentação
Introdução à Arquitetura Web
Fundamentos de arquitetura Web
Windows Azure na Prática

Mais procurados (7)

PPT
Jsp+Jdbc+Servlets
PPTX
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
PPT
Arquitetura de sistemas web
PPTX
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
PDF
Arquitetura Cliente-Servidor
PPTX
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
PPTX
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Jsp+Jdbc+Servlets
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de sistemas web
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Arquitetura Cliente-Servidor
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Anúncio

Semelhante a Latinoware 2012 - Desenvolvendo Interfaces com Holy (20)

PPT
Introdução à Programação “para Web” de Carlos Bazilio
PPTX
Introdução ao desenvolvimento da web.pptx
PPTX
Projeto Web - Aula 1 - Fundamentos do Dev WEB.pptx
PDF
Técnicas de Programação para a Web
PDF
Qualidade e performance de sistemas 2.0
PPT
Web 2.0: conceito, tendências e desafios
PDF
Desenvolvimento de Sistemas Web - Conceitos Básicos
PDF
Arquitetura Web Desacoplada - FCI/Mackenzie
PPT
ODP
Html5,css3,javascript o lugar onde sonhos se tornam realidade.
ODP
Html5,css3,javascript: O lugar onde sonhos se tornam realidade.
PPT
Introdução à Programação “para Web” - Carlos Bazilio
PDF
Front-End do Século XXI.I
PDF
O que move a web atualmente?
PPTX
IntroduçãO Ao Desenvolvimento Web 2
PPTX
Introdução ao desenvolvimento web - 2 - iDez 2010
PPTX
Arquitetura de Aplicações Web Cliente e Servidor
ODP
Apresentação Minas - Desenvolvendo Sites
PPT
Principais Tecnologias WEB
PPT
Principais Tecnologias Web
Introdução à Programação “para Web” de Carlos Bazilio
Introdução ao desenvolvimento da web.pptx
Projeto Web - Aula 1 - Fundamentos do Dev WEB.pptx
Técnicas de Programação para a Web
Qualidade e performance de sistemas 2.0
Web 2.0: conceito, tendências e desafios
Desenvolvimento de Sistemas Web - Conceitos Básicos
Arquitetura Web Desacoplada - FCI/Mackenzie
Html5,css3,javascript o lugar onde sonhos se tornam realidade.
Html5,css3,javascript: O lugar onde sonhos se tornam realidade.
Introdução à Programação “para Web” - Carlos Bazilio
Front-End do Século XXI.I
O que move a web atualmente?
IntroduçãO Ao Desenvolvimento Web 2
Introdução ao desenvolvimento web - 2 - iDez 2010
Arquitetura de Aplicações Web Cliente e Servidor
Apresentação Minas - Desenvolvendo Sites
Principais Tecnologias WEB
Principais Tecnologias Web
Anúncio

Mais de Dextra (20)

PDF
Digital Acceleration por Bill Coutinho
PDF
Dextra | Como acelerar o Digital na sua empresa usando Tecnologias em Nuvem
PDF
Digital Acceleration
PDF
Innovator's dilemma
PDF
Design Thinking | Course Material
PDF
Dextra mud-sustaining architecture withrefactoring
PDF
Classificação de documentos
PDF
Recomendação de conteúdo com apache mahout
PDF
Ux na vida real deedz
PDF
IT For Digital Business | Transformação digital na Natura.
PDF
IT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos Kroton
PDF
IT4DBiz - Inovação e Renovação: a nova agenda da TI moderna
PDF
Desenvolvendo aplicações de negócio na velocidade do Google
PPTX
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
ODP
PGAnalytics - Facilitando sua vida do DBA
PDF
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
PDF
IT for Digital Business 2014 - TI baseada em Valores
PDF
It for Digital Business 2014 - Negócios Digitais e a Nova TI
PDF
MobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill Coutinho
PDF
MobCamp 2014 :: Android em Tablets - Neto Marin
Digital Acceleration por Bill Coutinho
Dextra | Como acelerar o Digital na sua empresa usando Tecnologias em Nuvem
Digital Acceleration
Innovator's dilemma
Design Thinking | Course Material
Dextra mud-sustaining architecture withrefactoring
Classificação de documentos
Recomendação de conteúdo com apache mahout
Ux na vida real deedz
IT For Digital Business | Transformação digital na Natura.
IT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos Kroton
IT4DBiz - Inovação e Renovação: a nova agenda da TI moderna
Desenvolvendo aplicações de negócio na velocidade do Google
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
PGAnalytics - Facilitando sua vida do DBA
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - TI baseada em Valores
It for Digital Business 2014 - Negócios Digitais e a Nova TI
MobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill Coutinho
MobCamp 2014 :: Android em Tablets - Neto Marin

Latinoware 2012 - Desenvolvendo Interfaces com Holy

  • 2. Leandro Guimarães about.me/leguimas 1997 2003 2008
  • 4. holy ho.ly n santuário, lugar sagrado. • adj santo, sagrado, consagrado, divino. he took holy orders ele tornou-se padre. Holy Cross Day Dia da Exaltação da Cruz. Holy of Holies Santíssimo, Santuário. holy orders clero.
  • 6. Teve sua “origem” na época da Guerra Fria com pesquisadores militares americanos pensando em um meio de distribuir suas informações diminuindo a vulnerabilidade das bases americanas. ARPANET - Advanced Research Projects Agency
  • 7. RFC 685 com a descrição do protocolo TCP/IP. Década de 70 Avanço em redes privadas. Grandes redes integradas por TCP/IP. Década de 80 Abertura comercial em 1988. Grandes redes integradas por TCP/IP. Década de 90 Criação da (WWW). World Wide Web Popularização (Brasil – 1995).
  • 8. Sistemas • Domínio da arquitetura cliente-servidor (desktop); • Processamentos cada vez mais complexos e pesados; • Clients cada vez mais robustos; • Dependência “geográfica” para acesso à informação; • Hardware alto custo. [ 1995 – 2000 ]
  • 9. Clientes (“escalabilidade”) mais robustos a um alto custo. Dependência “geográfica” para acesso à informação. + Comunicação entre máquinas geograficamente separadas. Possibilidade de transitar dados de forma confiável.
  • 10. Acessar a informação de qualquer lugar. Investir em servidores mais robustos mas que concentrem o processamento. Ter clients mais enxutos, consequentemente, mais baratos.
  • 12. Do desktop para a WEB...
  • 13. Nos primórdios... Servidor Clients Tecnologias “embrionárias” Simples “consumidores” de e bastante simples. informações. Páginas dinâmicas. Recursos precários para exibição de dados.
  • 15. Com o passar do tempo... Servidor
  • 16. Com o passar do tempo... Client Desenvolvimento da tecnologia (JavaScript, jQuery, CSS, HTML5) Barateamento
  • 18. Consequências... Servidor Clients Sobrecarregados em não só Capacidade ociosa: o se responsabilizar pelo servidor prepara tudo processamento de dados mesmo o client fornecendo mas também por preparar a uma capacidade incrível visualização dos dados pelo para a visualização, e até client. processamento, de informações. Dificuldades de escalabilidade. Comprometimento da usabilidade.
  • 20. Desenvolver um novo CMS para a Globosat. (2008) Testemunho
  • 21. Principais dificuldades encontradas: Conteúdo altamente dinâmico; Conciliar usabilidade e formulários gerados dinamicamente; Além disso... Gostamos de prototipação mas os protótipos são desperdiçados pois não são reaproveitados; Testemunho
  • 22. E se a gente separasse, efetivamente, o cliente (visualização e input de dados) do servidor (obtenção e processamento de dados)? Os browsers atualmente tem tecnologia suficiente pra obter dados e renderizar a visualização na tela da melhor forma com a usabilidade e design que se queira... Paulo Murer
  • 23. Outra coisa: pra que precisa renderizar a página toda vez que qualquer alteração nela precisa ser feita? Se precisar mudar só um label, precisa renderizar a página toda? E se a gente gosta de protótipos, por que não criar um jeito de se fazer protótipo que possa ser reaproveitado? Paulo Murer
  • 25. O que é? Uma solução open-source para o desenvolvimento WEB na qual se isola, efetivamente, cliente e servidor. O servidor tem como responsabilidade “somente” a gestão dos dados enquanto o cliente tem como responsabilidade interagir com o servidor, enviando e obtendo dados, e renderizar as informações na tela. http://holy.dextra-sw.com
  • 26. Como funciona? Para as ações na sua aplicação, você faz uma requisição AJAX para o seu servidor obtendo a resposta necessária. De posse da resposta, você chama um template que renderizará os dados recebidos na página da sua aplicação.
  • 28. Como assim? Obtenção dos dados HTML HTTP REST $.ajax() <body> Servidor <div id=“myDiv”> </div> JSON </body>
  • 29. Como assim? Obtenção do template HTML HTTP $.holy() <body> Servidor <div id=“myDiv”> </div> TEMPLATE XML </body> <template selector=“#myDiv"> <span>${dado}</span> </template>
  • 30. Como assim? Renderização dos dados (trimpath) HTML <body> <div id=“myDiv”> Servidor <span>Hello</span> </div> </body>
  • 31. Como assim? muuk.html muuk.xml dashboard.js aguardandoTimeTecnico.xml
  • 32. Benefícios • Real separação entre cliente e servidor; • Desenvolvimento de protótipos funcionais e 100% reaproveitáveis; • Tecnologias padrão de mercado (W3C) e amplamente conhecidas; • Acervo de componentes: tudo o que a WEB oferece; • WEB API “de graça”; • Facilidade de desenvolvimento de novas camadas de interface;
  • 33. Benefícios • Facilidade para a implementação de testes automatizados – controle total sobre os componentes; • Independência da plataforma utilizada no servidor; • Economia de processamento no servidor de aplicação; • Facilidade para escalar seu sistemas (sessionless); • Foco na usabilidade e, se eu quiser, no design da aplicação.
  • 34. Tendências Leaving JSPs in the dust: moving LinkedIn to dust.js client-side templates. http://bit.ly/R8UMgg Improving performance on twitter.com http://bit.ly/R8UPc2
  • 35. @leguimas leguimas leandro.guimaraes@dextra.com.br
  • 37. Casos de Sucesso SOFTWARE LIVRE AGILE COM PONTO DE FUNÇÃO ATA DE REGISTRO DE PREÇO www.dextra.com.br/arp