Boost的第一印象

用Boost写的代码阅读和维护过好几年了,但用在自己项目里还是第一次。过去几周把P2P-Tuple软件大改了一下,架构方面改动的同时也改用boost来做诸如serialisation, multi-threading, interprocess communication,filesystem的任务,简单谈一下第一印象:

首先,boost很OO,这点毋庸置疑,阅读boost代码本身会有很好的收益。boost也“比较”标准,朝中有人好说话,标准由boost的作者制定,boost就是标准。
其次,boost总体上来说比较简单高效,多数情况也能应付很多软件的可移植性,比如libtorrent这样的例子。

boost的缺点是:

1. bjam很不标准,--help里也看不到是否支持并行编译。
2. 文档不全,和java库比,文档全面和可读性都差多了。
3. 居然不支持multi-process,但却支持IPC。

就比如boost用的bjam设置安装路径用一个配置文件,一个bootstrap.sh脚本来配置这个配置文件,--prefix居然是安装头文件的路径,必须--libdir分开单独指定库安装路径。这个细节上干嘛就不能和automake/autoconf做的兼容呢?这么简单一个细节,举手之劳而已。

昨天经过仔细思考,也放弃了把P2P-Tuple移植到windows上的想法,剩下基本就一个fork/waitpid是posix的了,自己包装一下很容易就能搞定,剩下的繁琐的简单校调没有任何挑战,时间还是花在已经落后了的MapReduce的支持上比较合理。顺便提一下apache的apr库,很垃圾的一个库,基本每个函数都要一个pool*的参数。本来打算用它做P2P-Tuple的跨平台支持,一看这个接口质量直接放弃了,后来一google,其作者也承认这个pool*的设计是apr最大的错误 -- 你会愿意在程序开头创建一个memory pool,然后把它传遍程序所有用到操作系统API的地方吗,(请注意,apr本身就可以认为是一个操作系统api的抽象层,不应该再加一层了)?

转载于:https://www.cnblogs.com/nilei/archive/2009/08/28/1555703.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值