走向现代C++
从20号上午拿到这本书来,已经过了4天。然而这本书居然已经读了一半,已经大大超出我的预期了。根本停不下来,耽误了自己的其他很多事情。
先是在网上下载到了英文的电子版,然后看到知乎上译者推销自己的中译本,然后发现豆瓣上的风评也不错。果断在Amazon上下单了。要问我为什么不直接看英文版的?虽然我从来不排斥英文原版的技术书籍,甚至有偏爱,只要中译本风评不好,或是有瑕疵。果断入手原版,或使用原版电子书。但毕竟母语是中文,看译本自然速度更快。不过即使是看译本,遇到奇怪的地方还是会对照着英文版看的。
本书真是我目前读到过的最好的技术书了。这里的好,主要指的是阅读体验巨好。难怪知乎上评论就像读小说一样。我也是4天就看了一半多,超出了自己平时的速度很多。不知是Scott Meyers还是译者高博的功劳。我认为都有吧。中文版翻译的很流畅,照顾了读者的很多阅读习惯。把作者的玩笑话翻译出了精髓。不过对于一些专有名词,给出的翻译不是很符合我的习惯。比如把 出现频数很高type翻译成型别,而不是大家常用的 类型。dereference对应的是 提领,而不是解引用(哈哈,这个是我自己看其他C++英文时脑补的翻译。不知道其他人的翻译是啥。不过细说起来,我读的讲C++的书只有3本。C++ Primer,C++ Concurrency in Action, 另一本就是本书了。前两本都是直接看的英文版)。不过看多了,慢慢就习惯了。
本书我力荐使用C++的人必读。无论是老手,还是新手(作为新手,我可能没资格说这样的话)。对于老手来说,Effective C++系列应该都是已经读过的。本书作为其最新续作,延续了系列的高质量。并且面向C++ 11的新特性。相信现在很少有公司的项目不支持C++ 11了吧。很多时候,新特性还是面试C++岗位时必考的。作为新手,能够在一开始就接触到这本书是多大的福气呀。可以从职业生涯一始就培养起很多好习惯。作者把有哪些坑,该怎么做,不该怎么做都告诉你了。还把所以然也举了很详细的例子讲的很清楚。就像作者自己说的,他在说服你去按照他的item做。一时无法明白所有的原因也是很可能发生的,就像我一样,欠缺的项目经验导致我并不能理解所有的原因和特殊情况。我可是之前只看过C++ Primer,刚刚入门而已。但这不影响我学习所有的item。相信看完这本书,可以更好地指导我去实践。实践的过程中,可以反复查询对应的item。而有过一些实践后,再返回来读这本书,才能理解所有的原因,也能更加明白作者的良苦用心。
按照目前的速度,预计本周内读完吧。我先滚去干活了。再不干活,老板(导师)该不高兴了。
5月3号更新。
用了近2周时间,看完了本书。作为一本技术书,这种速度已经很快了。像C++ Primer我看了有5个月了,断断续续跳着看了不少,但实际上还不到一半。究其原因,主要有2点,1. 本书没有习题,2. 内容趣味性比较大。作者全程都在告诉你坑在哪。很多坑都是违反直觉的,也有一些是设计问题。
当然本书中也有一些瑕疵。由于水平有限,除了一些明显的问题,我可能并看不出“高级”的问题。比如,p201. 最后的代码示例的第一行,应该是typedef,而不是typede。
由于本书大多设计C++ 11的新特性,是Effective C++系列的续作,所以前面的书也是很有必要看的。毕竟实践中也不是只用新特性,C++98的坑也是需要知道的。从前看到精通C++更多的是以一种娱乐的心态来看待的。而现在,我认为C++是一门值得精通的语言。它的生产力是Java,Python等其他语言都无法替代的。
期待C++20的大更新。据说会解决很多痛点,比如官方的包管理系统。