一本超越期待的 C++ 书——简评《Boost程序库完全开发指南:深入C++“准”标准库》

标签: 一本 超越 期待 | 发表时间:2011-04-06 17:03 | 作者:lanphaday QQ
出处:http://blog.csdn.net/lanphaday

赖勇浩(http://laiyonghao.com)

作为一个时不时要用一点 C++ 的程序员,我常常自嘲为斯德哥尔摩综合症患者,用 Python 写着懒散的代码时,会怀念以前编写 C++ 代码的那种被虐感。但当真正要写一些 C++ 代码的时候,又会怀念 Python 带给我的自在,这也许就是所谓的由奢入俭难了。幸好有 Boost,有时候它甚至让我觉得其实 C++ 也可以写得如同 Python 般雅致。大概是因为 Boost 的组委们一直以来的高要求,好库,好文档,所以长期都是阅读在线文档作为学习的途径。后来也有国人翻译了一本 Boost 的书,书很棒,但对应的 Boost 的版本就比较过时了,而且语言转换过程中也有不可避免的信息流失,令人扼腕。这几年,alai 等人自发组织起来,翻译了 Boost 的全部文档和一些相关书籍,而且对版本的跟进也是比较及时的,是不可多得的好材料。尽管有如此方便的资源,我还是比较期待有一本国人写的,Boost 相关的书,我相信国人对我们使用的 C++ 风格和水平有更好的理解,能够写出更适合我们真实需求的书。所以后来手上才有这本《Boost程序库完全开发指南:深入C++"准"标准库》(以下简称《Boost 指南》)。

虽然我期待一本国人写的 Boost 相关的书,但是当我看到这本书的目录时,我不由地鄙视起来:太多东西了,像流水账,甚至可能是直接抄袭官方文档。

当书到手后,我发现它超越了我的期待,作者的苦心孤诣不说,至少抄袭完全是不存在的。第 0、1 两章把读者引入 Boost 的新新世界,讲述了本书的基本结构和阅读指南,然后是 Boost 的安装与编译,给了初手一条向上的梯子。本书可以说是详略得当,作为一作定位为手册+介绍的书,做到这一点不太容易。编排由浅入深,而又曲径通幽,比如以“时间与日期”作为 hello boost 之例,与当前市面上的 Boost 大有不同(通常是以 shared_ptr 为始),因为“时间与日期”是大家天天接触的概念,接受起来容易不少,让人感觉 Boost 真的有用,解决实际问题,这样读者对 Boost 的兴趣就被勾了起来,再往下读,也不那边怕艰难了。其实按我的设想,我觉得接下来就讲一下字符串和各种容器,比如 tuple、unordered、bimap、circular_buffer 之类的,应该更好一些;可惜这本书还是接下来马上就开始讲内存管理,介绍 shared_ptr 了,不能免俗啊。

这本书的另一个特色就是例子都是作者专心构造的,尽显作者给足了心想做本好书。比如讲 date_time 库的那一章,构造了一个信用卡的免息期的计算例子,例在身边,感受新鲜,我当时读到这个例子觉得作者真可算得上匠心独运了。虽然如此,但仍然要指出一下因为作者可能不太喜欢参考他人的一些例子(太怕被人说抄袭而刻意避嫌?),也有一些我觉得不太好的例子,比如讲 operators 时,那个 class point,居然支持大小比较和加减操作,多少有点算概念没理清。如果实在要用这个例子,我觉得也许叫 class vector3d(三维矢量)更好一些。

最后,讲一下这本书我觉得比较不喜欢的地方。在我看来,既然读者都已经开始学习、使用 Boost 了,想必基础较好、自我学习能力较强,《Boost 指南》仍然定位在介绍和手册这一层次,我觉得多少让人觉得这本书写得啰嗦、写得不够深入。虽然全书都是作者自己的经验和学习成果,例子也是精心构建,但读来仍然不会有胜于官方文档的感觉。关于 Boost 的书,我更期待的也许是如何以 Boost 来解决一些经典的问题,向读者展示 Boost 的强大与实用的《Boost Cookbook》。从全书来看,作者 C++ 经验相当丰富,这本书完全没有展示出作者的实际水平,很期望作者能够加加油,换换思路,带给我们一本《Boost Cookbook》。

最后两章,Boost 和设计模式、结束语,是画龙点睛之笔。前者对 GoF 的 23 个设计模式和后来总结的 3 个设计模式与 Boost 结合起来,点破 Boost 中的哪些库使用了哪个设计模式,可以说是点破了 Boost 库精巧灵活之谜,也让设计模式的学习者、爱好者有一个可观摩的模式的应用与实现的典范。这是在其它书中不曾见的。而在结束语中,作者直言 C++ 和 Boost 仍然有很多不足,但我们也不必拘泥于此,我们要有开阔的眼界,用好工具解决好问题,编程,功夫在诗外。作者最后讲到一句话,因为我也曾说过类似的言论,使我顿生戚戚,所以借来作为我的书评的结束吧:……生活中不只有 C++、代码和编程,还有更多的东西值得我们去体味,朋友、亲人、爱人更值得花时间与他们在一起。走出办公室,离开计算机,去亲近大自然,享受美餐,散散步,打打球……拥有美好的生活才能够创造出完美的程序。

作者:lanphaday 发表于2011-4-6 10:03:00 原文链接
阅读:18821 评论:58 查看评论

相关 [一本 超越 期待] 推荐:

一本超越期待的 C++ 书——简评《Boost程序库完全开发指南:深入C++“准”标准库》

- QQ - 赖勇浩的编程私伙局
赖勇浩(http://laiyonghao.com). 作为一个时不时要用一点 C++ 的程序员,我常常自嘲为斯德哥尔摩综合症患者,用 Python 写着懒散的代码时,会怀念以前编写 C++ 代码的那种被虐感. 但当真正要写一些 C++ 代码的时候,又会怀念 Python 带给我的自在,这也许就是所谓的由奢入俭难了.

Trover 超越 Instagram ?

- PH囧ENIX - 爱范儿 · Beats of Bits
5月4日,Trover 上线,第二周成为 App Store 的 “本周推荐”,现在已经有来自140个国家的用户上传了照片. Trover 是一家小公司,由3名程序员和一名设计. Trover 的起步和 Instagram 很像,尽管它还有一些不完善的地方,但由于其拥有一些 Instagram 不具备的元素,我认为它将超越 Instagram.

成为自己期待的那个人

- 成韵 - 左岸读书_blog
闲聊中她说女人这辈子终归平凡,最重要的就是遇见一个好男人,可是这不取决于时机,取决于女人自己本身. 女人会找到什么样的爱人,和她“找”到爱人的方式有关系. 如果你在酒吧认识一个坐在吧台的男人,不要怪他只想和你一夜风流. 如果你存在钓金龟婿的心态,就莫要怪他比你还现实. 如果你一定要让他锲而不舍的追你,明明想和他在一起,却故作姿态,千推万阻,那么你最后找到的那个男人,必然是个死皮赖脸.

Elon Musk最感性专访:我期待失败,也期待真爱

- - 无用良友IJ
作者 | Neil Strauss. 来源 | Rolling Stone. 在加州霍桑市 SpaceX 总部的一个周五下午,Elon Musk 的三个孩子都聚集在他的周围——他的三胞胎之一和他的双胞胎. Musk 穿着一件灰色 T 恤,坐在办公桌前的一把转椅上. 这并不是一个封闭的私人办公室,而是在一个开放的角落隔间里,他的办公桌上摆满了外太空的新奇物品、他的火箭的照片,以及特斯拉和他的其他公司的纪念品.

让光超越光速

- Tomasen - Solidot
翘曲引擎遥遥无期,但两项新试验让光脉冲速度能超越爱因斯坦相对论光速极限c. 新的试验并没有违反相对论,但从理论上讲它能加快光通信. 如果介质相同,光脉冲的峰值始终位于相同位置;而一个快速的光介质可以让峰值前移,使其看起来比光速更快. 加州圣迭戈的Vitaliy Lomakin和同事将理论变成现实,他们的试验显示能让10%的光脉冲打破光速c.

【东京眼】便利店与B'z不会辜负你的期待

- bill - 东西
离开东京那些为内心带来安宁的便利店,我就活不下去. 遍布东京各地的便利店,完全像有自己的生命一般. 是种朝着未来不断进化、激动人心的存在. 对于美国的便利商店,我用不了5分钟就已无话可说,但要说起日本的便利店,我能跟你侃上一个钟头. 要想知道日本是个多么富有的国家,去便利店一探究竟就是最好的办法. 我甚至一直觉得,从便利店中便可看出一个国家的状态.

ACG批评作者阵容扩充,期待您的加入!

- ye - ACG批评
由于ACG批评的第二作者Aitsuko准备开设个人独立博客,外加博主windchaos最近人懒沉迷游戏写杂志商业稿多博客写的少了域名和空间又不想闲置浪费现准备招募几名作者阵容共同维护博客. 一、加入ACG批评作者阵容的好处:. 1、有一个独立博客的空间可供使用,可以省去维护博客的时间和技术支持. 2、自认为本博客有一个还算不错的订阅量,你的文章可以被很多人看到.

非同一般的笔记本创意,值得期待

- 请叫我火矞弟 - 译言-每日精品译文推荐
译者 xiangyugan1992. 15种好玩又与众不同的创意笔记本. 本文将向你展示创意非凡的便条簿,速写册,还有记事本之类. 新颖笔记本,独具一套奏乐用键盘. 不同寻常的三角造型笔记本,由Tan Mavitan设计. 套装含12本“面包片笔记薄”,由Burak Kaynak设计. 每页的背面都印有足球折叠线条.

外媒评选2012年10大最期待游戏排行榜

- xing - cnBeta.COM
我们们玩到了不少好游戏,那么我们来看看后几个月都有什么作品出现吧. 2012年离我们不远了,所以我列了一张大作游戏清单. 这些游戏都已确认在2012年内放出. 看着这些游戏,又一个玩家的欢喜年要到来咯.

红杉资本:敬请期待Color的转型

- 幻幽 or A書 - 36氪
照片分享应用Color在今年年初带着4100万美元融资正式上线,上线后引发争议不断,此后团队两位核心成员离职,产品下线. 红杉资本Doug Leone领投了这次投资(红杉投了2500万美元)并加入Color董事会,在上周的TC Disrupt大会上,他谈论说他不后悔投资Color,并且Color是最令他兴奋的一个产品.