Java Code Review 介绍

1.code Review 的用处

  1. Code reviews 中,可以通过大家的建议增进代码的质量。
  2. Code reviews 是一个传递知识的手段,可以让其它并不熟悉代码的人知道作者的意图和想法,从而可以在以后轻松维护代码。
  3. Code reviews 也鼓励程序员们相互学习对方的长处和优点。
  4. Code reviews 也可以被用来确认自己的设计和实现是一个清楚和简单的。

你也许注意到了在上面的Code Reivew中的诸多用处中,我们没有提到可以帮助找到程序的bug和保证代码风格和编码标准。这是因为我们认为:

  1. Code reviews 不应该承担发现代码错误的职责。Code Review主要是审核代码的质量,如可读性,可维护性,以及程序的逻辑和对需求和设计的实现。代码

    中的bug和错误应该由单元测试,功能测试,性能测试,回归测试来保证的(其中主要是单元测试,因为那是最接近Bug,也是Bug没有扩散的地方)

  2. Code reviews 不应该成为保证代码风格和编码标准的手段。编码风格和代码规范都属于死的东西,每个程序员在把自己的代码提交团队Review的时候,代码

    就应该是符合规范的,这是默认值,属于每个人自己的事情,不应该交由团队来完成,否则只会浪费大家本来就不够的时间。我个人认为“meeting”是奢侈

    的,因为那需要大家在同一时刻都挤出时间,所以应该用在最需要的地方。代码规范比起程序的逻辑和对需求设计的实现来说,太不值得让大家都来了。

下面是一些观点,千万要铭记:

  • **要Review的代码越多,那么要重构,重写的代码就会越多。而越不被程序作者接受的建议也会越多,唾沫口水战也会越多。

    **

  • 程序员代码写得时候越长,程序员就会在代码中加入越来越多的个人的东西。 程序员最大的问题就是“自负”,无论什么时候,什么情况下,有太多的机会会让

    这种“自负”澎涨开来,并开始影响团队影响整个项目,以至于听不见别人的建议,从而让Code Review变成了口水战。

  • 越接近软件发布的最终期限,代码也就不能改得太多。

对团队的要求:

  • 先Review设计实现思路
  • 然后Review设计模式
  • 接着Review成行的骨干代码
  • 最后Review完成的代码

如果程序复杂的话,需要拆成几个单元或模块分别Review。当然,最佳的practice是,每次Review的代码应该在1000行以内,时间不能超过一部电影的时间——

1.5小时(因为据说那个一个正常人的膀胱可以容纳尿液的最长限度)

尽可能让不同的人Review你的代码

如果可能的话,不要总是只找一个人来Review你的代码,不同的人有不同的思考方式,有不同的见解,所以,不同的人可以全面的从各个方面评论你的代码,有

的从实现的角度,有的从需求的角度,有的从用户使用的角度,有的从算法的角度,有的从性能效率的角度,有的从易读的角度,有的从扩展性的角度……,啊,

好多啊,还让不让人活了。不管怎么说,多找一些不同的人会对你很有好处。当然,不要太多了,人多嘴杂反而适得其反,基本上来说,不要超过3个人,这是因

为,这是一个可以围在一起讨论的最大人员尺寸。

下面是几个优点:

  1. 从不同的方向评审代码总是好的。
  2. 会有更多的人帮你在日后维护你的代码。
  3. 这也是一个增加团队凝聚力的方法。

Code Review的好处我觉得不用多说了,主要是让你的代码可以更好的组织起来,有更易读,有更高的维护性,同时可以达到知识共享,找到bug只是其中的副产品

我个人认为代码有这几种级别:

1)可编译

2)可运行

3)可测试

4)可读

5)可维护

6)可重用

通过自动化测试的代码只能达到第 3 级,而通过Code Review的代码少会在第 4级甚至更高

1.Review 之前

1.团队要有统一的标准,并以此为基准

2.不应该掺杂其他因素,情感因素、绩效因素等等统统要不得

3.不应该成为保证代码规范的手段

  • 让工具去保证代码规范( check style/pmd)

  • 把更多的精力放在代码是否正确上

2. Code Review 常见问题

  • 功能性bug
  • 逻辑优化
  • 代码复用
  • 不必要代码
  • 能够高效执行
  • 资源占用
  • 资源是否有效关闭
  • 资源池配置是否合理
  • 线程是否安全
  • 检查注释是够到位
  • 代码结构是够清晰
  • 命名是否规范
  • 单元测试覆盖情况
  • 能够适应未来变化
  • 过渡设计
  • 敏感数据是否加密
  • 密码能否很好的管理与控制

3.一些建议

  • 沟通而非对抗
  • 不要自负
  • 小而多,而非大而少
  • 保持简短
  • 不要太正式
  • 三人行(以三人为一组,一个提交,二个人审核)
  1. Code Review 收益
  • 对代码作者来说
    • 养成阅读自己代码并重构代码的习惯
    • 通过和同事的沟通,发现自己的不足,从而获得提升
  • 对于审查者来说
    • 可以参考别人的代码设计,并思考可以借鉴的地方
  • 对于团队来说
    • 促进沟通
    • 提升团队战斗力

16个好用的Code Review 工具

https://zhuanlan.zhihu.com/p/103592147

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半夏_2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值