软件构造 4:代码评审

代码评审是提升代码质量和程序员水平的重要手段,包括风格标准、DRY原则、注释使用、快速报错、避免幻数、单一变量目的、良好命名和避免全局变量等。代码应避免重复,注释应明智添加,错误应尽早暴露,变量应有明确作用,使用有意义的命名,并减少全局变量的使用。
摘要由CSDN通过智能技术生成

代码评审

代码评审是一种系统的对别人代码的研究,和论文审校很类似。

代码评审有两个主要目的:

  • 提升代码质量。 找出存在及潜在的bug,分析代码的清晰度以及代码是否严格遵循了当前工程的标准。
  • 提升程序员的水平。 代码评审是提升程序员水平的一个重要方法,通过它可以学习到语言新的特性、工程上新的设计以及一些新的实现方法。特别是在开源项目中,很多交流都是在代码评审这种环境下进行的。

代码评审已经在开源项目中运用很深了,例如Apache 和 Mozilla. 同样的,代码评审在工业界也应用很广,在Google,如果你的代码没有另一个程序员的评审签字,你是没办法将它提交的。

风格标准

大多数公司或者大的项目都会要求代码风格具有统一的标准。这些标准可能会非常细化,例如缩进应该是几个空格,花括号应该怎么对齐。这些问题上的争论通常会导致 神圣的战争 (译者注:例如vim和emacs哪一个更好),毕竟它们关乎于个人的口味或者审美观。

在本门课程中,我们对代码风格没有一个统一的要求。如果你是刚开始写Java,我们推荐你遵循 Google Java Style ,它在工业界运用的很广,可读性也不错,例如:

if (isOdd(n)) {    
    n = 3*n + 1;
}
  • 在关键词(if)后面留空格,但是在函数调用(isOdd)后不留空格
  • 在行的末尾写{  ,而 } 自己单独一行
  • 无论是空块还是只有一行,都要用{ }包括起来

不过,我们不会要求你遵循花括号的放置风格,毕竟每个程序员都有自己的口味。但是要注意,一旦遵循某一种风格后就要一直这样写,不要一会这样一会那样。同时,应该优先遵守所在项目规定的风格,如果你在进行代码评审的时候擅自改动别人的代码风格,你的搭档会恨死你的;)总之,团队合作优先。

同时,有一些代码风格是跟我们这门课程的三个目标息息相关的(译者注:远离bug、易读性、可改动性),它们可不止花括号放在哪这么简单。这篇阅读的剩下部分将探讨这些规则,而你在进行代码评审或是自己写代码的时候也应该注意这些规则。但是,代码评审可不仅仅是看别人的代码风格,我们在后续的课程还会讲到很多别的事情,例如规格说明、抽象数据类型、并发编程和线程安全等等,这些都是代码评审的原材料。

别写重复的代码(Don’t Repeat Yourself)

重复的代码很不安全。如果你在两个地方放置了相似的代码,那么一个最基本的风险就是如果一处出现了bug,另一处也非常可能有bug。而修复的时候经常只会修复一个地方而忽略了另一个地方。

避免重复就像你过马路的时候要避免被车撞一样。赋值-粘贴在编程中是一个很大的诱惑,而你在使用它的时候,“皮肤应该感觉到危险而震颤”。(译者注:这描述也是醉了)

别重复代码(Don’t Repeat Yourself,)简称为DRY,现在已经成为了编程人员的一句咒语。

译者注(来自维基百科):

一次且仅一次once and only once,简称OAOO)又称为Don't repeat yourself(不要重复你自己,简称DRY)或一个规则,实现一次one rule, one place)是

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值