Acho que vou fazer meu TCC sobre AOP, mas não usando em infra-estrutura (exemplo clássicos como Log ou transaction). Tou pensando em fazer um estudo de caso em AOP aplicado ao design do domínio. Sei lá…
Ainda nem pesquisei nada, nem sei se esse é um tema batido demais ou se eh simples demais pra ser tema de TCC.
Pessoal, o AspectWerkz não se juntou com o AspectJ ?
Estou vendo qual escolher para implementar no meu projeto final, tem que ser uma que dê suporte a alterações em run-time.
[quote=Fabrício Cozer Martins]
Massa!
Como você tratou a opção de Load-time weaving ?[/quote]
O weaver usado nos dois é o mesmo…a diferença é que o estático salva as classes modificadas em arquivos class, e o dinâmico é integrado a um class loader pra fazer tudo em memória durante o carregamento das classes.
Mas cuidado pq AspectJ não tem “run-time” weaving diretamente; o weaving é feito no carregamento de classes – não tem jeito de remover ou adicionar aspectos com o programa em execução como em alguns outros sistemas.
Escrevi um CMS do zero usando AOP. Na epoca, era do caralho. Hoje em dia, teria usado Rails pra fazer a mesma coisa, com uma ajudinha de metaclasses. Teria sido bem, beeeeeeeeeem mais limpo. De qualquer forma, o projeto ta em producao e os clientes parecem satisfeitos.
Nossa , essa implementação foje totalmente do que todo mundo já está acostumado a ver e implementar que é Transações, Segurança, Logging, Tracing, profile, monitoring, contracts, etc …
CMS em AOP ? Por curiosidade, o que teria nesse CMS para ser útil a utilização de Aspects ?
Cache ?
qual seria a tendência hoje em dia na utilização de Aspects ? O Aspectj5 por exemplo melhorou muitoooo, tendo suporte a annotations, load-time weaving, só que ainda tem aí o JBossAOP, SpringAOP, Dynaop, dentre esses teria alguma tendência ? Eu preferencialmente gosto mais do Aspectj5, o plugin para eclipse AJDT, etc…
E também alguém tem alguma crítica na utilização de Aspects ?
Bom…minha experiência é só com AspectJ e alguns sistemas acadêmicos que nem valem a pena comentar.
Mas o problema de usar AspectJ é que o AJDT ainda está muito ruim; na lista de discussão de AJ grande parte das dúvidas e reclamações são quanto a bugs bizarros e absurdos do AJDT (do tipo não mostrar mensagens de erro de compilação a não ser que você converta o projeto pra Java e depois de volta pra AspectJ).
Além disso, a sintaxe herdada do AspectWerkz pra AOP escrito só em Java (sem extensão de linguagem) é péssima…um exemplo:
Como load-time weaving não depende dessa sintaxe, eu a acho totalmente desnecessária…mas parece que muita gente na comunidade de desenvolvedores prefere a sintaxe com anotações por ser "Java puro"… :roll: