如何将AOP引入生产软件开发中?

7
我知道这个问题以前已经被问过了,但是那是一年半前的事情了,我认为现在是重新提出这个问题的时候了。虽然我知道这可能会被看作是主观的,但我认为有客观的理由支持/反对AOP。
我想知道谁在软件开发中使用AOP,以及为什么或者为什么不使用它。
我认为AOP是一个非常强大的范例,可以使很多开发任务变得更加容易。但是当涉及到在实际项目中使用AOP时,我发现很多决策者几乎没有接受它的态度。你是如何成功地将AOP引入你的项目中的呢?
之前的问题是从2008年8月问起的:Do you use AOP (Aspect Oriented Programming) in production software?
3个回答

1

我们并不是百分之百地使用AOP,但是在适当的时候我们会使用(主要是Spring AOP,因为它与Spring框架集成得非常好)。

你们是如何将AOP引入项目中的?

首先,将横切关注点(例如跟踪方法调用)分离出来。在Spring AOP中,您可以定义一个方面(运行时行为),该方面将应用于“挂钩”代码段。这里的“挂钩”指的是,您应该能够将所有需要此行为的方法分组到一个共同的范围下。在运行时,这个范围内的代码将获得您的方面所定义的新行为。


1

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

我们告诉他们,AOP是实现跨领域功能的唯一解决方案:

  • 首先以合理的成本
  • 不会干扰开发团队编写的功能代码
  • 不会忘记(与手动添加到数千个方法的try-catch相比),现在和将来都不会
  • 无需培训或控制开发人员正在做什么(有些人很棒,而其他人则非常混乱)
  • 具有良好的可维护性

确实,我们的项目有20名开发人员,并持续了几年,因此有大量的代码。这是唯一的解决方案。

我认为关键是仅将其用于横切关注点。 如果可以使用常规代码编写它,请这样做。但是,如果太大,则AOP是有吸引力且合理的。未能限制AOP将导致数百个AOP小代码,这将非常难以理解。

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


0

如Peakit所说,如果您已经在项目中使用Spring框架,则很容易引入Spring AOP。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接