Estou começando a entrar no mundo da Orientação a Aspectos com AspectJ.
Porém gostaria de ver a opinião de vocês se vale investir nele, e contrur um sistema inteiro com AspectJ?
Realmente a coisa é poderosa, mas o meu medo é que de uma hora pra outra a tecnologia entre em desuso, e eu ficar sem suporte.
AspectJ para NetBeans não funca com a Versão 5.5, e AspectJ não é compativel com Java 6.0 (Vai ser Algum dia???) apenas com abaixo de 5.0.
[quote=EderBaum]O que me deixou decepcionado é o seguinte:
1 - AspectJ só rola até o Java 5
2 - Não há suporte a AspectJ no NetBeans a partrir da versão 5.0
Sei que há outras alternativas, mas AspectJ tornou-se um padrão praticamente.
O que eu tenho medo é de ter que ficar preso a uma IDE e a uma versão do Java (5 neste caso)[/quote]
AspectJ se baixar uma versão de desenvolvimento ja tem suporte a Java 6, o que quer dizer que em algum momento no futuro vai sair um release oficial
quanto ao netbeans …
larga dele e usa ou o eclipse ou o IDEA
Vale a pena estudar AOP sim. Em muitos casos é útil, mas é claro que você não vai ficar enchendo a aplicação de aspectos, pois pode tornar o código uma bagunça muito grande.
A AOP do Spring realmente é bem interessante e poderosa. Tenho usado ultimament e tem sido muito legal. Já usei o JBoss AOP também e gostei.
Nesses últimos dias usei aspectos para implementar cache de alguns métodos, muito simples e prático, pois nem sequer alterei o código das buscas e posso habilitar e desabilitar quando quiser, bastando alterar a configuração do Spring.
Tem uns arquivinhos “aj” por lá. Sem falar que tem questões em termos de performance.
Isso me deixa Aliviado, de verdade!!
[quote]quanto ao netbeans …
larga dele e usa ou o eclipse ou o IDEA[/quote]
No problem, só não quero ficar preso a uma IDE como se eu estivesse programando em Delphi ou .NET
[quote=EderBaum]Estou começando a entrar no mundo da Orientação a Aspectos com AspectJ.
Porém gostaria de ver a opinião de vocês se vale investir nele, e contrur um sistema inteiro com AspectJ?
Realmente a coisa é poderosa, mas o meu medo é que de uma hora pra outra a tecnologia entre em desuso, e eu ficar sem suporte.
AspectJ para NetBeans não funca com a Versão 5.5, e AspectJ não é compativel com Java 6.0 (Vai ser Algum dia???) apenas com abaixo de 5.0.
Então? Mergulho ou não?
[/quote]
Bom acho que vale apena , AOP é tese da minha monografia da Pos-Graduacao:
Meu estudo de caso transformei um sistema em O.O para AOP técnicas que ficaram elegantemente reutilizáveis:
:arrow: Tecnicas de Tracing e Loging
:arrow: Tecnicas de Captura de Excecoes
:arrow: Tecnicas em atualizar uma GUI
Com isso vc consegue reduzir bem código intrusivo e espalhamento de código
Deixando o sistema com facil entendimento e manutenção.
AOP possui algumas desvantagens:
Ao mesmo tempo o fácil entendimento do sistema é uma vantagem tbm é uma desvantagem devido a dificuldade em entender o que ocorre com determinada classe ao ler seu código, pois as chamadas referentes ao entrelaçamento estão fora da mesma.
Este problema é conhecido como obliviousness;
[quote]
No problem, só não quero ficar preso a uma IDE como se eu estivesse programando em Delphi ou .NET[/quote]
Bom, dai depende do suporte a AspectJ do Netbeans, que nao sei a quantas anda. No Eclipse, a nova versao do AJDT foi lancado junto com o Europa (apesar que nos meus testes com um dos ultimos release candidate o compilador estava muito lento, mesmo com java 5) e como programacao orientada a aspectos ainda esta em expansao tanto na pesquisa como no mercado, vale a pena investir no estudo, dai a escolha da ferramenta (aspecj, jboss, spring, etc) depende da tua aplicacao e preferencia…
a proposito, tem um estudo interessante sobre OO X AOP aqui, falando do impacto sobre coesao, acoplamento, manutencao, tamanho do sistema…
Cara Acredito que o aspectJ ainda seja o melhor framework AOP, embora AOP não esteja totalmente relacionado a um framework específico… Vc tem o Jboss AOP (não conheco, to só citando), o aspectwerks, o suporte do Spring AOP, etc.
Antes que me pergutem o que uma coisa tem a ver com a outra, acredito que haverá uma mudança de paradigma, enterrando todas essas complicações aí na parte de programação…
Ou seja, Java e .Net estão com os dias contados… Dias contados entenda projetos novos. Ainda vão sobreviver uns 20 anos, mas não serão mais ponta de tecnologia.
[quote=ramilani12]Bom acho que vale apena , AOP é tese da minha monografia da Pos-Graduacao:
Meu estudo de caso transformei um sistema em O.O para AOP técnicas que ficaram elegantemente reutilizáveis:
:arrow: Tecnicas de Tracing e Loging
:arrow: Tecnicas de Captura de Excecoes
:arrow: Tecnicas em atualizar uma GUI [/quote]
Captura de exceções através de AOP, taí uma coisa que me interessa bastante. Sua monografia vai estar publicada na Internet?
Estou esperando! Você não tem um blog ou algum meio de publicar um artigo sobre tratamento de exceções com AOP?
Meu maior interesse é trazer essa técnica para desktop (Swing), tratar exceções num único lugar. A forma como eu tenho resolvido isso parece funcionar, mas soa como gambiarra. :roll: Creio que AOP seja a resposta.
estou a ver um post teu de a 3 anos e me interessou,
[quote=ramilani12]Bom Rafael não tenho blog , mas pretendo escrever um tutorial aqui no GUJ sobre essa questão , aqui vai exemplo de como tratar Exceptions:
pointcut traceException: execution(* *.*(..)) && !within(ExceptionTrace);
after() throwing(Exception ex) : traceException()
{
// TODO Auto-generated catch block
log.error(" Foi capturada uma Exception ",ex);
}
Nesse exemplo capturo de qualquer metodo e de qualquer classe que jogue uma Exception na sua execução e passo para Log4J[/quote]
tenho a tarefa de cada excepção lançada no meu programa mudar o estado da aplicação, e nunca trabalhei com AOP, peço ajuda nisso.