如何将AOP引入高效的软件开发?

时间:2010-01-28 16:10:03

标签: aop paradigms

我知道这个问题之前已被问过,但这是一年半前的事情,尽管我认为可能是重新提问的时候了。我也认识到它可能被认为是主观的,但我想有/或有针对AOP的客观原因。

我会对谁在软件开发中使用AOP 以及为什么为什么不使用它感兴趣。

我认为AOP是一个非常强大的范例,它可以使很多开发任务变得更容易。但是当谈到在现实世界项目中使用AOP时,我已经获得了很多决策者几乎不开放的经验。 您是如何设法将AOP引入项目的?

2008年8月以前提出的问题:Do you use AOP (Aspect Oriented Programming) in production software?

3 个答案:

答案 0 :(得分:1)

我们不使用AOP 100%本身,但是我们确实在任何合适的时候使用(主要是Spring AOP;它与Spring框架很好地集成)

  

您是如何设法将AOP引入项目的?

好吧,分开横切问题,例如。跟踪方法调用。在Spring AOP中,您可以定义一个方面(运行时行为),该方面将应用于“hooked”代码段。我的意思是“挂钩”,你应该能够在一个共同的保护伞下将你需要这种行为的所有方法分组。在运行时,这个伞形代码将获得由您的方面定义的新行为。

答案 1 :(得分:1)

我们的经理听他们的架构团队。

我们告诉他们AOP是实现交叉关注功能的唯一解决方案:

  • 首先以合理的成本
  • 没有弄乱开发团队编写的功能代码
  • 从未忘记(与手动添加try-catch到数千种方法相比),现在和将来
  • 无需培训或控制开发人员正在做什么(有些很棒,有些很糟糕)
  • 具有良好的可维护性

是的,我们的项目是20位开发人员,持续了几年,所以代码量很大。这是唯一的解决方案。

  

我认为关键是只将它用于跨领域的问题。   如果您可以使用常规代码进行编码,请执行此操作。但如果它太大了,那么AOP是有吸引力且合理的。未能限制AOP将导致一百个AOP小代码,这将很难理解。

是的,我们的软件是生产软件。数以百计的诊所依赖它!

答案 2 :(得分:0)

如果你已经在你的项目中使用Spring框架,那么Spring的AOP很容易引入。

我首先为我们的工具项目添加了AspectJ,该项目仅在内部使用,从未向客户发布。这有助于开发团队和管理层对该工具获得信心,并清楚地了解它可以为他们做些什么。