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 validados 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 vantagem óbvia dessa abordagem é que qualquer IDE pode fornecer auto completion, validação e refactoring sem necessidade de ferramentas especiais. Mas há uma segunda vantagem, menos imediatamente óbvia. Acontece que quando você começar a pensar na identificação de objetos, eventos ou interceptadores por meio 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ê a 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 diferentes 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 de aplicação. Ele incorpora 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. Essa 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 forem fáceis de usar, você apreciará seu poder.