本文共 1342 字,大约阅读时间需要 4 分钟。
随着项目变得越来越大,质量问题出现的可能性就越大。这些质量问题可能是什么:错误太多,运行时间过长,内存使用率过高,难以理解/难以修改编码风格等等。这些质量问题通常会使程序用户不满意,开发速度变慢。不幸的是,你永远无法摆脱所有质量问题,但你可以通过以下几点来避免大部分质量问题。当然,这些解决方案需要花费很多时间,但是最好及时完成这类工作,而不要浪费与修复bug相同的时间。
在开始开发之前,您需要确保它100%清楚您的程序应该做什么。当然,在这里,您需要考虑需求之间的兼容性,或者是否可以实现所有要求,是否存在某些硬件限制?
说实话,大多数错误来自简单的误解:客户对功能的理解与开发人员不同。
这就是为什么以清晰的书面形式记录这些要求并让客户阅读并接受它们的原因。
如果要求明确,仍然不要从编码开始。首先考虑解决方案,关于如何实施?需要使用哪些算法?哪部分代码可以重用?可以使用哪些库?不同的组件和类如何相互通信?等等…
通过这种规划,您可以在将来找到并避免许多可能的问题。以文本和/或UML图的形式记录您的设计。
如果多个开发人员正在处理相同的代码,那么总是有一个编码指南,它定义了要使用的编码风格(函数和变量的命名,括号的使用等),这样你的代码就会有一个统一的风格 - 可读。
与其他团队成员一起进行设计和代码审查。他们可以轻松找到您的思维方式或代码中的错误。如果没有对此进行审核,请不要将任何代码合并。
使用静态代码分析工具。这些工具可以分析您的源代码而无需运行它。他们可以找到很多可能的问题,比如未初始化的变量,从不满足的条件,无法访问的代码部分等等。他们也可以检查编码风格。
为您的代码实现单元测试。一个好的单元测试可以快速运行并测试代码的一小部分(单元)。单元测试有助于确保在每次更改时您没有破坏已经正在运行的功能,并且它们可以帮助其他程序员了解您的代码的用途,因为从单元测试中,他们可以看到预期的行为是什么。
不要忘记对组件或系统进行更高级别的测试。这基本上是一个黑盒测试,所以你不是基于代码,而是根据要求。您可以轻松检查您的组件是否满足要求。也要经常考虑角落里的情况。这些测试也可以是手动或自动的。自动化测试的优势在于您可以随时运行测试。
使用CI系统(如Jenkins)设置持续集成服务器,让它在每次新更改的情况下每晚运行构建并检查代码。您还可以集成静态分析器和自动化测试,以便在每次提交后,如果您的软件正常工作,您将获得自动反馈。
在bug跟踪系统中跟踪已发现的错误(例如:Mantis)。对于每个错误,请记录如何重现它们以及它与预期行为的不同之处。如果修复了一个错误,您可以很快记录修复程序的解决方案,以避免将来出现同样的错误。使用这种方法,您永远不会忘记任何错误。
为了能够保持软件的性能,您需要定期测量其运行时间。为此,您可以使用任何分析工具。使用此方法,您还可以发现使用最多运行时的部分。您还需要检查工具的内存使用情况。出于这样的目的,总是尝试从计算的角度定义最困难的场景。
原文地址:
转载地址:http://ewzhj.baihongyu.com/