20170930-构建之法:现代软件工程-阅读笔记

Posted 邢云淇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20170930-构建之法:现代软件工程-阅读笔记相关的知识,希望对你有一定的参考价值。

這部分筆記2作為課上老師課上內容的整理,大部分出自于ppt

 

好单元测试的标准:

  1. 应在最基本的功能/参数上验证程序的正确性
  2. 应由程序的作者来写
  3. 测试完毕后机器状态保持不变(tearDown)
  4. 要快(几秒而不是几分钟)
  5. 独立性-不依赖于别的测试(可人为构造数据)
  6. 应产生可重复,一致的结果
  7. 应覆盖所有代码路径
  8. 应集成到自动测试框架
  9. 应和产品代码一起保存维护

 

什么是效能分析?

使用工具对程序的效能进行分析以发现程序的效能瓶颈

 

效能分析的目标是什么?

有的放矢,改进程序

 

什么是效能?

程序所耗费的时间和内存,耗费的时间和内存越少越好

 

效能分析的种类

1.确定性分析(Deterministic Profiling)

方法:代码注入(将检测代码加入到每一个函数中)

2.统计分析(Statistical Profiling)

方法:抽样(没事瞅两眼,程序当前在运行哪个函数)

 

各自优缺点

1.抽样:无需改动程序,运行较快,无法得到精确数据与调用关系树

2.代码注入:需改动代码,运行时间长,数据精准,且会生成数据文件,同时也影响程序真实的运行情况

 

代码复审定义:看代码是否在“代码规范”的框架内正确的解决了问题

代码复审形式:

名称

形式

目的

自我复审

自己VS.自己

用同伴复审的标准来要求自己。不一定最有效,因为开发者对自己总是过于自信。如果能持之以恒,则对个人有很大好处。

同伴复审

复审者VS.开发者

简便易行

团队复审

团队VS.开发者

有比较严格的规定和流程,适用于关键的代码,以及复审后不再更新的代码覆盖率高——有很多双眼睛盯着程序,但效率可能不高(全体人员都要到会)

 

代码复审的目的:

  1. 找出代码的错误:编码错误,不符合团队规范的地方
  2. 发现逻辑错误,程序可以编译通过,但是逻辑是错的
  3. 发现算法错误,如使用的算法不够优化,边界条件没有处理好
  4. 发现潜在的错误和回归性错误——当前代码修改导致以前修复的缺陷又重新出现
  5. 发现可能需要改进的地方
  6. 教育(互相教育)开发人员,传授经验,让更多的成员熟悉项目各部分的代码,同时熟悉和应用领域相关的实际知识

 

代码复审的步骤:

复审前

严格编译通过,测试过代码,提供新代码与文件差异分析工具

 

复审中

  1. 面对面、独立或其他方式
  2. 复审者可以在任何时候打断
  3. 开发者有义务给出详尽回答
  4. 结果需达成一致

 

复审后

开发者整理记录并解决问题

 

以上是关于20170930-构建之法:现代软件工程-阅读笔记的主要内容,如果未能解决你的问题,请参考以下文章

20170930-构建之法:现代软件工程-阅读笔记2

《20170930-构建之法:现代软件工程-阅读笔记》

20170930-构建之法:现代软件工程-阅读笔记

《20171005-构建之法:现代软件工程-阅读笔记》

《20171030-构建之法:现代软件工程-阅读笔记》

《2017 0907-构建之法:现代软件工程-阅读笔记》