推荐阅读:

大数据智慧平台落地方案

Nginx + 阿里云SSL + tomcat 实现https访问代理

  1. 永远别忘了TD

再确认测试代码前,先找别人帮你检查下是否无误。在别人做之前尽量检查出bug并且将其处理好。代码审查最重要规则是对即将提交的代码中查找问题——你需要做的就是确认代码是正确的。

2.尽可能的自动化

这里有几个非常好的Java工具比如:PMD, Checkstyle, Findbugs等等。问题是当利用这些工具查找后人们还肯花时间去做代码审查吗?

使用这些工具前,为这些工具制定一套细则是非常重要的。这能够确保你使用同一个代码审核标准从而区别于那些常被用于20世纪老式的代码审查规范。在理想的状态下,这些工具可运行在各种版本控制系统上通过hook审查每个代码。如果该代码不好将被阻止在外。

3.尊重设计

在我开始从事Java项目早期时,用代码审查的方式已为时已晚。因为当你检查代码问题时实际上给你的设计造成了缺陷。设计模式被误解,一些繁杂的附属物质混入进来或者开发者脱离了主题。

审查会混乱你的观点。或许你会反驳:“这是代码审查而不是设计审查”。这时一些烂摊子必然会接踵而至。为了避免这些问题发生,我们改变了设计的初衷。代码审查会牵连到很多面,无论是设计还是设计审查。事实上,我们通过设计审查要比代码审而得多的冲击要多的多。设计需要更高的质量和灵感,我们应该避免一些复杂的思维。

4. 统一的风格指南

即使是使用自动化工具(诸如Checkstyle,Findbugs等)也应避免不必要的风格冲突,你的项目应该具备有风格指南。(在尽可能的情况下)坚持Java协议的规范标准。尝试着为你的项目介绍制定一个“词典”,这就意味着,当涉及这个代码时,查看该代码的用法和环境是否适宜,这些都很容易被检测出。

5. 挑选适宜的工具

如果开发者都在使用Eclipse开发工具( Eclipse IDE插件Jupiter),你可以通过你的方式来查看代码、调试代码甚至可使用Eclipse IDE上的一切东西当来帮助你在审查代码时更加的便捷。但是,如果大家没有使用同一个IDE(或者该IDE没有给你的工作带来方便)你可以考虑Review Board. ,它是个不错的选择。

6.请记住每个项目都不同

也许你在采用以前的项目方法工作,但是,请记住每个项目之间是不同的。每一个项目都有特定的架构(高并发或是高分散),有特定的文化(或许很多人喜欢使用Eclipse),并使用特定的工具(maven or ant)。难道你想照葫芦画瓢?OK,请记住,不同的项目有不同的工作方法。

7.懂得取舍

代码审查需要积极和细致而不是卖弄学问。你会因为一些细微的琐事让你紧张而导致项目失败或是花费公司成本吗?记住,千万不要这样。理清头绪,换个角度想想,改变自己的心态而不是记挂着去改变别人。

8. Be buddies

在我看来,称之为“buddy reviews”(别人会叫“over the shoulder”)非常好。A buddy review是指与其他团队成员每隔一到两天以非正式的形式讨论,并且快速的浏览(5-10分钟)对方的代码。这种方法可以帮助你:

1. 及早的发现问题

2. 总是很快的知道该干什么

3. 代码审查无须过长,因为你只需要查看新的代码,旧的代码会很快赶上

4. 这种非正式的场合——没有紧张感,很有趣!

5. 可以定期的交换想法

buddy reviewing在团队中是一种很好的工作方式,当某人在团队中出现问题时可以及早的发现。这不仅可以帮助大家,还可以交换彼此的进度和想法。

总之,如果你的项目正在进行代码审查,应该做到快速、有效、不浪费别人的时间。正如文章所说的,这几点非常重要。代码审查用意是在代码提交前找到其中的问题。

