这本书买了很久了,可能是研究生的时候凑单买的,从来没有翻过。前两天看一个书单推荐这本书,于是拿来看看讲的什么内容。
这本书是个外国人写的,计算机类的书我们一般迷信外国人,外国人也从来没让我们失望过,这本书也不例外。
接口之所以重要,是因为接口定义了模块的行为,是模块的边界所在。这本书可以看作是接口设计的范本。书中介绍的接口种类非常多,适用于几乎所有接口类型。这里的接口不是组件间接口,也不是跨领域跨子系统的接口,这些接口因为理解的一致性和尽量少的数据暴露,一般采用标准类型接口。书中的接口指模块内部不同层次、不同实体之间的交互方式,或者是编写的底层函数用于给高层提供基础功能,如内存管理、链表、动态数组、字符串等。
需要关注的是,书里采用了一套基于C语言的自定义的语言规则,翻译成了“文学程序”(不是伪代码?),所以需要仔细阅读第一章的引言。说不清楚为什么,总觉得这本书翻译得非常差劲,很多地方都与主流描述方法不同。有些地方可能需要用中文重写,翻译者只是照着原文直接翻译。第二章接口与实现是对本书所描述的内容一个非常专业的介绍,看第二章的时候能感觉出来,这本书原本可能不是为了出书的,而可能是作者写来做培训或者其他的小册子,因为从书的角度,它缺少一个脉络,如果读着不自己总结,无法理清楚章节内部的逻辑关系,章节与章节之间的逻辑关系。
回到书的内容本身,看完前两章之后就可以不用按部就班地看了,可以挑一两个章节学习。比如现在对内存管理感兴趣,可以直接跳到对应章节。书中午的代码非常全,从接口到实现都是可以“照抄”的,照抄加了引号,是因为所谓照抄的代码的前提是对模块对外服务的理解,在此基础上可以学习作者的封装思想。
一句话总结:从内容上来说,这是一本非常优秀而且实用的工具书。