1、隐喻是启示而不是算法。因此它们往往有一点随意
2、隐喻把软件开发过程与其他你熟悉的活动联系在一起,帮助你更好地理解。
3、有些隐喻比其他一些隐喻更贴切
4、通过把软件的构建过程比作是房屋的建设过程,我们可以发现,仔细的准备是必要的,
而大型项目和小型项目之间也是有差异的。
5、通过把软件开发中实践比作是智慧工具箱中的工具,我们又发现,每位程序员都有许多工具,但并不存在
任何一个能使用于所有工作的工具,因地制宜地选择正确工具是成为有效编程的程序员的关键
6、不同隐喻彼此并不排斥,应当使用对你最有益处的某种隐喻组合。
------------------《代码大全2》
个人理解:
隐喻就像一种比喻,能让自己更清楚明了的理解和向别人讲述软件构建和实践的过程。
多看些别人的对软件过程的隐喻,可以开拓编程的视野,比如工具箱,因地制宜选择最适合的工具是很重要的
隐喻是一种启发,告诉你如何去寻找答案,而不像算法告诉你到哪里去寻找答案
常见的隐喻;
建造:在生长的基础上,提供了更详细的指引,如计划、准备、执行等。
系统生长:通过外在的增加或吸收而逐渐的生长或变大
培植(耕作):一次设计系统的一小部分、并将成果一点点添加到整个系统中
写作:最原始的隐喻,暗示开发一个程序就像写一封有缘由的信一样,从头写到尾就完了,不需要规划。
其它:科学、艺术、过程、游戏、集市