译者的话
这是一本令我受益匪浅的书,我相信很多读者也会有相同的感受。
重用-可以说是一个永恒的话题,只要有软件工程的继续存在,重用就必定会有一席之地,也会成为软件工程师或者程序员们关注的话题。重用的历史和重要性毋庸多言,几乎每本软件工程的书都会叙述重用的概念和大体内容;但是,现今关于重用的中文书,大多对重用的理论和优点介绍得非常详细,而很少涉及到如何设计与编写可重用代码的内容,给人一种隔靴搔痒、不着痛处的感觉。所以说,对于这本书,看完之后,我想说的一句话就是:"它终于来了。"
重用有3个基本的问题,一是必须有可以重用的对象,二是所重用的对象必须是有用的,三是重用者需要知道如何去使用被重用的对象。解决好这3个方面的问题才能实现真正成功的软件重用。本书的大体内容就是依据前面这两个问题,从类的层次体系设计、扩展性、效率、兼容性、移植性等方面详细叙述了可重用代码的设计原则,深入浅出地讨论了当重用性和上述的诸多特性发生冲突的时候,应该如何取舍,从而达到程序员或者程序库设计者预期的目的;而且,本书的第11章还针对上面的第3个问题给出了编写可重用代码文档的要求,为成功的重用代码设计加上了不可或缺的一环。书中的具体内容第1章已经详细给出,这里我就不再赘述。
本书的写作风格很有特色,它并不会教你要如何做,也不会给你叙述哪种设计与编码才是最佳的途径-金无足赤,永远为最佳的选择本来就是子虚乌有。作者凭借多年的编译器开发和可重用代码设计的经验,详细地阐述了在编写可重用代码的过程中一定会碰到的许多抉择,在阐述中还重点指出了许多会被普通开发者忽略的考虑因素;然后在不同的上下文中详尽地比较各种设计选择的优劣,让读者知其然更知其所以然,给致力于设计和编码的程序员点亮了一盏通向成功重用的明灯。
对于此书,我不敢说它弥补了国内重用书籍的空缺,但就程序库设计方面而言,它确实有着不可替代的作用,衷心希望每个致力于程序库设计的读者,都可以从此书获益。
翻译过程中,我尽量以平实无华的语言来对待这本技术书籍;在力求技术准确的同时,更加注重上下文的连贯性,希望我的努力能给你带来一个顺畅的阅读过程。
译者
2002年10月