程序员晋级CTO之路的8大准则的更多相关文章

  1. Android程序员的进阶之路

    本文主要论述的是Android程序员的进阶之路,博主本人就是一名android开发攻城狮,所以这里讲述的大多数是android开发攻城狮的技术进阶之路,如有问题请多指正. 大家都知道程序员之中有有菜鸟 ...

  2. 从程序员到CTO的Java技术路线图 作者:zz563143188

    在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平. Java程序员 高级特性 反射.泛型. ...

  3. zz 游戏程序员的学习之路(中文版)

    游戏程序员的学习之路(中文版) Milo Yip · 1 天前 感谢 @楚天阔(tkchu)编写脚本及整理中文译本数据,自动从英文版生成中文版,SVG / PDF 版本中的书籍图片现在链接至豆瓣页面. ...

  4. 2017PHP程序员的进阶之路

    2017PHP程序员的进阶之路 又是一年毕业季,可能会有好多毕业生即将进入开发这个圈子,踏上码农这个不归路.根据这些年在开发圈子总结的LNMP程序猿发展轨迹,结合个人经验体会,总结出很多程序员对未来的 ...

  5. Java程序员的成长之路

    阅读本文大概需要 8.2 分钟. tips:虽然题目是写的Java程序员,但对其他语言的开发来说也会有借鉴作用. 本篇介绍的是大体思路,以及每个节点所需要学习的书籍内容,如果大家对详细的技术点有需要, ...

  6. 【转】2017PHP程序员的进阶之路

    2017PHP程序员的进阶之路 又是一年毕业季,可能会有好多毕业生即将进入开发这个圈子,踏上码农这个不归路.根据这些年在开发圈子总结的LNMP程序猿发展轨迹,结合个人经验体会,总结出很多程序员对未来的 ...

  7. GJM : 游戏程序员的学习之路

    原文作者:miloyip  原帖地址:http://gad.qq.com/article/detail/7180681 原帖备注:版权所有,禁止匿名转载:禁止商业使用:禁止个人使用. 腾讯前端技术总监 ...

  8. 从程序员到CTO的Java技术路线图(我爱分享)

    在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平. Java程序员 高级特性 反射.泛型. ...

  9. 从程序员到CTO的Java技术路线图 (转自安卓巴士)

    在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平. Java程序员 高级特性 反射.泛型. ...

随机推荐

  1. 快速找出网站中可能存在的XSS漏洞实践(一)

    一.背景 笔者最近在慕课录制了一套XSS跨站漏洞 加强Web安全视频教程,课程当中有讲到XSS的挖掘方式,所以在录制课程之前需要做大量实践案例,最近视频已经录制完成,准备将这些XSS漏洞的挖掘过程记录 ...

  2. 【ZCTF】easy reverse 详解

    0x01  前言     团队逆向牛的解题思路,分享出来~ 0x02  内容 0. 样本 bbcdd1f7-9983-4bf4-9fde-7f77a6b947b4.dll 1. 静态分析 使用IDAP ...

  3. 暴走Python之运算符与条件语句

    本文原创作者:LoneliNess,本文属i春秋原创奖励计划,未经许可禁止转载   本文来源:i春秋学院   i春秋(ichunqiu.com)网络安全平台能提供专业的网络安全技术.网络渗透技术.网络 ...

  4. Javascript高级编程学习笔记(31)—— BOM(5)screen、history对象

    screen对象 screen对象应该是BOM对象中最不常用的对象了 其主要用于提供客户端的显示能力信息 包括浏览器外部显示的信息,和像素的宽高等 这个对象的主要用于检测客户端能力,一般不会影响功能 ...

  5. 终于明白word-break属性——break-all和break-word的区别

      其实一直不明白,也没有认真去想过 word-break 属性的 break-all 和 break-word 有什么区别 后来看了一个大神写的一篇博客,写得很详细,看了豁然开朗. 所以,我也就不在 ...

  6. Enum扩展特性,代替中文属性

    由于对英语的天生缺陷,在枚举时一直使用中文,这样就不用看注释就知道枚举意思,今天看到博文 https://www.cnblogs.com/emrys5/p/Enum-rename-htmlhelper ...

  7. HBuilder+eclipse开发:使用ajax异步传值生成首字母索引

    使用ajax异步传值生成首字母索引大致有以下几个步骤: 1.服务器端使用servlet提取出数据库里的数据; 2.使用首字母工具类对数据进处理得到首字母; 3.再将首字母和数据一一对应存入json数组 ...

  8. 【app】adb连接问题整理

    如果使用adb devices进行检测,发现没有任何设备信息,我们就需要检查是否有手机/模拟器连接上 如果是手机进行连接,windows右下角有出来如下提示的话,需要检查你的手机驱动是否有安装好 如果 ...

  9. 项目中git版本控制及协作开发的常用操作(命令行,小乌龟,sourcetree)

    一. git命令:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 小乌龟:htt ...

  10. python学习笔记01-变量

    变量的作用: 1.保存信息  方便日后被调用 操作 2. 更改 代表描述性的意思 让人明白是什么意思 行业命名规则: 1.student_number 2.studentNumber 驼峰体 不要以大 ...