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

Java Code Review 介绍相关推荐

  1. 关于Gerrit code review 介绍与安装

    代码审核(Code Review)是软件研发质量保障机制中非常重要的一环,但在实际项目执行过程中,却因为种种原因被Delay甚至是忽略.在实践中,给大家推荐一款免费.开放源代码的代码审查软件Gerri ...

  2. java code review 工具_两款好用的代码Review工具 | 学步园

    最近团队内部呼吁代码质量的声音越来越高,项目组引入了代码Review机制.上次我由于不了解主站URL替换的规则,险些造成客户端图片读取错误,而代码Review则有助于帮我们发现代码潜在的问题. 主讲的 ...

  3. Code Review工具Jupiter介绍

    [IT168 技术文档] 引言 Code Review的作用和意义已在很多技术团队内达成共识,可是很多时候并未被有效执行,甚至被认为是一项费时费力的工作.借助一些工具可以更容易,更有效率地来进行Cod ...

  4. Eclipse Code Review(代码审查)工具介绍

    http://soartju.iteye.com/blog/564690 最近组内一直在做代码改进,既然是代码级别的改进,我想比较直接有效的办法就是Code Review. 虽然以前开发部也做过代码评 ...

  5. java code reviewer_Java Code Review

    目标和原则 提高代码质量,及早发现潜在缺陷,降低修改/弥补缺陷的成本 促进团队内部知识共享,提高团队整体水平 评审过程对于评审人员来说,也是一种思路重构的过程,帮助更多的人理解系统 是一个传递知识的手 ...

  6. 如何在团队中做好Code Review

    一.Code Review的好处 想要做好Code Review,必须让参与的工程师充分认识到Code Review的好处 1.互相学习,彼此成就 无论是高手云集的架构师团队,还是以CURD为主的业务 ...

  7. 什么是Code Review 代码审查

    Code Review 是一种通过复查代码提高代码质量的过程,在XP方法中占有极为重要的地位,也已经成为软件工程中一个不可缺少的环节. 本文通过对Code Review的一些概念和经验的探讨,就如何进 ...

  8. Code Review效率低?来试试智能语法服务

    简介:在人工代码评审(Code Review,CR)中,对于纯文本形式的代码浏览不可避免地将耗费大量的时间,影响CR的效率.那么有没有更智能的方法?阿里云云效代码智能语法服务基于云端备份的快速代码导航 ...

  9. 敏捷开发中的Code Review

    敏捷开发中的Code Review 一些敏捷团队在实施敏捷开发中忙于编码.忙于Unit Test.忙于沟通.忙于Build等,虽然也有编码审核阶段,但大都浮于表面,流于形式,效果不佳.本文结合实践,介 ...

  10. Alibaba Code代码索引技术实践:为Code Review提供本地IDE的阅读体验

    作者:曲径     阿里研发基础设施团队 Code Review在研发流程中非常重要,但Web界面中Code Intelligence能力的缺失改变了原有的代码阅读习惯,又增加了阅读成本.本文将介绍阿 ...

最新文章

  1. Matlab与线性代数 -- 向量的范数
  2. Spring Cloud Alibaba【Nacos 服务治理】 高可用保证:Nacos 如何有效构建注册中心集群
  3. 浅谈Django的中间件与Python的装饰器
  4. nginx已添加systemctl,但不能开机自启动问题
  5. MySQL的优化与执行
  6. 回归素材(part2)--机器学习与R语言
  7. JUnit与EasyMock合作
  8. PWN-PRACTICE-CTFSHOW-8
  9. xstream中几个注解的含义和用法(转)
  10. android x86 arm translator,让x86的android模拟器能模拟arm架构系统
  11. 1、深入理解 Laravel Eloquent(一)——基本概念及用法
  12. IS-IS详解(五)——IS-IS 三次握手与两次握手
  13. Linux介绍及基本操作
  14. 认识IL代码---从开始到现在 第二篇
  15. 如何将高程数据转成南方CASS的DAT格式
  16. AS找回被删除的文件
  17. ABAP submit程序获取ALV数据的方法
  18. 安卓手机卸载手机自带软件(adb)
  19. 蓝桥杯——瓷砖样式(第八届决赛)
  20. C语言程序设计编程题[一](山西大学876)

热门文章

  1. unity导出fbx模型_三维制作内容,maya模型贴图文件导入untiy,烘焙灯光贴图
  2. python三维网格图_python 可视化 ploty 画3dmesh网格图
  3. 磁盘被写保护,请去掉写保护或另一张磁盘
  4. 中台战略=微服务+服务治理+组织架构
  5. JS通过高德地图将经纬度转换为地理位置
  6. 爬虫项目十五:你了解你的QQ好友吗?教你用Python采集QQ好友数据
  7. py爬虫pandas
  8. 014基于SSH航空订票系统air
  9. matlab 加上划线,latex 上划线
  10. 数据通信基础之双绞线