《代码大全》读书心得笔记第五部——代码改善
工欲善其事,必先利其器。
本文主要是解释通过代码优化,提升代码性能的操作;也主要是对所学知识的一个整理。
一、软件质量概述
我们在软件的开发过程应该需要对变更控制,有效地管理和控制变更是实现代码高质量的关键一步;我们要提升软件质量,还需要对结果进行量化,只有进行结果的量化才能有效地反馈计划的成功与否;在开发过程中,制作原型也是很重要的一步,原型是指开发出系统中关键功能的实际模型,构建原型能产生更完善的设计,更贴近用户的需求,以及更好的可维护性。软件质量的普遍原理就是改善质量以降低开发成本。
二、开发者测试
软件测试主要包括:单元测试、组件测试、集成测试、回归测试、系统测试。
- 开发者在编码的过程中推荐的测试方法
- 对每一项相关的需求进行测试,以确保需求都已经被实现
- 对每一个相关的设计关注点进行测试,以确保设计已经被实现。
- 用基础测试来扩充针对需求和设计的详细测试用例
- 使用一个检查表,其中记录着你在本项目迄今为止所犯的,以及在过去的项目中所犯的错误类型
测试技巧
- 等价类划分
- 边界值分析
- 采用手工检查的测试用例(简单的对数据进行手动计算和期望值做比对)
还有一些就是开发测试中的一些小tips:
- 错误并不是均匀分布在项目当中,还是符合28远程
- 应当在开发中通过工具加快自己开发的速度和准确性
三、调试
开发者在开发的同时还应当有相应的技巧对代码进行调试。
下面介绍查找代码缺陷的一些调试小技巧
- 逐步缩小嫌疑代码范围
- 对之前出现过缺陷的类和子程序保持警惕
- 检查最近修改过得代码
- 增量式集成
- 同其他人讨论问题
- 调试的时候一次只做一个改动
四、代码调整策略
首先我们需要搞懂的是影响代码的效率的几个低效之源
- 分页
- 输入/输出操作
- 系统调用
因此我们在开发过程,可以从这些角度进行优化。
那么我们应该如何去对性能进行调整,应该遵循以下这种方式,稳健地进行代码的性能提升
- 做性能调整之前先要保留调整之前的版本,这样子方便回退;
- 再者每进行一次调整就应该测试一次,观察性能有没有改善,如果没有,那么回退到调整之前的版本。
需要注意的是:性能测量应当要精确,应当用程序分配给程序的CPU时钟计算,而不是日期时钟
五、代码调节技术
主要介绍如何进行代码的优化方法。
主要讲提高代码运行速度的方法,同时对如何减小代码的资源占用给出建议
- 在知道答案之后停止判断
- 按照出现的频率来调整判断顺序
- 用查询表替代复杂表达式,如果存在若干个结果,我们可以通过直接将结果写入表中的方法来避免直接对结果的计算,从而减少开销,可以直接查表
- 使用惰性求职,即在需要该数据在计算,而不是一下子都计算出来
- 将判断外提,尽量减少在循环语句中的操作
- 将循环展开,也可以提升性能
- 设置哨兵值,也就是在得到所需要结果的时候能够及时跳出循环,而不是继续执行
- 把最忙的循环放在最内层
- 使用整型数而不是浮点数
- 使用缓存机制
- 小心系统函数,因为系统函数的开销是很大的
- 用低级语言重写代码