Web Analytics

关注,AOP

AOP的核心概念是关注点,我开始关注AOP。 一、Why AOP? a) AOP一般观点 一般在开发系统时,我们可以大致的把系统的需求分类为核心模块级需求和系统级需求。很多系统级需求一般来说是相互独立的,但它们一般都会横切许多核心级模块。以一个电信领域的短信网关系统为例,系统的核心级需求是短信的收发,话单处理等,而其系统级的需求包括日志,校验以及性能问题等。像日志这种系统级的需求就横切短信收发、话单处理等几乎所有网关核心级需求。虽然横切需求会跨越多个模块,但目前的技术倾向于使用一维的方法学来处理这种横切需求,把对应需求的实现强行限制在一维的空间里。这个一维空间就是核心模块级实现,其他横切需求的实现被嵌入在这个占统治地位的空间,换句话说,需求空间是一个n维空间,而实现空间是一维空间,这种不匹配导致了糟糕的需求到实现的映射。 ...

January 28, 2005 · 4 min · Tony Bai

Hello,AOP

论坛上有人评价Java在过去的2004有两大值得称赞的技术发展,一个是Java在IOC模式上的成熟应用,再就是Java的AOP框架。 一、好消息 2005年一月份传来好消息,AspectJ与AspectWerkz合力打造AOP框架,两个开发团队将合力开发一个全新的面向方面编程(Aspect-Oriented Programming,AOP)平台,在其中融合双方的长处和经验。这两家都是业界重要的开源AOP实现,不过走了不同的技术路线:AspectJ一直坚持“预编译+源码生成”,AspectWerkz则是“元数据+运行时织入”的代表。关于两种技术路线、两种产品的争论一直是AOP社群的热点话题,如今两个开源组织决定彻底解决这个困扰。两家合并之后的第一个产品将是AspectJ 5,其中既有AspectJ风格的、基于语言扩展的AOP,也有AspectWerkz风格的、基于XML(和JSR-175 annotation)的AOP。随后,双方还会继续融合各自的长处和经验,努力提供一个完善而统一的AOP平台。 ...

January 22, 2005 · 3 min · Tony Bai

Build ArgoUML and AndroMDA

由于Dominoo近期策略的改变,所以我开始关注和研究UML和MDA领域较为出名的开源项目。我准备先拿ArgoUML和AndroMDA“开刀”。 ...

January 19, 2005 · 4 min · Tony Bai

Dominoo项目日记(四)

大家都是对软件充满无限激情的人,大家都致力于能开发出能被大家所广泛接受和使用的软件。可是激情归激情,我们还得脚踏实地。项目遇到了障碍,我们需要改变思路。 ...

January 17, 2005 · 2 min · Tony Bai

深入Java底层

在一个朋友的书架上发现王森著的《Java深度历险》一书,看了书的前言了解该书是关于Java底层技术内幕的。怀着好奇心浏览了一下,谈不上有太多收获,但也记下了一些自认为有益的两点。 * Java xxx 我们在命令行下敲入:“java xxx”后会发生什么呢? 流程如下: 1.找到JRE; 2.找到JVM.dll; 3.启动JVM,并进行初始化; 4.产生Bootstrap Loader; 5.载入ExtClassLoader;(Ext – Extended) 6.载入AppClassLoader; 7.加载xxx类。 ...

January 16, 2005 · 3 min · Tony Bai

饮水机的加热保护

小小饮水机,里面也有值得思考的东西。 * 起因 昨晚回到寝室感到口渴,顺手按下了门旁饮水机的加热开关,到洗漱间洗了把脸,拿着水杯出来接水,看到加热灯已经变成绿色(我们的饮水机的加热指示灯在加热过程中是红色的,加热结束后会变成绿色,我想大多数饮水机都是这样的)我就按下热水出水开关接热水,可是却不见热水流出,这时我才注意到原来水桶里已经没水了。当时想的是这样无水加热会不会烧坏饮水机,恰好旁边有一装满水的新桶,我快速将之换上,心里想着那个绿灯肯定会马上变红,可是等了半天绿灯还是绿灯,没有任何重新加热的迹象,我很是感到奇怪,我尝试着按下热水出水开关,烧开的热水不竭的流到我的杯子中,当时就是感到挺困惑的,但是也没多想,咕噜噜的喝着烧开的热水,真是解渴亚。 ...

January 16, 2005 · 2 min · Tony Bai

Mix-in in Ruby

在Matz的一篇PPT“Object-Oriented scripting in Ruby”中,Matz提到Ruby提供一种语言机制Mix-in,在其PPT中如是描述的“No Multiple Inheritance,but Mix-in”、“Mix-in is as strong as multiple inheritance,but simple”。 ...

January 12, 2005 · 3 min · Tony Bai

开放与封闭

敏捷设计最基本原则:“开放封闭原则(OCP,Open-Close Principle)” * 回顾SRP 在开始谈OCP之前,我们还是简单回顾一下Bob大叔在其书中所论述的敏捷设计的第一个原则“单一职责原则(SRP,Single Responsibility Principle)”。 ...

January 9, 2005 · 2 min · Tony Bai

由一段话想到的

在Java视线论坛的Python/Zope版,浏览了管理员robbin发的题目为“我眼中的Python”的帖子,感触颇深。 Robbin如是说:“做为一种严谨的,编译式的,面向对象语言,Java总是给我一种须正襟危坐,须一板一眼的按照OOAD的规则编程,才敢在键盘上敲下字符的感觉。即使编写一个最小规模的程序,我也不能够接受把所有的code塞到main里面的做法。Java似乎以不怒自威的威严使我不敢随意编码,不敢玷污Java的严谨。于是我即使写一个很简单的JDBC程序,也要一板一眼的try catch finally,一层层的处理Connection,PreparedStatement和ResultSet。” ...

January 9, 2005 · 2 min · Tony Bai

另一种“所见即所得”

最近一段时间,看了很多前沿性的资料,发觉在头脑中形成了很多“思维”的孤岛,这些孤岛很无序,我甚至不知道它们是什么时候的出现的,好像一夜间都浮出了“海平面”,我很难将它们连接起来。本篇blog中我想说的也是我一个思维孤岛的展现。 ...

January 8, 2005 · 2 min · Tony Bai