首页 > 代码库 > 《构建之法》第二次随笔

《构建之法》第二次随笔

  阅读了《构建之法》第一章中软件工程的概论,我学习到了“软件=程序+软件工程”这个黄金公式,并且对软件工程充满了兴趣和信心。但是,一个好的软件工程开发团队需要首先确保团队里的每个成员是合格的工程师,为此我们得先普及一些基本概念和技术,即单元测试、回归测试和效能分析工具。书的第二章讲述了个人技术和流程,给我们着重介绍了PSP(个人软件开发流程)。

  绝大部分软件都是由多人合作完成的,大家的工作相互有依赖关系。怎么才算一个好的单元测试?单元测试应该准确、快速地保证基本模块的正确性:1.单元测试应该在最基本的功能/参数上验证程序的正确性;2.单元测试必须由最熟悉代码的人来写;3.单元测试之后,机器状态保持不变;4.单元测试要快;5.单元测试应该产生可重复、一致的结果;6.独立性;7.单元测试应该覆盖所有代码路径;8.单元测试应该集成到自动测试的框架中;9.单元测试必须和产品代码一起来保存和维护。针对一个Bug Fix,我们也要做Regression Tset,目的是:1.验证新的代码的确改正了缺陷;2.同时要验证新的代码有没有破坏模块的现有功能,有没有Regression。所以对于“回归测试”中的”回归”,我们可以理解为“回归到以前不正常的状态”。我们需要经过充分分析之后才能进行优化,否则也许可能就会事倍功半。卡内基梅隆大学的能力成熟度模型,是用来衡量一个团队能力的一套模型,CMU的专家们针对软件工程师也有一套模型,叫Personal Software Process(PSP)。

  软件工程需要我们自己去创新实践,多加练习来锻炼自己的编程基本功,实践一些最简单的项目例如wc。正如谚语所说:不能一口吃成个胖子。罗马不是一天建成的。同样,一个功能完整的程序也不是一蹴而就的,我们要把大人物划分为可操作的小任务,排序任务的次序。在设计程序的时候,我们要保证程序的质量,那如何保证呢?是回归测试。

  编程可以是一门理论,也可以是一门工程,还可以是一门手艺,我们要学好编程。 读了《构建执法》这本书使我受益匪浅,收获颇深,对现代软件工程有了更深一步的了解。

《构建之法》第二次随笔