Web Analytics

也谈共享库

近两天一直在考量产品安装包改进的事宜。说实话,我们的安装包做得不够"专业",不仅没有按照各个平台的标准安装包形式(比如redhat的rpm,debian的deb或solaris上的pkg包)制作,而且安装包在生产环境中还需要再进行一次链接才能得到最终的可执行程序。这样一来,每次制作安装包都很费时费力(虽然有自动打包脚本),安装包的"体积"也很是庞大,因为包中要包含所有.o目标文件和一部分自有库以及...

December 13, 2010 · 7 min · Tony Bai

别为代码的"Bad Smell"提供土壤

上周初参加了一次代码评审,评审时发现一位同事在自己负责的子模块代码里定义了一个私用宏,"重复"这个Bad Smell立马在我头脑中闪现。当时我给出了一个建议:检查一下这个宏定义的必要性,依次检查一下C运行库头文件中是否已经有了同功用宏定义,基础库头文件中是否已经有了同功用宏定义,业务层代码的共用头文件中是否已经有了同功用宏定义。 周末这位同事给出了答复:C运行库、基础库和业务层代码中都没有定义此功...

December 6, 2010 · 2 min · Tony Bai

在TeX文档中插入源代码

近期有了在TeX文档中插入源代码的需要。TeX的\\verbatim可以帮助你保留输入text的原始格式,但用于输入源代码还是显得不够专业。Google了一下发现TeX中支持插入源代码的包也有不少,如LGrind、Listings等。LGrind似乎没有包含在TeX Live的默认安装包中,用apt-get尝试安装LGrind,发现居然要占用近200M的空间,遂放弃之,最后我选择了Listings...

December 1, 2010 · 3 min · Tony Bai

尝试博客搬家

早在若干年前就有朋友建议我搭建一个独立博客,可当时的我觉得blogbus提供的服务很不错,自己没有必要去折腾,费钱又费力,所以我选择了继续留在blogbus。 这两年blogbus服务一直在不断的提高,自己也一直很欣赏blogbus的简单、清新、无广告的风格,大巴后台管理中心的功能也变得越来越强大了。不过这期间blogbus也出现过几次较为严重的故障,导致长时间的无法提供服务。上周blogbus再...

November 30, 2010 · 3 min · Tony Bai

给assert加上返回值,不给力!

众所周知,assert是程序调试阶段的一柄利器,可以帮助程序员快速的定位代码问题。但一般来说当程序部署到生产环境的时候,我们会选择关闭assert。不过由于历史原因,我们运行在生产环境下的程序中的assert依旧发挥着作用,这样一把双刃剑就悬在了我们头上。 我们用的是自己的assert实现,这个实现没有C标准库中assert实现那么普适,不过可以满足我们自己需要的功能,它在运行时可以将断言失败信息...

November 24, 2010 · 3 min · Tony Bai