什么是代码评审(Code Review)

4 篇文章 0 订阅
1 篇文章 1 订阅

1、什么是CodeReview?

Code Review(CR)即代码评审,又名代码走查,是一种通过复查代码来提高代码质量的过程,一般体现在一个团队的开发过程中。CR要求团队成员有意识地、系统地检查彼此的代码,从而验证需求、发现错误,同时指出其中不合规范的“低质量”代码,从而提高整个团队的代码质量。

一次 CR 可以是一次 Commit,也可以是一次 Merge Request。因此,实践课系统支持团队内部的 MR 评审以及 Commit 评审,供大家学习和交流。

2、为什么要CodeReview?

(1)旁观者清。

  • 对于同一段业务代码,由于看待问题的角度不同,评审者可能会比开发者更容易发现其中的问题,或是找到更有效的解决方案,共同维护团队的代码质量。
  • 提高代码质量和可维护性, 可读性等。
  • 查漏补缺, 发现一些潜在的问题点等。
  • 最佳实践, 能够更好更快的完成任务的方法。
  • 知识分享, Review他人代码时, 其实也是一个学习的过程, 自己也会反思&总结。

(2)快速了解业务。

  • 理想状态下,团队中的每个人都需要对整个项目的各个部分都很熟悉,当然,在项目很大时这是不现实的。通过代码审查至少可以让每个人了解更多的业务模块,同时也能达到人员互备的目的。
  • 人员互备:通过 CR,评审者也相当于参与了这次开发,相当于一种人力“备份”,当你休假或正在忙别的需求的时候,这时“备份”或许就能帮上你的忙了。

(3)开发者能够获得什么?

  • 对需求的理解得到加深。
  • 表达能力得到加强。
  • 逻辑能力得到训练。
  • 心理承受能力得到提高。

(4)评审者能够获得什么?

  • 快速上手业务需求和全局的架构。
  • 统一大家约定俗成的代码风格。
  • 优秀的设计思路和业务逻辑。

3、CodeReview 的原则。

(1)CR 是必要的,但也需要结合团队现状。

  • 当你的团队开发任务极其紧张,再耗费一部分人力去进行 CR,是不明智的。

(2)所有的代码都应被赞成。

  • 因为团队代码库的每一次改动(Change List ,以下简称 CL),都必定会提高当前系统的整体质量,即使这个 CL 并不完美。

(3)CR 不应该追求完美,而应追求持续改进。

  • 要知道,没有完美的代码,只有更好的代码,“慢即是快”。

(4)CR 不是挑刺,更不是证明谁的能力更强。

  • CR 是为了提高整个团队的能力,而不是针对个体设置的检查“关卡”,仅具有指导意义。

(5)评审者也需要对这个 CL 负责。

  • CR 不应设置奖惩机制,即便是有,也是对评审者和开发者同时的奖励或处罚。

(6)时刻保持谦虚。

  • 无论是评审者还是开发者,都可以在 CR 中提升自己的能力。

(7)合理解决问题

  • 解决冲突难以达成共识时,需要面对面或者拉起更大的团队讨论,带上leader。

4、在一次CodeReview中我需要关注什么?

(1)git 提交规范

(2)代码风格

a. 可读性
  • 衡量可读性, 有很好的实践标准, 即 Code Review 时能否非常容易的理解代码逻辑, 如果不能, 那意味着代码的可读性要进行改进。
b. 命名
  • 描述是否准确。不建议使用生僻单词。
  • 命名格式是否与团队风格一致。
c. 函数体长度/类长度
  • 函数体太长,不利于阅读。一般建议不超过50行。
  • 类太长,有可能违背“单一职责原则”。
d. 参数个数
  • 参数不要太多。一般不超过5个;5个以上建议使用对象。
e. 注释
  • 恰到好处的注释,能够帮助评审者更好地理解函数体和类。

(3)架构/设计

a. 单一职责原则
  • 一个类只做一类相关的事情。
  • 一个方法,最好只做一件事情。
b. 行为是否统一
  • 校验处理是否统一。
  • 数据处理是否统一。
  • 错误处理是否统一。
c. 代码是否污染
  • 代码是否对其他模块有强耦合。
d. 是否有重复代码
  • 检查是否将可复用的方法或组件抽取出来。
e. 开放-封闭原则
  • 代码是否具有良好的可扩展性。
f. 代码健壮性
  • 核心数据有没有强制校验。
  • 边界值有没有考虑得当。
  • 有没有潜在的bug。
  • 有没有内存泄露。
  • 有没有循环依赖。
g. 是否考虑了错误处理
  • 有没有很好的 Error Handling。
h. 面向接口编程
  • 检查业务的实现中有没有进行合适的抽象。
i. 效率/性能
  • 对用户使用频率高、资源消耗大的业务部分是否处理得当。
  • 关键算法的时间复杂度。
  • 有没有潜在的性能瓶颈。
j. 代码重构
  • 新的改动是打补丁,让代码质量继续恶化,还是对代码质量提升有帮助。
k. 时间粒度。
  • 一个Review单元的时间应控制在10~20分钟,如果超出这个时间,那么这段代码本身可能在业务划分或代码实现上,是存在问题的。
  • 41
    点赞
  • 179
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Code Review度量是指对于软件代码进行评估和测量的一种方法。它有助于发现代码中的问题和漏洞,并提供改进和优化的方向。 首先,Code Review度量可以帮助评估代码的质量和可靠性。通过检查代码的结构、可读性、命名规范、注释等方面,我们可以确定代码是否符合最佳实践和标准。同时,我们也可以发现潜在的错误和漏洞,提前进行修复,从而提高代码的质量和可靠性。 其次,Code Review度量可以提供关于代码性能和效率的信息。通过代码审查,我们可以检查是否存在性能瓶颈、不必要的复杂度、低效的算法等问题。通过对这些问题的评估,我们可以提供优化和改进的建议,以提高代码的性能和效率。 此外,Code Review度量还可以帮助评估代码的可维护性和可扩展性。通过审查代码的结构、模块化和重用性等方面,我们可以确定代码是否易于维护和扩展。这样可以减少日后的代码维护成本,并提高代码的可扩展性,方便应对未来的需求变化。 总之,Code Review度量是一种对代码进行评估和测量的方法,可以帮助我们发现问题和提供改进的方向。通过这种方法,我们可以提高代码的质量、可靠性、性能、可维护性和可扩展性,从而提高软件的整体质量。 ### 回答2: Code Review度量是一种对代码质量和代码评审过程进行量化和衡量的方法。通过对代码评审和分析,可以提高代码质量、减少错误和bug,以及提升团队的开发效率。 首先,Code Review度量可以通过代码质量指标来衡量代码的可读性、可维护性和可扩展性等方面。例如,可以通过检查代码规范的遵循程度、命名规范的合理性、模块化设计的清晰性等来评估代码的可读性。同时,还可以通过检查代码的注释完整性、错误处理机制的健全性、代码冗余度的高低等来评估代码的可维护性。此外,还可以通过检查代码的可测试性、是否符合设计原则等来评估代码的可扩展性。 其次,Code Review度量还可以衡量代码评审过程本身的质量和效率。例如,可以通过评估代码评审的覆盖率、评审人员的专业水平、评审意见的准确性和有效性等来评估评审过程的质量。同时,还可以通过评估评审的周期和占用的资源等来评估评审过程的效率。这些度量指标可以帮助团队掌握评审效果,及时发现问题和改进评审方法。 最后,Code Review度量还可以用于监控和改进团队的代码质量和评审过程。通过定期对代码质量和评审过程的度量,可以发现问题和瓶颈,并采取相应的措施进行改进。例如,可以通过度量评审结果中的缺陷率和遗漏率等指标来定期跟踪团队的代码质量变化,在发现问题时及时划定改进措施。同时,还可以通过评估评审过程的周期和资源占用情况来判断评审过程的效率,进而对评审流程进行优化。 总之,Code Review度量是提高代码质量和评审过程效果的重要手段,通过对代码评审过程进行定量衡量和分析,可以及时发现问题并优化团队的开发流程。 ### 回答3: Code Review度量是指对代码审查过程进行量化和评估的方法。它帮助团队确定代码质量,发现潜在的缺陷和改进点。下面是一些常用的Code Review度量指标: 1. 代码覆盖率:代码覆盖率度量了被测试代码的执行路径是否被覆盖到。通过测量代码中被测试用例覆盖到的行数、分支、函数等,可以评估测试是否充分覆盖了代码。较高的代码覆盖率意味着更全面的测试,并有助于发现更多潜在的问题。 2. 缺陷密度:缺陷密度是指在代码中每行或每千行代码中存在的重要缺陷的数量。它可以帮助在不同的团队、项目或开发阶段之间进行比较,并衡量代码的质量。较低的缺陷密度意味着代码质量较高。 3. 代码复杂度:代码复杂度度量了代码的复杂性。通常使用诸如圈复杂度和类复杂度等指标来评估代码的可读性和可维护性。较低的复杂度意味着代码更易于理解和维护。 4. 代码规范遵循程度:代码规范遵循程度度量了代码是否符合团队或行业的编码规范。采用一致的编码风格和命名规范有助于提高代码可读性和可维护性。通过检查代码中规范规则的违反情况,可以评估代码的规范性。 5. 代码重复度:代码重复度度量了代码中的重复片段的数量和程度。重复的代码表明了设计上的问题,使得代码更难维护,并增加了引入缺陷的风险。降低代码重复度可以提高代码质量。 这些Code Review度量指标可以帮助团队全面评估代码质量、发现潜在问题和改进点,并进一步提高代码的可读性、可维护性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值