【高效代码调错系列】——宏观概况
2017-11-26 15:08
204 查看
前言
如何避免错误的产生
错误发现后我们应该怎么做
错误解决后我们又该做些什么
总结
附录
此系列博客共分为以下三个主题:
下面是小编总结的经验思路:
(1)严格按照编码规范进行代码的编写。
(2)使用静态代码分析工具进行代码分析,检测一些潜在的错误。
(3)对代码进行单元测试,以保证代码的稳定性。
注:确保每次提交代码时,只提交一个逻辑,方便出现问题后能够及时恢复完整正确的代码。
做这些的目的就是为了能够保证我们提交到代码库中的代码是高质量的并且能够稳定运行的。
(1)重现问题
(2)诊断问题(先分析问题,是代码问题,还是环境问题?提出假设,并进行逐一验证)
(3)对问题进行修复(维持代码的整体质量,避免引入回归)
(1)在过程的哪个点上产生了错误?
(2)出什么错了?
确保同样的问题不会再发生。
(1)自动检查,其他地方是否有同样的问题。
(2)重构代码以避免不当的使用。
【高效代码调错系列之代码规范】——写优雅的代码
【高效代码调错系列之代码规范】——让软件学会自己寻找缺陷
【高效代码调错系列之静态代码分析】——将错误扼杀在摇篮
如何避免错误的产生
错误发现后我们应该怎么做
错误解决后我们又该做些什么
总结
附录
前言
做了很多项目,遇到了很多问题,发现写代码其实很简单,不会花我们很长时间,而我们花费的大部分时间大多在调错,解决问题中。为了提高我们的软件质量,工作效率。所以,小编根据自己多年的项目经验,以及阅读的书籍,整理了一份解决错误的套路,供大家参考。此系列博客共分为以下三个主题:
如何避免错误的产生?
避免错误的产生,首先我们得知道,都有哪些类错误,它们又都处于哪个阶段。例如说,编译时错误,这个我们在使用IDE进行编码的时候,IDE会给我们检测出来并提示我们进行处理,一般是一些语法错误;运行时错误,这些错误是在编译时期检测不出来的,要等程序运行的时候才会出现错误,具有偶然性,是根据我们的输入数据来决定是否会出现错误的。编译时错误,IDE可以帮我们检测,那我们怎样做才可以避免运行时错误的发生呢。下面是小编总结的经验思路:
(1)严格按照编码规范进行代码的编写。
(2)使用静态代码分析工具进行代码分析,检测一些潜在的错误。
(3)对代码进行单元测试,以保证代码的稳定性。
注:确保每次提交代码时,只提交一个逻辑,方便出现问题后能够及时恢复完整正确的代码。
做这些的目的就是为了能够保证我们提交到代码库中的代码是高质量的并且能够稳定运行的。
错误发现后,我们应该怎么做?
错误发现后,我们先不要着急使用IDE进行调试,而应该先去分析问题。下面是通过阅读《软件调试修炼之道》,再加上自己的经验总结的一个分析步骤。(1)重现问题
(2)诊断问题(先分析问题,是代码问题,还是环境问题?提出假设,并进行逐一验证)
(3)对问题进行修复(维持代码的整体质量,避免引入回归)
错误解决后,我们又该做些什么?
错误解决之后,我们应该花点时间来反思一下,对根本原因进行分析。(1)在过程的哪个点上产生了错误?
(2)出什么错了?
确保同样的问题不会再发生。
(1)自动检查,其他地方是否有同样的问题。
(2)重构代码以避免不当的使用。
总结
我们千万不要在开发前期节省时间,省去一些步骤,而在开发后期的时候花费大量的时间去解决问题。遇到了任何问题,都要冷静的思考,先分析清楚了,再去执行。附录
系列博客:【高效代码调错系列之代码规范】——写优雅的代码
【高效代码调错系列之代码规范】——让软件学会自己寻找缺陷
【高效代码调错系列之静态代码分析】——将错误扼杀在摇篮
相关文章推荐
- 程序设计基石与实践系列之编写高效的C程序与C代码优化
- 【高效代码调错系列之代码规范】——写优雅的代码
- 高效程序员系列(扔掉旧代码)
- 程序设计基石与实践系列之编写高效的C程序与C代码优化
- 【高效代码调错系列之静态代码分析】——将错误扼杀在摇篮
- [JavaScript] JavaScript进阶系列 - 使用require高效组织代码结构
- 【高效代码调错系列之代码规范】——让软件学会自己寻找缺陷
- 高效程序员系列(保持写代码的动力)
- 高效代码审查的八条准则和十个经验
- 如何实现ListView高效分页代码
- 通用高效分页存储过程代码
- 在Topo系统下结合Svn开展高效代码检视
- 支持 Nullable的DataReader高效转实体代码
- 深入理解JavaScript系列(45):代码复用模式(避免篇)
- SpringMVC学习系列-后记 结合SpringMVC和Hibernate-validator,根据后台验证规则自动生成前台的js验证代码
- 数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案
- 【LibUIDK界面库系列文章】代码风格
- 网游服务器系列之三:定制Linux内核实现基于QoS高效数据广播
- 高效代码审查的十个经验
- 编写高效的C程序与C代码优化