代码大全精粹(二)
第二章 利用隐喻对编程进行更深刻的理解
2.1 隐喻的重要性
很多伟大的科学发现都是从类比开始的,类比就是将不熟悉的事物和我们熟悉的事物进行比较,找到他们之间的功能点,然后通过我们的比较解释不熟悉的事物,这种方法称之为“模型化”。
模型的力量在于能提供生动形象的概念而易于被人接受。
但模型有好有坏,好的模型应该要简单,与其他模型关系密切,能解释大部分试验现象和观测现象。
2.2 如何使用软件隐喻
软件隐喻是启发式的方法,并不是公式,并不会给你提供直接的解决方法,它只是给你提供方向,但是方向正确与否还需要自己摸索,所有对模型理解的好坏便决定了你对软件开发理解的好坏。
2.3 通常的软件隐喻
下面我们来看一看对软件构建有哪些隐喻:
2.3.l 软件书写:写代码(Writing Code )
对于小项目来说还说的过去,但对现在的大多数项目是不合适的。
2.3.2 软件播种:生成系统(Growing a System )
很牵强。
2.3.3 软件珍珠培植法:系统积累(System Accretion )
是一种对增量开发的隐喻。
2.3.4 软件创建:建造软件(building software )
比较贴切,因为建造建筑与开发软件的很多步骤是相似的。
2.3.5 实用软件技术:智能工具箱(The Intellectual Toolbox )
对我们所掌握的方法和技术的类比。
2.3.6 复合隐喻(Combing Metaphors )
2.4 小结
·隐喻仅仅是启发,而不是公式,因此,它们更倾向于比较随便,无拘无束。
· 隐喻通过把软件开发与你所熟知的事情联系在一起,从而使你对其有更深刻的理解。
· 一些隐喻要好于其它隐喻。
· 把软件创建与建造建筑物类比,表明开发软件前要精心准备,并表明了大规模项目与小规模项目之间的差别。
· 认为软件开发实践是智能工具箱中的工具进一步表明,每个程序员都有许多自己的工具,没有任何一种工具
是万能的。为每件工作选择合适的工具,是成为一个优秀程序员的首要素质之一。