All Stories

WTL升级

  偶然发现WTL已经出到8.1版本了,可是好像CVS里却没有更新,原来是已经切换到SVN里去了,还枉我时不时地update一下呢!  这次更新号称是兼容VC2008,结果我升级了一下,发现原来的一个使用WTL写的程序工作不正常了,居然接口行为都改变了,晕死!原来的8.0版本在VC2008下使用也没什么问题啊!  郁闷!

总觉得不对劲

  这两天在公司里,做那个插件架构,到昨天为止,大概实现了一半了,不过总觉得不对劲。这是一个没有经过实践检验的方案,看了那些已经完成的代码,再联想一下完全完成后的可能的模样,心里老是有点不爽,担心内存占用会不会太大了。  现在这个设计是在原来的基础上修改来的,主要的修改是在一个插件中可以定义多个扩展,插件只是扩展的容器,扩展才是真正实现可扩展性的设施。于是相比原来的设计,现在有了两种独立的对象,插件和扩展,而原来一个插件中只定义一个扩展,在代码实现时可以只定义一种对象。于是现在这种情况下,对现实世界的描述,大约会多出近一倍的信息量吧,这些信息如果全部保存到内存中,预计消耗会很大。本来这些信息是通过配置文件描述的,如果不全保存到内存中,就要能实时解析配置文件,这对运行速度也是一个考验,而且能否快速方便地检索到需要的配置文件目前也是个未知数。  崩溃!

我怎么也用不了TDD

  TDD中说的是要先写测试用例,再写功能代码,可是无论如何,我都做不到这一点,我无论如何都要先写好功能代码,再回头来写测试用例。  不过虽然这么做了,但我觉得还是不影响我做单元测试的,哈哈。今天是我将CppUnit换成googlettest以来第一次正儿八经地写单元测试用例,感觉还是比较爽的,有种写代码就是一种享受的感觉。用googletest可以比用CppUnit少敲不少字,而且我猛然发现,不用GUI的TestRunner,也没有什么不好的感觉。  通过单元测试来保证类或函数的功能,最适用的场合是算法性的代码,真是太安逸了。

插件依赖

  因为要使得插件支持依赖,比如在插件描述中说明,某个插件A,依赖于插件B和插件C,而插件C又依赖于插件D,那么在装载插件A之前,需要先装载插件D,再装载插件B和插件C,最后才是插件A。  这个依赖关于跟C/C++程序代码中的头文件包含处理方式几乎一模一样,典型的做法就是把这所有的依赖关系最终用一张有向图表示,这样通过DFS可以查找到是否有循环依赖,如果有,可以彻底中断装载过程,或者只是简单地把最后一个回边打断而继续装载。  最终整理出来的插件装载顺序也是很容易的。首先查找没有依赖于任何其他插件的插件,无论是理论上还是实际上,肯定是有这种插件存在的。找到这些插件后,把对这些插件的依赖关系都删掉,这样肯定又多出一些插件是已经解决依赖关系的。再把这些多出来的插件作为被依赖的关系删掉,重复前面一步操作,最终可以将所有插件都顺利装载。

boost 1.39.0发布

  早上起来看了一眼邮件列表,发现boost 1.39.0居然发布,这次好像测试都没有多少消息,怪不得前两天就有人在邮件列表上开始说要1.40.0的release building了,真是快啊。这个节奏还真让人有点手足无措的。  在公司里,用的都是正规release出来的版本,那样每次build出来的lib和dll一般都是没有问题的。而在家里,我都是直接从svn里check out来的,里面有的代码还存在些bug,有些则可能连编译都成问题。本来因为懒得编译的原因,我一直都是只用header only的库的,可最近因为公司里那个项目的影响,用了boost::regex、boost::program_options、boost::system、boost::file_system等的库,渐渐对这些需要编译的库也有点依赖心理了,防范心理也弱了不少,可是svn里的代码几乎天天有所更新,编译的话,就太头痛了。

读《Imperfect C++》

  这书买了有一段日子了,但一直没有拿起来读过。几年前,也从公司的图书馆里借来过,好像那时候还在测试组吧,只是网上吹得厉害,于是就好奇地借来看看,结果完全不知所云,还暗骂网上吹的人不厚道。直到最近,一个同事以为自己把图书馆里借的那本搞丢了,在那说说,于是我又好奇心起,拿来翻了翻前面几页,发现讲得真好啊,原来以前是自己水平不够才看不懂的,于是上网买了一本。  我有这样的坏习惯,书借来的时候觉得挺好挺有用,于是自己去买,买了来就丢一边了,好像里面的知识已经掌握了似的。这次也不例外,但是昨天不知怎么的,拿出来,以最近最认真的状态看了两章,有些收获,只不过,这一年多来,沉迷于网络小说,实在静不下心来认认真真做些有意义的事呀!

手工皂

  托小妞在淘宝上买了块手工皂,照片很好看,那种那糕点,用小妞的话说,就是黄豆糕内嵌紫色布丁。昨天中午跟小妞他们两口子去万科城的夜郎国吃田鸡,把手工皂拿了来。包装也比较可爱,最外边是一个绿色的硬纸壳,纸壳夹起手工皂,两边没封起,可以看到里面,用一个塑料袋装着手工皂,塑料袋和纸壳在最上边还用一根绿色的小绳串起来打了个活结,很是吸引那些小女生的样子。  手工皂很小一块,小妞说大概每天用一下,能用两三个月吧。嗯,我明明记得以前是小妞跟我说的,男人过了25就应该保养了,可是上次她硬是说自己说的是女人,我大汗,不过看着自己脸上日渐粗大的毛孔,我就只认我记得的了,哈哈。

高质量就是装B吗

  google上有个讨论组,一直标榜自己高质量,可是为什么我订阅了这么些日子后,越来越感觉到这些个主题不知所云了,难道所谓的高质量在我看来就是装B的意思?  我狂烈地晕啊!

《Exceptional C++》看得郁闷

  这两天都是干点儿活,看两眼《Exceptional C++》,看得我异常郁闷!这是一本老书,讲的内容也都是我没关注过的,可能也正是这个原因,使得我看起来非常吃力,老是觉得不知所云,偶尔看到一些似乎有点儿明白的“原则”之类的tips,也是翻过一页立马就忘了,而更多的时候是不知道为什么要这样。  极度郁闷啊!