Escrevendo aplicações HTML5 com Google App Engine, Google Closure Library e Clojure
O Stefan Richter, CTO da Freiheit.com, explicou esta semana no Google Developer Day realizado em Munique, a sua visão sobre escrever aplicações ricas para internet utilizando HTML5 e o Google App Engine. Em particular, ele acha que será um pouco mais difícil construir um componente do lado cliente utilizando HTML5 do que comparado a componentes do lado servidor.
Nos dias pre-Web, o modelo de aplicações do lado cliente era baseado em widgets, eventos e manipuladores de eventos que geralmente resultavam em cadeias de eventos complexos e difíceis de manter. Em aplicações com 2 camadas, as pessoas acessavam bases de dados diretamente através de seus manipuladores de eventos. Com a renderização de páginas do lado do servidor, a página geralmente é criada de uma só vez, uma requisição e uma resposta por vez.
Stefan explica que com o HTML5, "você deverá gerar" mais e mais código HTML no lado do cliente. Uma maneira que eles tem feito e experimentado é uso o Google Closure Templates.
Closure Templates é um sistema de templates tanto do lado servidor como do cliente que permite construir dinamicamente HTML e elementos de UI... Closure Templates foi implementado tanto para JavaScript quanto para Java, tornando possível você utilizar os mesmos templates tanto no servidor quanto no cliente.
Ele também recomenda centralizar a manipulação de eventos e somente encapsular estado em widgets customizados quando for necessário.
Do ponto de vista do lado servidor, ele questiona "Nós realmente precisamos de classes e objetos para transportar dados?" Eles geram o acesso ao armazenamento de dados no servidor utilizando Clojure Macros. As mesmas estruturas são utilizadas no lado servidor e no lado cliente:
Nós estamos utilizando pares Chave / Valor como estrutura primária... Eu acredito que este é o futuro do desenvolvimento de sistemas. Sem diferenças de impedância, sem mais OR mappers, sem mais passos de transformação.
O Clojure trabalha internamente com pares Chave / Valor. Nós podemos recuperá-los do Google Datastore, e enviá-los ao cliente como JSON.
O Stefan sugere você tentar ir o mais longe possível, somente com pares Chave/ Valor, e escrever código funcional utilizando JavaScript sem efeitos colaterais para manipular esses dados.
Durante a sua palestra ele anunciou uma série de princípios para a próxima geração de RIAs:
- Você deve estar apto a entender o código apenas lendo
- Não tente escrever aplicações no estilo de programas como Windows Desktop no browser
- Esteja preparado para renderizar a maioria do seu código HTML no lado cliente
- Não escreva código JavaScript do jeito que você escreve código Java. Esqueça tudo o que você aprendeu escrevendo código Java.
- Planeje para operações offline
- Você precisará ter uma idéia em como lidar com modificações concorrentes
- Você precisa enviar notificações
- Envie o log de exceções do lado cliente para o servidor
A aplicação Deadline foi desenvolvida seguindo estes princípios.
Estará o HTML5 (e o Cloud) mudando a arquitetura e o modelo de programação das aplicações ricas para internet? Estarão os desenvolvedores e arquitetos preparados para esta mudança? O que você acha?
Conteúdo educacional
Lean na Globo.com
Bernardo Heynemann 24 Mai, 2013
Mobilidade: Frameworks, SOs e o Mercado
Ricardo Ogliari 23 Mai, 2013
Caminhos de uma estratégia mobile
Sérgio Lopes 23 Mai, 2013
Complexidade organizacional no Século 21
Alexandre Magno 16 Mai, 2013

Olá visitante
Você precisa cadastrar-se no InfoQ Brasil ou Login para enviar comentários. Há muitas vantagens em se cadastrar.Obtenha o máximo da experiência do InfoQ Brasil.
Dê sua opinião