boost学习记录
-
最近使用glog遇到一些问题,想着尝试使用boost log,然后开始研究源码,在使用一个库之前,我必须能对源码有掌控,但是研究了几天后发现,实在是太复杂了,代码量很庞大,很多东西都是自己实现,包括ostream 都是自己实现的,让看的人很痛苦,比起 stl 源码,stl源码是很简单易懂的,所以放弃使用,
-
当然boost也有简单的,比如pool, 代码量就很小,也简单,所有针对boost,那些用途广泛,会纳入到标准的,要研究透,然后使用它,比如bind,functional,有些没有必要研究,只是一个日志,搞得太庞大了,再比如test,无敌的宏定义,看着代码是要把人搞死。
-
反而, glog, gtest ,对比 boost 的log, test, 实在是太舒服了,简单,不光是代码逻辑简单,写法也简单,所以不建议去研究和使用。
-
那么针对glog不能满足的,我就去扩展它就好了,毕竟有源码。
2020-9-24
5. 研究了很长时间的boost asio,所有的示例代码都看懂并且掌握了,代码很优雅,高效率,但是有一个问题, ASIO源代码还是不能全盘掌握, 一是代码量太大了,二是模板泛滥,代码可读性很差,和标准库类似,这就有一个问题,不能全部代码掌握的话,使用调试起来还是会有问题,毕竟不是标准库,况且标准库虽然可读性差,但是代码少,可以掌握,一句话,不能全盘代码掌握的话,不建议在实际项目里面使用他,如果哪天加入了标准库,我想肯定是要一而再的精简,那时候再考虑使用他。
体会
- 可以借鉴和学习boost的库,但是不要在实际项目里面使用他,除非是已经加入到标准库里面了,因为编译器不支持的原因,才使用,例如bind, 协程等。
- 如果要用到boost库中标准库里面没有的,那就用小的功能,或者可以把需要的一些代码单独拿出来使用,总之需要100%掌控源代码,这样出了问题调试定位方便。