2005-11-28

缅怀John Vlissides

巨星陨落,令人动容,仅以此帖略表崇敬与缅怀之情。

消息是从Grady Booch的blog了解到的,可惜没有找到单个帖子的链接。也可以参见John Vlissides Remembered或者John Vlissides

AutoDia on Cygwin

前面提到过没研究出怎么生成dot,刚刚看了源代码,发现原来是用-o选项控制,如果输入文件后缀是dot就生成dot文件,同理可生成png、jpg等等。当然同时一定要使用-z选项。

另外,一定要使用Cygwin Graphviz才行,如果没有可以自己build一个

perltoot

perltoot全称为Tom's object-oriented tutorial for perl。说实话,看了好几本书没学会怎么用Perl做OO,直到看了这份文档。

昨晚国米虽然赢了,但踢得不是很精彩(尤其是下半场),所以就拿出perltoot边看边听比赛。文档写得深入浅出,不愧称为tutorial,在吹响终场哨之前看完了这28页纸,基本上不再茫然了。不过开始看Accessing Class Data一节的时候不太明白,索性略过去,看到后来就明白了。

感觉用Perl做OO怪怪的,尤其是那个bless,就没理解过(现在想来我的理解能力可能有点问题),后来学Scheme时看到Tagged data也没什么感觉,直到这次再学Perl的OO,联系起来才算明白了。不过,好像很多module都设计成能以OO方式运用,而且我打算尝试perlunit,不学不行啊。

2005-11-25

UML class diagram生成工具——AutoDia

这一段一直在学CppUnit,便想着也尝试一下PerlUnit,正好有些事情要用Perl,就下载了瞧瞧,里面提到了AutoDia,这个我梦寐以求的小工具。

其实Doxygen也可以生成类图,但是是作为文档的一部分,而AutoDia则可以生成独立的类图文件,除此之外,它不做任何其它的事情。

不过AutoDia也不是尽善尽美,它生成的Dia xml文件并不是最终结果,仍然需要load到Dia里面,再做手工布局,倒是利用GraphViz可以一步到位,不过它直接生成gif文件,还没研究出怎么生成dot。说实话,我差点就想自己写一个类似的工具,现在既然知道了AutoDia,那不妨在它的基础上实现自己的需求。

2005-11-24

新生活

住进了新家(当然还是租的),也就开始了新生活。

房子总体上还不错,但也仍有一些小的瑕疵,而且装修的味道还没有完全散尽。搬家是在上周六,找了两个朋友帮忙,叫了辆货的,完事了请他们在多利吃了午饭。然后我和老婆就开始疯狂收拾,累得腰算腿疼,同时又疯狂购物,一天去家乐福好几趟,到星期日的时候总算有了点模样。从星期一开始,我们又过上了自己做饭吃的日子,上次正经做饭吃的日子都已经不记得了。

可这新生活到底怎么个新法现在还没底,吃完饭洗个澡差不多就该睡觉了。另外,婚礼的事也得抓紧了,换房子才算刚刚开始呢!

2005-11-14

misunderstand CppUnit::TestFixture::setUp ()

昨天在读《测试驱动开发:实用指南(影印版)》的时候突然发现自己对setUp()的理解有错误,原以为setUptearDown在所有testMethod运行前后只调用一次,还感到奇怪为什么不直接利用构造函数和析构函数。原来这两个方法是在每个testMethod前后都要调用一遍,这才明白了它们存在的意义。

“身价”暴涨三倍

终于签了新合同,月租金从现在的800(合租)暴涨到2400,这将是我来上海不到三年时间住的第三套房子。现在这套房子住了还不到9个月,当初租房的经历还记得很清楚。

这次搬家主要是因为要结婚了,一来要有个新婚的感觉,二来像现在这样两家人住在一起确实不太方便。不过一开始也没想租这么贵的,主要是中介强烈推荐,所以就先看看,租金中介帮着谈了谈,确实降了一些,物业费也由房东来付,由于是新房,物业费还是挺贵的,每平米1块6。开始房东还不肯,后来想着也就一个月不到的租金,如果现在租不出去,年底就更难租了,这才同意了。

2005-11-08

今天comment两篇blog

读周爱民的《大道至简》

这种小册子很适合打印出来,然后在乘地铁时看,但我还是在上班时间看完了。:-)

第五章写得很好,还有第七章第一节。

有些地方跳过了,感觉离自己很远,尤其是后语那句“那是细节”,非常之不受用。文中曾经提到开发产品与做项目的区别,我想两者所适用的软件工程也应该是不同的吧。我用开发产品的感受去套用作者的经验,难免有误读之嫌!

希望有志于从事编程的人能够报着“取其精华、去其糟粕”的精神来阅读这本小册子,另一方面,带有贬低编程味道的软件工程书籍是最难被程序员接受的,所以,尽管有些反感,还是希望你能读完他,哪怕跳过其中你认为无趣的部分,毕竟它并不长。

附:

2005-11-04

第一次尝试TDD

今天用搭建好的CppUnit做了人生第一次TDD,新手上路,难免显得笨手笨脚,但是仍然感受到了TDD带来的震撼。

首先,每个case都很小,使得发现问题、解决问题的速度很快,极大地缩短了开发周期。其次,这种测试方式使得每个模块不得不写得高内聚低耦合,而这恰恰是高质量软件的特征之一。

当然,工具虽好,也要会用才能发挥其威力。由于是初次使用,还无法做到从最简单的测试开始,上来就写个复杂的,当时还自以为够简单,等测试出了问题才发现有更简单的case没有写。这就好比等到产品出了问题才发现,原来其中一个部件没有测试过,实在不能算是正确的开发方式。陋习难改,还需多加实践啊!

2005-11-01

开始TDD

仰慕TDD以久,一直找不到机会尝试。这次趁着release期间有空,开发了个patch,在应用了这个patch后,我们的编译器代码就可以利用CppUnit做白盒测试了。由于某些不可抗力的存在,这个patch不能check-in,不过因为受影响的几个文件基本不会更改,所以这种打patch的方式还能凑合着用,不至于有过重的维护负担。

有了CppUnit,就可以做Test-Driven Development。实践是检验真理的唯一标准,也是学习知识的最好方式。书读了两本,文档看了一对,可究竟怎么做TDD还是懵懂懵懂,没有一点感性认识。幸运的是,这样的日子即将成为过去,从明天开始,咱也TDD了:-)。

选照片记

上周日如约去杭州百合新娘选再前一周拍好的结婚照,共拍了100张,选来选去不忍割舍,最终加了924块钱,将100张全部刻到光盘里,其中49张分别做到3本相册里,一本18吋两本12吋。要到12月15日以后才能拿到,还真够漫长的。