第2章 用隐喻来更充分地理解软件开发

概念

隐喻描述了软件领域中各种特定的现象和事物。

如何使用隐喻

隐喻的作用更像是启示(启发、试探法),而不是算法。 * 启发和算法区别:距离最终解决方法的间接程度 * 启发:给予寻求答案的技术。 * 算法:直接解决问题的指导。

常见的软件隐喻

  • 软件中的书法:写作代码
    • 暗指开发程序就像写书信一般,从头到尾想到什么就写下什么。
  • 软件的耕作法:培植系统
    • 小步快走的方式:设计一部分,写一部分代码,做一点测试。
  • 软件的牡蛎养殖观点:系统生长
    • 增量式进行设计、编译和测试
    • 先做出一个简单可运行的版本,无需真实数据输入和处理,仅仅构建一个框架
      • 进一步,把虚假的类替换成真实的类,从本地数据转变从数据库获取数据等
  • 软件构建:建造软件
    • 详细研究软件开发中存在的诸多阶段,计划、准备以及执行,根据所建造软件的不同,做相应的调整。
      • 考虑软件架构、支撑性测试代码、构建、基础类以及分离代码
  • 应用软件技术:智慧工具箱
    • 编程知识越多,脑中的工具箱就会有更多的分析工具。
    • 工具箱————隐喻能够帮助你把所有的方法、技术以及技巧留在脑海中,在合适的时候拿出来使用。

要点

  • 隐喻是启示而不是算法。因此它们往往有一点随意(sloopy)。
  • 隐喻把软件开发过程与其他你熟系的活动联系在一起,帮助你更好地理解。有些隐喻比其他一些隐喻更贴切。
  • 通过把软件的构建过程比作是房屋的建设过程,我们可以发现,仔细的准备。是必要的,而大型项目和小型项目之间也是有差异的。
  • 通过把软件开发中的实践比作是智慧工具箱中的工具,我们又发现,每位程序员都有许多工具,但并不存在任何一个能适用于所有工作的工具,因地制宜地选择正确工具是成为能有效编程的程序员的关键
  • 不同的隐喻彼此并不排斥,应当使用对你最有益处的某种隐喻组合。