20170930-构建之法:现代软件工程-阅读笔记
Posted 邢云淇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20170930-构建之法:现代软件工程-阅读笔记相关的知识,希望对你有一定的参考价值。
這部分筆記2作為課上老師課上內容的整理,大部分出自于ppt
好单元测试的标准:
- 应在最基本的功能/参数上验证程序的正确性
- 应由程序的作者来写
- 测试完毕后机器状态保持不变(tearDown)
- 要快(几秒而不是几分钟)
- 独立性-不依赖于别的测试(可人为构造数据)
- 应产生可重复,一致的结果
- 应覆盖所有代码路径
- 应集成到自动测试框架
- 应和产品代码一起保存维护
什么是效能分析?
使用工具对程序的效能进行分析以发现程序的效能瓶颈
效能分析的目标是什么?
有的放矢,改进程序
什么是效能?
程序所耗费的时间和内存,耗费的时间和内存越少越好
效能分析的种类
1.确定性分析(Deterministic Profiling)
方法:代码注入(将检测代码加入到每一个函数中)
2.统计分析(Statistical Profiling)
方法:抽样(没事瞅两眼,程序当前在运行哪个函数)
各自优缺点
1.抽样:无需改动程序,运行较快,无法得到精确数据与调用关系树
2.代码注入:需改动代码,运行时间长,数据精准,且会生成数据文件,同时也影响程序真实的运行情况
代码复审定义:看代码是否在“代码规范”的框架内正确的解决了问题
代码复审形式:
名称 |
形式 |
目的 |
自我复审 |
自己VS.自己 |
用同伴复审的标准来要求自己。不一定最有效,因为开发者对自己总是过于自信。如果能持之以恒,则对个人有很大好处。 |
同伴复审 |
复审者VS.开发者 |
简便易行 |
团队复审 |
团队VS.开发者 |
有比较严格的规定和流程,适用于关键的代码,以及复审后不再更新的代码覆盖率高——有很多双眼睛盯着程序,但效率可能不高(全体人员都要到会) |
代码复审的目的:
- 找出代码的错误:编码错误,不符合团队规范的地方
- 发现逻辑错误,程序可以编译通过,但是逻辑是错的
- 发现算法错误,如使用的算法不够优化,边界条件没有处理好
- 发现潜在的错误和回归性错误——当前代码修改导致以前修复的缺陷又重新出现
- 发现可能需要改进的地方
- 教育(互相教育)开发人员,传授经验,让更多的成员熟悉项目各部分的代码,同时熟悉和应用领域相关的实际知识
代码复审的步骤:
复审前
严格编译通过,测试过代码,提供新代码与文件差异分析工具
复审中
- 面对面、独立或其他方式
- 复审者可以在任何时候打断
- 开发者有义务给出详尽回答
- 结果需达成一致
复审后
开发者整理记录并解决问题
以上是关于20170930-构建之法:现代软件工程-阅读笔记的主要内容,如果未能解决你的问题,请参考以下文章