当前位置:  开发笔记 > 编程语言 > 正文

面向方面编程发生了什么?

如何解决《面向方面编程发生了什么?》经验,为你挑选了4个好方法。

我记得在20世纪90年代末和21世纪初,面向方面编程(AOP)被认为是"下一件大事".现在我看到一些AOP仍然存在,但它似乎已经消失在后台.



1> Gael Fraiteu..:

在2000年代早期可能已经有很多炒作,发生的事情如下:已经有很多尝试创建面向方面的框架,这些尝试已经合并到Java领域的两个重要项目中:AspectJ和春天AOP.AspectJ是完整的,复杂的,学术性的,有些过度设计.Spring AOP覆盖80%的用例,复杂度为20%.

如果您查看Google趋势中的术语"AspectJ,Spring AOP",然后与Java本身的流行程度进行比较,您会发现AspectJ的相对流行程度有些不变,但Spring AOP正在提升.这意味着人们使用AOP,但不希望AspectJ的复杂性.我认为AspectJ的创造者犯了很多战术错误; AspectJ一直是一个研究项目,并没有"为大众"设计.

在.NET领域,我们在2000年代早期看到了对AOP的类似兴趣.2003年,当我开始进行AOP研究时,有六个用于.NET的AOP编织者; 所有人都遵循AspectJ的路径,所有人都处于婴儿阶段.这些项目都没有幸免于难.基于这个分析,我构建了PostSharp,它设计用于覆盖80%的用例,复杂度为20%,但使用起来比Spring AOP更方便.PostSharp现在被认为是.NET的主要方面.PostSharp 2.0建立在5年的反馈和AspectJ的行业经验之上,并带来了"企业就绪"的AOP(未来将判断这种说法是否值得).除了PostSharp,其他重要的参与者是Spring Framework for .NET和Windsor Castle,两个以DI为中心的应用程序框架提供"也"方面(方面被视为注入构造对象的依赖项).由于这些技术使用运行时编织,因此它们具有严重的技术限制,因此实际上它们只能用于服务对象(这就是这些应用程序框架的设计目的)..NET中的另一个启动项目是LinFu,它可以做"也"方面.

简而言之,AOP领域去年经历了一些整合,并可能进入生产阶段:客户将使用它,因为它真的可以省钱,而不是因为它很酷.即使它很酷:).

哦,我忘记了:大多数应用服务器都内置了对AOP的支持.考虑JBoss,WebSphere,以及某种程度上的WCF.



2> Sherm Pendle..:

每一个"下一件大事"都会发生这种情况.大量的炒作,随后使用流行语的速度缓慢下降.但是,尽管流行语逐渐消失并最终消失,但无论背后有什么好主意,它们都倾向于坚持主流.

[ 编辑 ]好吧,那些认为我在"抨击"某些东西,或声称面向方面编程的人将会消失的例子.下一个重要的事情是结构化编程.面向对象的编程就是从这里开始的,现在没有人再讨论过"结构化编程"了.但是,在很多方面我们仍然在使用它的最佳创意,因为OOP采用了它们,改进了它们,并增加了更多的新想法.


@Pop Catalin OOP实际上是用Simula而不是SmallTalk创造的......!;)这是在1969年.我知道,因为这是*最着名的(有些人只会声称)我的国家(挪威)增加了IT演变... Bjarne甚至在他的书BTW中给予他们信用......

3> webclimber..:

它是关于某些项目的,我自己在最近的一个项目上的经验是太容易被滥用:( !!!什么开始一个很好的方式来设置调试,时间和一些扩展事务管理,它很快被腐败到最奇怪的,我在一段时间内看到的最难以理解和调试的代码.

只是为了在调试/诊断方面进行扩展,AOP代码生成的堆栈跟踪多次隐藏在识别异常发生的实际位置之外.



4> Thomas Hanse..:

AOP实际上是非常出色的,它的问题在于没有现有的语言对它有很大的支持.当然C#有属性(只有当你编写东西时才有效)和Java有"注入"(它会在运行时产生混乱),但一般来说没有(主流)语言对它有很大的支持. ..

所以有点像最终成为一个"设计模式"(虽然在所有不同的语言中实现了疯狂的不同),毕竟这不是那么糟糕我猜;)

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有