`

关于代码审查的几点建议

 
阅读更多

via: www.infoq.com/cn/news/2014/09/code-check

 

Code Review即代码审查是软件开发中常用的手段,它和QA测试相比,更容易发现架构以及时序相关等较难发现的问题,还可以帮助团队成员统一编程风格,提高编程技能等。代码审查被公认为是一个提高代码质量的有效手段。目前很多开发团队虽然进行了代码审查,但是他们可能没有有效、合理的进行代码审查,以致没有很好达到代码审查的目的。近日,BIDS 贸易科技有限公司的CTOJim Bird 总结了关于代码审查的一些建议。现对这些建议进行了一个全面的梳理,具体内容如下:

1、代码审查不要太正式

目前,有很多研究表明正式代码的评审会议会延误开发进度和增加开发成本。尽管可能只需要几周的时间进行代码评审,但是只有4%的缺陷是在会议期间发现的,其余所有的权限是靠代码审查者自己发现和处理的。只有采用简短、轻量的代码审查才是有效的发现问题在代码检查,这样的代码审查更适合迭代、增量开发,为开发者提供更快的反馈。

2、代码审查人员要尽可能少

并不是代码审查人员越多就能发现越多Bug,只有合理数量的审查人员才能够更加有效的地审查代码。研究表明,平均来说,一个代码审查人员能够发现Bug的一半, 第二审稿人会发现剩余新问题的一半。多个人同2个人发现问题的数量没有太大差异,故两个人进行代码审查是比较合适的。另外,还由于社会惰性的存在,更多代码审查人员意味着多人在寻找同样的问题,使得审查人员积极性、主动性不高,更加不利于代码审查工作的有效进行。

3、需要有经验的开发者进行代码审查

研究充分表明,代码审查的有效性依赖于审查人的技能和对问题领域以及代码的熟悉程度。如果让新加入团队的成员进行代码审查的话,并不利于他们的成长,且对于代码审查来说也是一种非常糟糕的方式。只有擅长阅读代码、程序调试、非常熟悉语言、框架、对应的问题的人才最适合代码审查,才能够高效发现问题、提供更多有价值的反馈。新的、没有经验的开发者只适合检查代码的变化和使用静态分析工具并和另一位评论人员共同代码审查。

4、实质重于方式

完全按照编码规格标准进行的代码审查是一个浪费开发人员宝贵时间的方式。代码审查的实质是确认代码能够正确的运行,发现安全漏洞、功能错误、代码错误、设计失误、安全验证和防范、恶意代码等。而不是单单按照编码规范完全保证代码格式一致,而丢失了代码审查的实质。

5、合理安排Bug 和可维护性问题代码的审查时间分配

发现代码中的Bug是很难的,在别人的代码找到的Bug更难。研究表明,代码审查人员找到Bug和可维护性、可读性问题的比例是25:75,故消耗在了代码可读性、可维护性等问题上和Bug上的代码审查时间应该合理分配。

6、尽量使用静态代码分析工具以提高审查效率

工欲善其事,必先利其器。静态代码分析工具可以帮助程序开发人员自动执行静态代码分析,快速定位代码隐藏错误和缺陷;帮助代码设计人员更专注于分析和解决代码设计缺陷;显著减少在代码逐行检查上花费的时间,提高了软件可靠性并节省软件开发和测试成本。

7、二八定律处理高风险代码

审查所有的代码并没有太大的意义,应该把审查的重点放在高风险的代码和容易引起高风险的修改或者重构的代码上。旧而复杂、处理敏感数据、处理重要业务逻辑和流程、大规模重构以及刚加入团队的开发者实现的代码都是审查的重点。

8、从代码审查中尽量获得最大的收益

虽然代码审查是发现Bug、提高开发人员代码编写质量的重要方式,但是它也增加了代码开发成本。如果没有合理、有效的进行代码审查,将有可能影响项目进度和破坏团队文化。故我们要紧抓代码审查的实质性问题,尽早和经常性的进行非正式的代码审查;选择精而少的人员并运用二八定律审查高风险的代码,同时,还需要合理分配Bug以及可维护性问题的代码审查时间,才可以从代码审查中获得最大的收益。

分享到:
评论

相关推荐

    Java代码审查工具

    5. **IntelliJ IDEA** 和 **Eclipse** 的内置代码审查功能:这两个流行的Java IDE都提供了内置的代码审查工具,允许开发者进行代码检查,发现潜在问题,并提供改进建议。 6. **Crucible**:Atlassian的Crucible是一...

    asp 代码审查工具

    ### ASP 代码审查工具知识点详解 #### 一、代码审查概览 代码审查(Code Review)作为软件开发过程中至关重要的一个环节,旨在提高代码质量、减少缺陷并促进团队协作。通常,这一过程涉及代码创作者与审查人员之间...

    同行评审-代码审查参考文档.doc

    本文主要围绕Java代码的几个重要方面进行讨论,提供代码审查时应注意的要点。 首先,关于对象和变量的处理: 1. **未使用的变量**:Eclipse等IDE会自动标识未使用的变量,应避免这种情况,因为它们增加了代码的...

    给java开发者的几点建议

    11. **代码审查与版本控制**:进行代码审查可以发现潜在问题,提高团队协作。使用Git等版本控制系统来追踪代码变更,便于多人协作和回溯。 12. **性能调优**:了解JVM工作原理,包括垃圾回收、内存分配策略等。使用...

    code review 理解,作用

    华为作为一家全球领先的科技企业,其代码审查准则通常会涵盖以下几点: 1. 适时审查:代码审查应在代码完成后尽早进行,避免积压和延迟。 2. 明确标准:华为可能会制定详细的编码规范,包括命名规则、注释要求、...

    每天写出好代码的5个建议

    - **代码审查**:定期进行代码审查可以帮助发现潜在的问题并及时修复,同时也促进了团队成员之间的学习和交流。 #### 3. 即刻行动原则 “Do it. Do it right. Do it right now.” 这句话强调了立即行动的重要性。...

    Best Practise for Peer Code Review

    根据研究成果,白皮书中提出了以下几点最佳实践建议: 1. **使用专用工具**:选择合适的代码审查工具可以大大提高效率。例如,Cisco Systems 使用的 Code Collaborator 工具就极大地简化了审查过程,并提供了全面的...

    Best kept secrets of peer code review

    《同行代码审查的最佳秘诀》是2006年发布的一篇关于软件开发中代码审查实践的重要文献。在软件工程领域,代码审查是确保代码质量、提高团队协作效率的关键环节。本文将深入探讨同行代码审查的一些鲜为人知但至关重要...

    scientists-code-review:有关科学家和由科学家进行的代码审查的简短论文

    科学家代码审查是科研活动中不可或缺的一环,特别是在当前数据科学与计算科学蓬勃发展的时代。...通过学习论文中的观点和建议,科研团队可以更好地实现代码审查的目标,从而推动科研成果的可靠性与准确性。

    代码检查小工具.rar

    3. **结合代码审查**:虽然代码检查工具非常有用,但它不能替代人工代码审查,因为有些问题需要经验丰富的开发者才能发现。 总的来说,TscanCode这样的代码检查小工具是编程工作中的得力助手,它能够帮助我们提升...

    2023年的数据显示了对代码质量的下行压力.docx

    为了应对这一挑战并保持高质量的代码,研究提出了以下几点建议: 1. **加强代码审查**:确保所有提交的代码都经过严格的审查,尤其是那些通过AI辅助工具生成的代码。 2. **实施持续集成/持续部署(CI/CD)**:通过...

    Xcode代码整理

    在进行Xcode代码整理时,除了使用Uncrustify这样的工具,还可以考虑以下几点: 1. **遵循编码规范**:Apple提供了一套名为“Apple Style Guide”的编码规范,包括Objective-C和Swift,建议所有Apple平台的开发者...

    美化PB代码

    定期进行代码审查,团队成员互相检查代码,提出改进建议,共同提升代码质量。 通过以上几点,我们可以有效提升PowerBuilder代码的可读性、可维护性和效率,实现代码的美化。在实际操作中,可以借助一些辅助工具,如...

    SEAY代码审计系统下载

    同时,建议结合实际的代码审查流程,将SEAY系统与其他开发工具结合,形成完整的软件质量保证体系。 总之,SEAY代码审计系统是提升软件开发安全性和质量的重要辅助工具,它通过自动化审计和定制化规则,帮助开发者在...

    SQL_Server_代码格式化插件_V3.10

    此插件的主要功能可能包括以下几点: 1. **自动缩进**:插件会根据语句的逻辑结构自动调整代码的缩进,使层次关系一目了然。 2. **代码对齐**:它可以将关键字、等号、括号等关键元素进行对齐,提升代码的视觉效果...

    代码编写规范 程序开发规范

    5. **代码审查**:通过代码审查,团队成员互相学习,找出潜在的问题和改进点。 6. **文档**:编写详细的项目文档,包括需求分析、设计文档、API文档等,帮助团队成员理解和使用项目。 7. **持续集成/持续部署(CI/...

    Code Review&JRuby on Rails

    在代码审查中,主要关注以下几点: 1. **可读性**:代码应易于理解,遵循一致的命名规范,有清晰的注释和文档,结构逻辑分明。这不仅有助于审查者理解代码,也有利于未来维护。 2. **可维护性**:代码应该考虑长远...

    reviewing-a-pull-request-main.rar

    标题“reviewing-a-pull-request-main”暗示了我们正在讨论的是一个关于审查GitHub上的Pull Request(PR)的过程,通常这是进行代码审查的一种常见方式。下面我们将深入探讨这个主题。 首先,我们需要理解什么是...

    [ 代码审计 ] Seay源代码审计系统cnseay

    为了更好地利用Seay源代码审计系统,开发者应了解以下几点: 1. 准备工作:在开始审计之前,确保代码已经进行了基本的格式化和整理,以便于Seay进行有效的分析。 2. 学习规则:理解Seay内置的审计规则和它们如何...

Global site tag (gtag.js) - Google Analytics