中文版序
最早知道这本书,是在Scott Meyers著名的More Effective C++(www.cppentry.com) 书籍推荐列表里。在谈到这本书的时候,Meyers说:"有意撰写程序库的人,若没有读过此书,那只能是匹夫之勇。"而Francis Glassborow则说,大多数程序库设计者应该搬过小板凳来,像小学生那样学习这本书。
用C++(www.cppentry.com)的人,历来以能撰写出重用性好的程序库而引以为傲。然而,撰写可用的程序库已属不易,撰写可重用的程序库更是专家级任务,以至于有人感叹道,重用是C++(www.cppentry.com)程序员们的"圣杯"-总在嚷嚷着,却始终得不到。其实何止C++(www.cppentry.com)如此,在其他语言中,重用又何尝不是令人胆怯的挑战!只不过C++(www.cppentry.com)编译语言的本质与人们对C++(www.cppentry.com)程序性能的严苛要求,使得用C++(www.cppentry.com)编写可重用组件更为困难。这样一个艰难的主题,敢于涉足已经是非常有勇气了,而能得到Meyers等人如此高的评价,则非C++(www.cppentry.com)中的顶尖人物倾力而为不可。事实上,作者Martin Carroll和Margaret Ellis正是这样的顶尖人物。他们是AT&T实验室的研究人员,从20世纪80年代中期开始就处于C++(www.cppentry.com)演化和发展的中心,长期从事编译器和基础库的开发工作,积累了普通程序员无法比拟的经验。特别值得一提的是,Margaret Ellis曾与Bjarne Stroustrup合作撰写了C++(www.cppentry.com)早期的经典著作ARM(The Annotated C++(www.cppentry.com) Reference Manual),是C++(www.cppentry.com)社群里最受尊敬的巾帼英雄之一。在这本书中,两位作者把自己多年来撰写可重用库的经验和教训高浓度地总结起来,给出了很多具有深刻洞察力的建议。虽然从此书英文版出版至今已有几年的时间,但是书中的真知灼见仍然值得我们一再学习体会。我甚至认为,即使你不打算撰写程序库,甚至不是C++(www.cppentry.com)程序员,认真阅读这本书都是很有好处的。毕竟这本书来自具有丰富实战经验的顶尖专家之手,而这样的书实在是太少了。
译者陈伟柱是我的好朋友,在C++(www.cppentry.com)、Java、模式和重用等方面都有比较深刻的理解。他对待此书翻译工作的态度极为认真,正是这一点令我对这本书的翻译质量很有信心。原书作者是以技术扎实而谦恭简和著称的,他们的文字也是平实简练而深富内涵的,我认为伟柱的为人和他的文字也具有这样的特点。因此,我衷心希望读者也能以平实谦和的心态认真、扎实地阅读和学习此书,并祝愿大家能有满意的收获。
孟岩
2002年10月于北京