代码审查最佳实践

简介:

代码审查可以帮助提高代码质量,避免由于代码习惯而造成的 bug。下面列出的这些要点因该可以作为大部分代码审查的指导,如果是 Java 应用的话,这些建议应该被视作最佳实践。

文档
1. Javadoc 应该在每一个类和方法中添加。
2. 如果是修复某个 bug,应该添加 bug ID。
3. 走捷径的方法或者复杂的逻辑要有解释。
4. 如果代码会被公开,每个文件头都要标注版权信息。
5. 复杂的 HTML,JavaScript,CSS 应该包含文档。

功能
1. 如果类似的逻辑被使用了多次,应该把它写成一个帮助类,然后在多出调用。
2. 鼓励使用 API 而不是重复编写代码解决相同的问题。
3. 要强调代码的单元测试。
4. 任何新加的代码不应该破坏已有的代码。
5. 假如是 Web 应用,JSP 不应该包含 Java 代码。

安全
1. 任何代码都不能执行用户的输入,除非转义过了。这个常常包含 JavaScript 的 eval 函数和 SQL 语句。
2. 禁止那些在短时间内提交非常多请求的 IP。
3. 任何类,变量,还有方法都应该有正确的访问域。
4. 尽量避免使用 iframe。

性能
1. 所有数据库和文件操句柄在不需要的时候都应该被关闭。
2. SQL 语句的写法会导致性能千差万别。
3. 鼓励创建不可变(immutable)的类。
4. 类似的逻辑代码,尽量通过 if else 语句来实现更多的重用。
5. 尽量避免使用重对象(heavy objects)。
6. 如果是 Web 项目,请检查是否使用了合适的图片尺寸,CSS sprites 和浏览器缓存等技术。
7. 全局都需要的信息保存在 application context 中。

编码习惯
1. 没有被使用的变量要删除。
2. 针对不同的 Exception 要用不同的 catch 语句,而不是一个 Exception 解决所有问题。
3. 针对变量,方法和类要用相同的命名方法。
4. 常量应该被写在独立的常量类中。
5. 每行代码的尾部不要有多余的空格。
6. 对于括号,循环,if语句等等要用统一的格式。
7. 每一个单独的方法不应该超过100行。
8. 一个单独的语句不应该超过编辑器的可视区域,它可以被拆分成几行。
9. 检查 String 对象既不是null也不是空的最好方法是 if(“”.equals(str))
10. 假如类有很多成员变量,并且实例化的时候只需要少数变量传入的话,最好使用静态工厂方法,而不是重载构造函数。
11. 给方法添加适当的访问控制,而不是所有都是 public。
12. 遵守项目中使用的框架的最佳实践建议,例如 Spring,Struts,Hibernate,jQuery。

以上的某些注意点可以通过静态代码检查工具完成,例如 CheckStyle,FindBugs 和 JTest。

 

原文链接OSChina.NET 编译

目录
相关文章
|
2月前
|
监控 安全 测试技术
提升软件测试效率:探索持续集成的最佳实践
在现代软件开发过程中,持续集成(CI)已成为提高软件质量和测试效率的关键实践。通过将代码库的每次提交自动构建和测试,CI 帮助团队及时发现问题,减少手动测试的负担。本文探讨了如何有效实施持续集成来优化软件测试流程,并提供了一些实用的策略和工具建议,以帮助开发团队更高效地运作。
71 2
|
6月前
|
设计模式 人工智能 测试技术
深入探究持续集成中的自动化测试策略
【5月更文挑战第3天】 在现代软件开发实践中,持续集成(CI)已成为提高开发效率、确保代码质量和加速产品上市速度的关键因素。自动化测试作为CI流程的核心组成部分,它确保了快速的反馈循环和高质量的构建。本文将探讨在持续集成环境中实施高效自动化测试的策略,包括测试用例的优化、测试环境的管理、以及如何整合最新的测试工具和技术。通过具体案例分析,我们将了解如何构建一个既灵活又健壮的自动化测试系统,以支持不断变化的软件开发需求。
|
敏捷开发 测试技术 持续交付
软件开发过程中的最佳实践和代码质量评估
在软件开发过程中,采用最佳实践和评估代码质量对于确保软件的稳定性和可维护性至关重要。通过明确的需求、合理的开发流程、良好的代码规范以及严格的代码评估,我们可以降低软件开发过程中的风险,并提升开发效率和软件质量。
712 2
|
SQL 安全 测试技术
如何进行高效的代码审查
代码审查是软件开发过程中至关重要的一环。它是指由开发团队中的其他成员对代码进行检查,以确保代码的质量和一致性。 代码审查可以帮助发现潜在的问题,例如内存泄漏、安全漏洞或性能问题。通过及早发现这些问题,可以避免它们在后期的软件开发过程中变得更加复杂和昂贵。
181 0
|
XML 安全 Linux
C++代码审查工具Cppcheck和TscanCode
C++代码审查工具Cppcheck和TscanCode
|
安全 jenkins 程序员
代码审查的必要性和最佳实践
代码审查的必要性和最佳实践
278 0
代码审查的必要性和最佳实践
|
开发者
聊聊软件开发的代码审查
聊聊软件开发的代码审查
聊聊软件开发的代码审查
|
机器学习/深度学习 算法 安全
一个代码审查规则如何将我的团队变成了梦之队
  函数式编程已经存在了六十年了,但是到目前为止,它并没有停止克服面向对象编程的普遍使用。 随着机器学习和大数据的爆炸性增长,由于可以并行化纯函数的简单性,函数式编程正变得越来越流行。 数据分析任务和工作流的代码也更易于遵循,测试和维护,使用功能范式有助于日后的使用。   甚至像Java和Python这样的面向对象的编程语言也从内置于地图,过滤器和简化功能的功能性编程中采用了巨大的概念。 它们还具有声明纯内联lambda函数以及创建一等和高阶函数以将函数作为参数传递的功能。   简而言之,函数式编程需要为固定变量构建纯函数并通过其响应更改状态。 相反,其他编程语言具有通过更改程序中变量引用
140 0
|
程序员
加强管理能提高代码质量吗?
代码质量是咱们程序开发中永远的一个痛,提升代码质量有很多种方式,强化管理是一种很常见的方式,这里咱们就聊聊,所谓的管理,真的是提升代码质量最有效的方式吗? 外包团队进行代码实现,可以吗? 很多企业喜欢将系统的代码实现细节交由外包团队处理,声称只要产品设计的合理,只要架构合理,只要代码规范合理,代码的实现找谁实现都是一样的,所以干脆找外包团队来实现,这应该是很多非互联网公司,特别是传统企业的思路。
1291 0