重要的研发成果常常产自类比。通过把你不太理解的东西和一些你较为理解、且十分类似的东西作比
较,你可以对这些不太理解的东西产生更为深刻的理解。这种使用隐喻的方法叫做“建模“。
一个软件隐喻像是一盏照明灯,它会告诉你如何寻找答案,隐喻的作用更像是启发,而不是算法。应
该用隐喻来提高自己对编程问题和编程过程的洞察力,用它来帮助自己思考编程过程中的活动,想像出更好
的做事方法。
常见的软件隐喻:
1、软件中的书法:写作代码
这一隐喻暗示着开发程序就像写一封有缘由的信一样,坐下来,拿出文房四宝,从头到尾就写
完了。对于个人规模的工作甚至是小型项目,该隐喻就足够了。
2、软件的耕作法:培植系统
应当将创造软件想像成类似播种和耕作的情形。做一点设计,写一段代码,做一点测试,将成
果一点点添加。该隐喻的弱点在于它暗示了人们将无法对开发软件的过程和方式进行直接的控制。
3、软件的牡蛎养殖观点:系统成长
杜蛎制造珍珠的过程,逐渐地填增微量的碳酸钙。这里并不是说要你学会如何从水流中夹带的
沉积物中提炼出代码来,而是说你需要学会如何一次为软件增加一个小部分。
4、软件构造:建造软件
与“写作”软件或者“培育”软件而言,“建造”软件的图景就更加有用了。它和软件生长的概念是相通
的,且提供了更详细的指引。建造软件这一说法暗示了软件开发中存在着诸多阶段,如计划、准备及
执行等,根据所建筑软件的不同,这些阶段的种类和程度可能会发生变化。