SeamFramework.orgCommunity Documentation

Parte III. Obtendo o máximo da tipificação forte

O segundo grande tema da Web Beans é a tipificação forte. As informações sobre as dependências, interceptores e decoradores de um Web Bean, e as informações sobre os consumidores de eventos para um produtor de evento, estão contidas em construtores Java typesafe, que podem ser validadas pelo compilador.

Você não vê identificadores baseados em strings no código Web Beans, não porque o framework está escondendo-os de você utilizando padrões de regras inteligentes — o chamado "configuração por convenção" -, mas porque simplesmente não existem strings ali!

A óbvia vantagem desta abordagem é que qualquer IDE pode fornecer auto completion, validação e refactoring sem necessidade de ferramentas especiais. Mas há um segundo, menos imediatamente óbvio, benefício. Acontece que quando você começar a pensar na identificação de objetos, eventos ou interceptores através de anotações em vez de nomes, você tem uma oportunidade para aumentar o nível semântico do seu código.

Web Beans incentiva você desenvolver anotações que modelam conceitos, por exemplo,

em vez de utilizar nomes compostos como

As anotações são reutilizáveis. Elas ajudam a descrever qualidades comuns de partes direntes do sistema. Elas nos ajudam a categorizar e entender o nosso código. Elas nos ajudam a lidar com questões comuns de uma maneira comum. Elas tornam o nosso código mais legível e mais compreensível.

Estereótipos Web Beans levam essa idéia um pouco mais longe. Um estereótipo modela um papel comum na sua arquitetura da aplicação. Eles incorporam várias propriedades do papel, incluindo o escopo, bindings de interceptadores, tipos de implantação, etc, em um único pacote reutilizável.

Mesmo os metadados da Web Beans são fortemente tipados! Não há um compilador para XML, então a Web Beans tira proveito de esquemas XML para validar os tipos Java e os atributos que aparecem em XML. Esta abordagem acaba por tornar o XML mais legível, assim como anotações deixam nosso código Java mais legível.

Nós agora estamos prontos para verificar mais algumas funcionalidades avançadas da Web Beans. Tenha em mente que essas funcionalidades existem para tornar nosso código fácil para validar e ao mesmo tempo mais fácil de entender. Na maioria das vezes você nem precisa se preocupar em utilizar essas funcionalidades, mas se são fáceis de usar, você irá apreciar seu poder.