Skip to content
DaniloQueiroz edited this page Aug 4, 2012 · 4 revisions

Desenvolvedores, comecem aqui!

Esta página provê informações sobre a pilha de aplicação do Figgo, seu ambiente de desenvolvimento e o servidor de integração contínua.

Outras páginas para desenvolvedores:

Ambiente de Desenvolvimento

Nossa recomendação de ambiente de desenvolvimento

  • Ubuntu
  • Eclipse Indigo (3.7) + Plugin M2E
  • Maven2 (*)
  • Google AppEngine Java SDK (*)
  • Git (*)

As ferramentas com (*) são obrigatórias.

Instalando ferramentas necessárias

Para instalar estas ferramentas no Ubuntu 11.10, siga os seguintes passos: sudo apt-add-repository ppa:daniloqueiroz/dev && sudo apt-get update && sudo apt-get install maven2 git-core java-gae-sdk eclipse-platform

Será necessário instalar o M2E manualmente, para isso siga as instruções em (http://www.eclipse.org/m2e/download/).

Se você não usa Ubuntu, você terá que instalar manualmente o GAE SDK. Se você usar uma distribuição baseada em Debian/Ubuntu, poderá baixar o arquivo .deb aqui e instalá-lo manualmente, ou poderá baixar o SDK direto do site do AppEngine

Executanto o Figgo localmente

configurar /etc/localhosts

Rodar a aplicação localmente rodando aplicação criando um coletivo


Servidor de Integração Contínua

O Figgo utiliza um servidor de Integração Contínua Jenkins, provido pelo CloudBees.

O endereço do servidor é https://cotopaxi.ci.cloudbees.com/view/Figgo/


Pilha de aplicação

  • HTML5, CSS3, JQuery
  • Velocity
  • Cotopaxi
  • JDO
  • Google AppEngine

Velocity

Template Engine desenvolvido pela Apache e utilizado pelo Cotopaxi.

Referências:

Cotopaxi

O Cotopaxi é um glue framework para desenvolvimento web em Java e que tem como principal foco ambientes de computação em nuvem. O framework é dividido em duas partes, core e extensions.

O core contém os componentes mínimos necessários para o desenvolvimento de uma aplicação web utilizando o modelo MVC - isso é, mecanismo de roteamento e controllers, conversão de tipos e validação, interceptores, injeção de dependência e renderizadores de view.

O Extensions possuem extensões que podem via ser utilizadas por aplicações diversas e que focam em características intrínsecas ao ambiente de computação em nuvem - camada de dados, gerencia de namespace para aplicações multi-inquilino, barramento de mensagens para processamento assíncrono, entre outros. As funcionalidades providas pelo Extensions no então são divididas em uma camada de funcionalidades, providas por interfaces genéricas e uma camada dependente de plataforma.

Referências:

JDO (Java Data Object)

Padrão para persistência de dados em Java com suporte a diversos Bancos (incluindo bancos NoSQL). No caso do Figgo, por este utilizar o GAE, nem todos os recursos do JDO estão disponíveis, consulte a documentação do Google App Engine para mais infos.

Referências:

Google AppEngine

O GAE é o ambiente de computação em nuvem da Google. Trata-se de um PaaS que provê abstrações para diversos recursos usados neste tipo de ambiente, como MemCache, Message/Task Queue entre outros. Outro ponto relevante sobre o GAE é que ele utiliza um banco de dados NoSQL, não permitindo, por exemplo, realizar operações de JOIN.

Além disso, como é característico dos ambientes de computação em nuvem, o GAE possui um modelo elástico, adaptando o tamanho de sua nuvem para a sua demanda e um modelo de tarifação pay-as-you-go, cobrando apenas pelos recursos efetivamente utilizados.

Referências: