为什么我们不愿意code review

Jimmy Lee

学习思考|May 29, 2023|Last edited: 2023-5-28|
icon
Update time
May 28, 2023 09:15 PM
Internal status
password

介绍

Code review 是软件开发的重要组成部分。它是指由一名开发者对另一名开发者编写的代码进行审查,以确保符合编码标准、高效并无错误。这种过程是团队合作和质量保障的重要环节,有助于提高代码的可维护性和可读性,降低代码缺陷率,保证软件质量和安全性。然而,尽管它的重要性,许多团队仍难以有效地实施 code review。在本篇博客中,我们将探讨几个原因,为什么 code review 很难推进执行。

缺乏时间

实施 code review 面临的最大挑战之一是缺乏时间。在软件开发项目中,时间非常宝贵,开发人员需要紧密协作,不断推进项目进度以满足客户的要求和期望。日常的任务往往已经排满,且项目进度紧张,将 code review 加入日程表可能会导致难以满足截止日期。此外,code review 需要大量的时间和注意力,这使得它难以融入已经排满的日程中。因此,code review 可能会被搁置或赶工,导致效果不佳。
 

抵制变化

另一个导致 code review 难以实施的原因是抵制变化。作为开发人员,每个人都有自己的编程习惯和风格,已经习惯了某种工作方式,可能不愿意接受新的流程或工具。在某些情况下,开发人员可能认为 code review 是不必要的,他们的代码已经足够好了。在这些情况下,很难获得团队的认同,code review 可能会被视为阻碍而不是有帮助的流程。因此,为了让 code review 更好地融入软件开发项目中,需要在团队中树立共识,让每个人明白 code review 的重要性,以及它对整个项目的质量和项目进度的影响。
 

缺乏责任制

最后,缺乏责任制可能会使实施 code review 成为一项挑战。如果没有人负责确保 code review 及时进行,可能根本不会进行。在某些情况下,开发人员可能会假定其他人会接手他们的工作失误,导致延迟和错过截止日期。为避免这种情况,建立清晰的 code review 流程所有权并确保每个人都知道自己的责任至关重要。需要指定专人负责 code review 的执行,并建立相应的流程和标准,确保每个人都清楚自己的角色和职责,以及执行的时间和方式。
 

合并困难

在一个项目中,如果不同的程序员使用不同的代码风格编写代码,合并代码时会遇到一些问题。这些问题包括变更点过多,很难分清什么是业务代码,什么是格式化导致的变更。因此,为了避免这种情况,我们需要制定一套标准的代码风格,并确保所有的程序员都遵守这个标准。这样可以使代码更易于阅读和维护。此外,我们还可以使用自动化工具,如代码格式化器,来自动化执行代码风格指南中的规则,并确保所有的代码都符合标准。这样可以节省时间和减少错误。

提交不够独立

在第一次审核中,发现有太多的提交次数,这导致涉及的文件过多,给后续的分析带来了很大的困难。

权限问题

如果项目的权限集中在某几个人手中,则可能出现以下问题:第一,由于这些人的原因,可能会导致 code review 请求无法及时处理;第二,这些人可能会因为自己的优先事项而错过一些重要的 code review 请求,从而造成项目的延误;第三,这些人可能会对他们不熟悉的代码审查请求感到不耐烦,从而使得 code review 的效率受到影响。

代码审查的好处

一个精心设计的代码审查过程和认真对待代码审查的文化可以在短期内没有质变的好处,但是长期来看可以解决以下问题:
  • 检查代码的正确性
  • 确保其他工程师能够理解代码更改
  • 强化整个代码库的一致性
  • 从心理上促进团队的所有权。新入职员工看到一段代码,可能提交者是个离职员工,现在已经找不到了。但是这段代码现在是谁维护呢?可以查看OWNERS文件找到这个人。
  • 实现知识共享
  • 提供代码审查本身的历史记录。某段代码不知道为什么这么写,可以在Git仓库找到这个合并链接,查找review时的评论,理解为什么这样修改

改进措施

以下是一些可以实际操作的让团队爱上 code review 的措施:
  • 首先第一步,先对所有代码进行格式化,将提交代码必须格式化落地
  • 为 code review 留出时间:在项目计划中留出足够的时间,使得每个人都可以在紧张的时间表内完成 code review 的任务。
  • 让 code review 更轻松:尝试使用更简单的工具和流程来执行 code review,减少任务的复杂性和难度。
  • 保持小的更改,较小的改动可以防止工程师浪费时间等待较大变更的审查,减少停滞时间. 优化提交过程,减少不必要的提交,可以将同一个功能的提交合并为一个commit再push
  • 对于每个提交,在commit message中清晰地描述修改的内容,这样可以更方便地追踪每个变更的影响。
  • 使用OWNERS文件设定多个代码拥有者,将项目权限分配给更多的人,以确保 code review 请求得到及时处理,并保障项目的顺利进行。
  • 建立正面的文化:鼓励团队成员分享他们的想法和意见,并在 code review 中展示他们的技能和知识,以鼓励更多的团队成员参与和享受 code review 过程。
  • 提供及时反馈:在 code review 过程中及时提供反馈,让团队成员知道他们的工作受到了重视和赞赏。这有助于建立一个积极的工作环境,鼓励更多的参与和建设性的反馈。
  • 建立奖励制度:为那些认真进行 code review 并提供有效反馈的人提供奖励,以激励更多的参与和积极的参与。

结论

有效的 code review 对于生产高质量的软件和减少错误至关重要。然而,由于缺乏时间、抵抗变化和缺乏责任制等原因,实施它可能具有挑战性。为了克服这些挑战,重视 code review,向团队传达其重要性,确保每个人都负责其在流程中的角色是很重要的。通过正确的方法,code review 可以成为您的软件开发过程中不可或缺的一部分,有助于提高软件质量和开发效率,减少错误和风险。

开始订阅我的关于终生学习, 生产力以及知识管理的文章. 订阅后, 您将收到我的精选文章.

©2014-2024 Jimmy Lee. All rights reserved. 公众号: 技术管理方法论
Powered By My Lovely Children