《C++ Common Knowledge 中文版》译序 尽管C++越来越像是“专家专用”的语言,精通它需要付出极大的努力,然而并非每一个人都需要成为C++语言专家 。对于大多数人而言,学习C++的目的是为了“致用”,而非研究语言本身。我们的精力应该放在有效地掌握编程必备知识上,以便能够胜任目标领域的软件开发。是的,职业程序员往往更应该是“领域专家”而非“语言专家”。 本书提供了C++程序员所必须具备的“常识”。 这里所说的“常识”并非意味着简单或平庸,而是指“必不可少”,事实上,有些内容相当高级,比如设计模式和泛型编程。本书对散布于许多其他C++书籍中的知识进行了精心挑选,最终浓缩成63个条款。每一个条款相对独立,可以随机查阅。许多条款内部还含有交叉索引,便于你加深对该主题的理解。 这些条款涉及主题范围较广,除了指针操作、面向对象、异常处理以及内存分配等主题外,对于现代C++编程技术亦有很好的描述,其中仅设计模式就占了好几个条款。除了一个总论性的条款外,另还具体介绍了Prototype、Factory Method、Command、Template Method等经典模式,而Trait、Policy以及智能指针亦可归入这个范畴。作者“短、平、快”式的介绍,可以使你迅速掌握这些常用模式的概念和用法。 现代C++程序员应该像熟悉面向对象编程那样熟悉模板和泛型编程。本书中,模板和泛型编程内容占了条款总数近三分之一,其中包括:类模板显式特化、模板局部特化、类模板成员特化、成员模板、嵌入的类型信息、模板的模板参数、模板实参推导、重载函数模板等等。这些都是进行泛型编程不可或缺的知识。 顺带一提,作者Steve Dewhurst是贝尔实验室C++元老之一,有着20多年C++应用经验,所解决的问题涉及多个领域,并是两款C++编译器的作者。他的文风一向简练明快,并不失尖锐。阅读本书,可以给你带来“拨开迷雾见青天”的感觉。 本着对国内C++应用现状的了解,我认为本书首先适合业界程序员用作快速参考。一些程序员项目经验不少,但对C++的使用仅限于一小套子集,而且往往是一套原始的子集。这本小册子可以快速弥补这方面的知识结构缺陷。作者奉行“有所为、有所不为”的指导思想,忽略了复杂而很少使用的细节,便于你直奔主题,抓住重点。此外,有了实战经验作为后盾,本书很容易上手。 对于已经系统地学习过一门C++课程的在校大学生来说,这本小书可以开阔你的眼界。如果你的C++基础尚不足以顺畅地阅读书中部分条款,读来如雾里看花,或因作者点到为止而感觉意犹未尽,你可以考虑选读“参考书目”中列出的书籍,它们大都有高品质的中文版。 在沉寂许久之后,一批优秀的C++新作终于陆续面世,我有幸参与翻译包括《C++ Common Knowledge》、《Imperfect C++》以及《C++ Template Metaprogramming 》等在内的几本佳作。希望在第一时间完成翻译的这本新书,能够给期待已久的您带来新鲜的快乐! 荣耀 |