• 2003-12-14

    AOP初印象

    Tag:向上走

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/dreamhead-logs/58634.html

    这两天看一下《DDJ软件开发》上关于AOP的两篇文章,算是对AOP有了个最初的印象。

    在我看来,AOP所提倡的实际上是个哲学问题,“从不同的角度看问题”。
    所以,如果把AOP中的"方面(aspect)”换成我们熟悉的“角度”,我觉得这个概念就可以更好的理解了。

    我是一个Java程序员,和我同住的一个兄弟是C程序员。
    某天,他突然问我,对网络的了解多少,我说很少,他很惊讶,你们项目不也是基于网络的程序吗?怎么连对网络了解得都不多。

    其实,这就是一个关注点的不同。
    如果用C写程序,那就不得不面对直接编写网络程序的问题,解决诸如Socket连接、并发等等问题,为什么,因为如果自己不做,没人会帮忙。
    如果用Java写程序,恰好又是一个基于Http的应用,那就省去对网络程序的关注,因为这些问题已经有人完成了这些工作,他们就是那些开发WebServer(比如Tomcat)和AppServer(比如JBoss)的那群人,在此基础上开发应用的人,大可不必理会究竟请求是如何进来、并发如何处理,只要放心大胆的去做自己的应用就好了。

    关注点不同,对于同样的问题就会产生不同的理解。如果因此争论不休,才真正是“风马牛不相及”,网上许多关于语言或工具的争论往往都是这样开始的。

    回到AOP上,其实一个aspect就是我们看问题的一个角度,我们所关注的一个问题,一个关注点。

    再来说说《DDJ软件开发》上的两篇文章,《AOP之父Gregor Kiczales访谈:15%解决方案》放在《AOP入门》之前,于是我按部就班的先看了《访谈》,结果连一半都没看下去,几乎看不懂。只好先看《AOP入门》,对程序员来说,是有代码的东西最实际,看过《AOP入门》回过头来看《访谈》,许多疑问迎刃而解。所以,如果哪位和我一样对AOP感到陌生的兄弟姐妹想要读这两篇文章,我推荐先看《AOP入门》。

    就上面所举的例子再多说两句,例子无非是用来说明我的观点。对于我对网络知之甚少的情况,我自己是深感愧疚的。鉴于大多数时间把精力都集中在应用上,以致于我现在只能以“架构”、“模式”等比较“炫”的词来敷衍别人。在我看来,只有有了良好的基础,写起代码来才能虎虎生风,否则,无异于盲人摸象,很难看清事务的本质。

    分享到:

    历史上的今天:

    引用地址: