面向方面编程的未来

Jay*_*Jay 6 java aop aspects

我是AOP领域的新手.我第一次编写应用AOP概念的东西时,我很高兴能够理解方面如何消除应用程序中的交叉切割模式.考虑到解决交叉模式,如安全性,日志记录,交易,审计等应用AOP,我感到不知所措.
然而,当我第一次向我正在工作的客户提出使用AOP时,我被告知他们不支持它.有人告诉我,AOP意味着更多的维护!如果您的代码发生变化,您的切入点必须更改.因此,每当您更改应用它们的代码时,您可能必须分析,更改和测试您的方面?
关于这个你有什么要说的?为什么主流公司尚未开放广泛使用AOP?AOP世界在哪里?

Mic*_*rdt 14

AOP是一个相对较新的概念,大公司通常对新概念持谨慎态度.他们担心会遇到很多AOP代码而无法找到能够维护AOP代码的人.

关于具体的批评,似乎没有知情或被误解.AOP的重点是通过减少跨领域关注领域的代码重复来减少维护工作.但是,通过使代码更难理解,它可以使维护变得更加困难 - 使用AOP时,当您查看特定代码时,总是有可能在其他地方定义的方面完全改变其行为.

就个人而言,我不确定AOP的好处(真的有那么多跨领域的问题吗?)超过了这个问题.我可以看到解决它的唯一方法是通过IDE中的支持; 但是让你更加依赖IDE并不是一件好事.

趋势似乎是针对应用程序服务器和框架,以类似于AOP(即中央声明性定义)的方式解决特定的,重要的跨领域问题,如事务和安全性,但没有给您充分的权力来混淆维护开发人员.

  • @duffymo,代码的可维护性所必需的.IDE将向您显示代码的哪些部分已定义方面. (3认同)