代码之家  ›  专栏  ›  技术社区  ›  Nils Schmidt

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

  •  7
  • Nils Schmidt  · 技术社区  · 14 年前

    我知道以前有人问过这个问题,但这是一年半前的事了,尽管我认为现在可能是重新提问的时候了。我也认识到它可能被视为主观的,但我想有客观的理由支持/反对AOP。

    我会感兴趣的 谁在使用AOP 在软件开发和 为什么 为什么不 使用它。

    我认为AOP是一个非常强大的范例,它可以使许多开发任务变得更容易。但在现实项目中使用AOP时,我的经验是 决策者 几乎不能接受。 你是如何将AOP引入你的项目的?

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

    3 回复  |  直到 12 年前
        1
  •  1
  •   KLE rslite    14 年前

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

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

    • 首先以合理的成本
    • 不干扰开发团队编写的功能代码
    • 无论现在还是将来,都不会忘记(相比于手动添加一个尝试捕获到数千个方法)
    • 无需培训或控制开发人员的工作(有些很棒,有些则一团糟)
    • 具有良好的可维护性

    的确,我们的项目是20个开发人员,持续了几年,所以有大量的代码。这是唯一的解决办法。

    我认为关键是要把它只用于跨领域的考虑。 如果您可以使用常规代码对其进行编码,那么就这样做。但如果它太大,那么AOP是有吸引力的,也是合理的。如果不限制AOP,将导致100个AOP小代码,这将很难理解。

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

        2
  •  1
  •   peakit    14 年前

    我们本身不使用AOP,但是是的,只要我们觉得合适,我们都会使用它(主要是SpringAOP;它与SpringFramework很好地集成在一起)。

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

    好吧,分离出横切关注点,例如跟踪方法调用。在SpringAOP中,可以定义将应用于 “钩” 代码部分。我的意思是,有了“钩住”,你应该能够将所有需要这种行为的方法分组在一个共同的保护伞下。在运行时,这个伞形代码将获得由方面定义的新行为。

        3
  •  0
  •   Mr_and_Mrs_D    12 年前

    如Peakit所说的SpringAOP,如果您已经在项目中使用了Spring框架,那么很容易引入它。

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