2008-3月-13的归档

如果掌握一个库函数所需要的努力接近于编写应用程序的精力,程序员很可能为了方便而重新实现他们所需要的那部分库函数。

程序库的设计和实现是很困难的,设计者必须小心处理通用性,简单性,和有效性的问题。如果一个程序库例程和数据结构太通用了,就有可能导致使用困难。或者难以达到想要的目的。如果太简单了,可能不满足应用程序的需求。如果他们太容易混淆,编程者也不会使用。C语言库本身有一些容易混淆的例子,比如realloc函数。

                                                             David R. Hanson大师如是说。

项目经历过几次调整,基本上如Hanson所言,如果采用复杂的结构,就会让使用者感到困难,如果使用简单的结构,如果要满足需求的话,就必然有一系列的接口用与类似的功能。本身就是一种让人感到很困惑的事情。有时候,接口的设计者和实现者需要很充分的沟通才能理解一个函数的时候,那么不管沟通的结果如何,这已经是一个问题了。因为你的用户不可能付出这样的沟通和学习的成本。除非,你为微软公司工作(这也是为什么windows拥有大量混乱的API的一个原因)。

对于内部的实现来说,如果要在难于使用和容易混淆中选择其一的话,我会选择后者,因为可以通过沟通,测试,交流来减少这一点带来的影响,而前者,无论你多门谙熟这个接口和体系,都不可避免的带来生产力的下降。而且,低效的过程并不是悠闲的点根烟,而是更多地用十指敲击键盘。

 

提醒自己多看书。为此,不惜重金租一个适合看书的房子。明天开始搬家

Comments 沒有留言 »