《Imperfect C++ 中文版》译序 千万不要被书名所误导!这是一本拥抱(而非诋毁)C++的著作。它有着独特的定位:为解决C++语言自身各种“不完美”而为现实世界中的程序员提供切合实际的解决方案。 世界上没有完美的编程语言,C++亦然。在本书中,Matthew Wilson不但为我们指出C++中诸多不完美之处,还提供了经过实践检验的应对技术和技巧,便于我们利用“不完美的C++”编写出近乎完美的代码——强建、高效、灵活、可移植、优雅的代码,而这些代码在声称为“完美的语言”中往往更难实现。 本书对给出的每一个“不完美”都进行了有细致的探讨:为什么说它是一个“不完美”?对其修复的指导思想是什么?有时候只是告诫你避免做些什么,给出一些约束和建议,更多的时候则为你提供现实的解决方案,这些方案往往离不开对现代模板编程技术的使用。 书中包含有许多你未曾听过或用过的技术,有些属于作者的创新,有些则是对现有技术的精化,二者均被提升到“范式”的高度。例如:应用程序二进制接口(ABI)、垫片(Shim)、饰面(Veneer)、螺栓(Bolt-in)、区间(range)、属性(property)等。不少主题难度较大,此前为其他C++专家所忽略,探讨它们除了需要勇气外,第一手经验更是不可或缺。作为STLSoft库的主创者,Matthew在举例时,Windows API、MFC、ATL、COM以及UNIX等都是信手拈来。 除了丰富的实践、扎实的理论以及缜密的逻辑外,Matthew的文笔流畅,语言幽默,说理直接,字里行间流露出过人的自信,使得本书极具阅读趣味。 本书具有一定的阅读门槛,目标读者为中、高级职业C++程序员。书中展示的代码示例、编程技术往往在几款甚至十几款编译器上进行验证,辅以表格对其各色特性加以比较,并针对不同编译器所表现出的差异性而给出高效、可移植的解决方案——就像很多现实世界中的C++程序员应该做(而没做到)的那样。如果你正在寻找一本真材实料的“C++实战”参考书,这一本不应该让你失望。 本书中文版由我和刘未鹏先生合译。未鹏是国内C++新锐,思维敏捷,技术、文笔俱佳,我很高兴与他合作。 感谢陈冀康编辑給予的理解和支持。感谢朱艳的照料和热爱。荣珅则常常用他的小拳头乱砸书房的门,并大声地叫“爸爸”,这种干扰让我获得了必不可少的休息时间。 既有的经典名著使得C++新书问世难度加大,后来者若无过人之处就很难引起C++社群的注意,《Imperfect C++》、《C++ Common Knowledge》以及《C++ Template Metaprogramming 》等佳作一经问世便得到广泛的关注。作为译者(之一),我祝愿它们能够带给各位久违的快乐! 荣耀 |