第2章 用隐喻来更充分地理解软件开发
概念
隐喻描述了软件领域中各种特定的现象和事物。
如何使用隐喻
隐喻的作用更像是启示(启发、试探法),而不是算法。 * 启发和算法区别:距离最终解决方法的间接程度 * 启发:给予寻求答案的技术。 * 算法:直接解决问题的指导。
常见的软件隐喻
- 软件中的书法:写作代码
- 暗指开发程序就像写书信一般,从头到尾想到什么就写下什么。
- 软件的耕作法:培植系统
- 小步快走的方式:设计一部分,写一部分代码,做一点测试。
- 软件的牡蛎养殖观点:系统生长
- 以增量式进行设计、编译和测试
- 先做出一个简单可运行的版本,无需真实数据输入和处理,仅仅构建一个框架
- 进一步,把虚假的类替换成真实的类,从本地数据转变从数据库获取数据等
- 软件构建:建造软件
- 详细研究软件开发中存在的诸多阶段,计划、准备以及执行,根据所建造软件的不同,做相应的调整。
- 考虑软件架构、支撑性测试代码、构建、基础类以及分离代码。
- 详细研究软件开发中存在的诸多阶段,计划、准备以及执行,根据所建造软件的不同,做相应的调整。
- 应用软件技术:智慧工具箱
- 编程知识越多,脑中的工具箱就会有更多的分析工具。
- 工具箱————隐喻能够帮助你把所有的方法、技术以及技巧留在脑海中,在合适的时候拿出来使用。
要点
- 隐喻是启示而不是算法。因此它们往往有一点随意(sloopy)。
- 隐喻把软件开发过程与其他你熟系的活动联系在一起,帮助你更好地理解。有些隐喻比其他一些隐喻更贴切。
- 通过把软件的构建过程比作是房屋的建设过程,我们可以发现,仔细的准备。是必要的,而大型项目和小型项目之间也是有差异的。
- 通过把软件开发中的实践比作是智慧工具箱中的工具,我们又发现,每位程序员都有许多工具,但并不存在任何一个能适用于所有工作的工具,因地制宜地选择正确工具是成为能有效编程的程序员的关键。
- 不同的隐喻彼此并不排斥,应当使用对你最有益处的某种隐喻组合。