SA Blog --系统管理员的博客生涯

书写自己的系统管理博客生涯
posts(330) comments(254) trackbacks(0)
  • IT博客
  • 联系
  • RSS 2.0 Feed 聚合
  • 管理

常用链接

  • 我的随笔
  • 我的评论
  • 我参与的随笔

留言簿

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类(395)

  • *UNIX系统(148)
  • Cloud(3)
  • Moive
  • Music(1)
  • OpenStack(7)
  • openstack
  • Wiki(1)
  • Windows系统(32)
  • 其他(33)
  • 娱乐
  • 存储相关(22)
  • 存储网络(10)
  • 常用工具下载(25)
  • 数据库应用技术(53)
  • 网络技术(41)
  • 英语
  • 虚拟化(19)

随笔档案(330)

  • 2020年9月 (1)
  • 2020年8月 (1)
  • 2020年7月 (8)
  • 2020年4月 (1)
  • 2020年2月 (1)
  • 2020年1月 (1)
  • 2019年9月 (2)
  • 2019年4月 (1)
  • 2016年1月 (1)
  • 2015年12月 (1)
  • 2015年7月 (4)
  • 2015年5月 (2)
  • 2014年3月 (2)
  • 2014年1月 (1)
  • 2013年12月 (1)
  • 2013年3月 (5)
  • 2013年2月 (4)
  • 2012年12月 (1)
  • 2012年11月 (2)
  • 2012年9月 (2)
  • 2012年8月 (1)
  • 2012年6月 (1)
  • 2012年5月 (1)
  • 2012年1月 (1)
  • 2011年12月 (2)
  • 2011年10月 (1)
  • 2011年9月 (3)
  • 2011年8月 (1)
  • 2011年7月 (5)
  • 2011年6月 (3)
  • 2011年5月 (5)
  • 2011年4月 (2)
  • 2011年3月 (2)
  • 2011年2月 (1)
  • 2011年1月 (5)
  • 2010年12月 (1)
  • 2010年11月 (4)
  • 2010年9月 (13)
  • 2010年8月 (4)
  • 2010年7月 (5)
  • 2010年6月 (5)
  • 2010年5月 (13)
  • 2010年4月 (10)
  • 2010年3月 (5)
  • 2010年2月 (1)
  • 2010年1月 (9)
  • 2009年12月 (5)
  • 2009年11月 (5)
  • 2009年10月 (1)
  • 2009年9月 (3)
  • 2009年8月 (2)
  • 2009年7月 (6)
  • 2009年6月 (3)
  • 2009年5月 (2)
  • 2009年4月 (1)
  • 2009年3月 (2)
  • 2009年2月 (3)
  • 2008年12月 (3)
  • 2008年11月 (1)
  • 2008年10月 (9)
  • 2008年9月 (5)
  • 2008年8月 (3)
  • 2008年7月 (1)
  • 2008年6月 (1)
  • 2008年5月 (2)
  • 2008年4月 (1)
  • 2008年3月 (1)
  • 2008年2月 (3)
  • 2008年1月 (1)
  • 2007年12月 (5)
  • 2007年11月 (1)
  • 2007年10月 (6)
  • 2007年9月 (4)
  • 2007年8月 (4)
  • 2007年7月 (34)
  • 2007年6月 (1)
  • 2007年4月 (2)
  • 2007年3月 (1)
  • 2007年2月 (1)
  • 2006年11月 (1)
  • 2006年9月 (4)
  • 2006年8月 (4)
  • 2006年7月 (1)
  • 2006年6月 (10)
  • 2006年5月 (3)
  • 2006年4月 (14)
  • 2006年2月 (6)
  • 2006年1月 (6)
  • 2005年12月 (12)

收藏夹(5)

  • Other(5)

IT技术

  • MSDN 库(中文)
  • 欢迎使用 MSDN 库(中文),MSDN 库为使用 Microsoft® 工具、产品、技术和服务的开发人员提供必不可少的信息资源。MSDN 库包含操作方法和参考文档、示例代码、技术文章和其他内容。请浏览目录或使用搜索功能来查找所需内容。

健康

  • 体检咨询
  • 北京体检 体检咨询
  • 足医生
  • 足医生

友情链接

  • TestLink中文论坛
  • Testlink 中文论坛
  • 备案专题
  • 备案专题
  • 微软大中华区安全博客
  • 微软大中华区安全博客

存储技术

  • doit存储
  • doit 存储,存储热门论坛
  • ITPUB
  • Oracle DBA 热门中文社区
  • TechTarget IT专家网
  • 蓝德科技

网络技术

  • ChinaUnix 中文社区
  • ChinaUnix 热门中文社区

搜索

  •  

最新评论

  • 1. re: 吐槽一下阿里系软件,就是天天的升级???
  • 评论内容较长,点击标题查看
  • --David
  • 2. re: Symantec Backup exec system recovery 2010(BESR 2010)故障汇总
  • 评论内容较长,点击标题查看
  • --112
  • 3. re: OpenStack安装部署管理中常见问题解决方法(OpenStack-Lite-FAQ)
  • /home/stack/devstack/tools/worlddump.py -d /home/stack/logs
    求救这是什么问题啊。
  • --陈晓龙
  • 4. re: nokia 手机密码忘记后破解
  • nokia 2630,密码不见,恳请帮忙,谢谢
    串号:355219037959407
    lipolipo@gmail.com
  • --沈同学
  • 5. re: chroot 工具 jailkit 限制用户 活动范围 和 权限 _ 笔记
  • 是一个很好的工具嘛。感谢分享。
  • --少林功夫好

阅读排行榜

评论排行榜

View Post

Review Board的几点使用体会

近期产品线研发体系正式将Review Board这款优秀的基于Web的代码评审开源工具引入到开发过程中,作为产品线内各项目组进行代码评审的辅助工具。我对Review Board近两年多的关注总算没有白费,算是有了一个还算不错的结果。不过Review Board的正式使用并不代表一种结束,反而恰恰是一个新的开始。我们下一步要关注的是如何用好Review Board,让它真真正正地为改善产品质量和开发效率出力。

在“关于在线代码评审的几点考量”这篇博文中我提到了在线代码评审工具在开发过程中所处的角色、使用时机以及使用时的注意事项,不过当时也多是凭直觉有感而发。真正用了Review Board这样的评审工具后,有些想法还要进一步细化。

的确,我们在近一个多月的使用过程中发现了许多问题,在公司内部我把这些问题以及解决方法整理成了一页Wiki Page放到了产品线的知识库中,这里我也和大家分享一下。

下面是我整理的关于如何用好Review Board的一个Tips列表:

* 务必保持每个Review Request内容的内聚性
如果你提交一个Review Request,其中包含了对A库的bugfix,给B库增加一个新feature,以及对C库重构的一段代码,那你的这个Review Request就是不合格的。该Request内容上包含了三个不相干的内容,严重缺乏内聚,这会给后续评审带来不良影响,诸如评审者关注点分散,效率下降;评审者不愿理睬这种Request等等。对于上述的问题Request,建议拆分为三个Request,让每个Request内容单一内聚。

* 请为你的Review Request设定评审结束时间
切记为每个Review Request设定一个有效评审时间范围,否则你的评审将被视为永远有效,这样的Request久而久之就会变成"塑料制品垃圾"塞满你的Dashboard。由于Review Board上似乎没有设定评审截止时间的位置,所以一般可在Description中增加该Request对应的评审结束时间,例如加上:
"评审截止时间:2011-03-07 12:00"

* 保持你的Dashboard Clean,别忘了关闭你的Review Request
使用Review Board一段时间后,你就会发现你的Dashboard中有很多Incoming和Outgoing的 Requests,让人心生不悦。建议大家在Request评审完毕或过期后关闭你发起的Request,保持Dashboard的clean。

在每个Request里有一个close标签,下面有三个选项:
- summited 表示评审结束,代码已经提交,不须继续评审
- discarded 丢弃的评审请求
- delete permanently 应该删除的请求
一般我们会用到summited。

* 请为评审请求选择适当的干系人列表
每个评审请求都应该有特定的干系人列表,不要泛泛的发给Review Board系统中设定的所有Group。否则你既不会收到那些不相干人的有效的评审,还干扰了对方的工作。

一般来说发起代码评审请求前先要明确此次评审的目的,无非以下几种或它们的组合:
- 希望相关干系人找出代码中的代码逻辑缺陷;
- 希望相关干系人找出代码中的业务逻辑缺陷;
- 分享你的代码,将你的代码中的美展现给大家。
明确了目的之后,想必你就应该清楚干系人列表中究竟该有谁了。

* 请评审者聚焦本次Request中的变动
在Review Board实际使用过程中,常常发现这样的情况:某位同事发起一段针对遗留代码修改的评审请求。很多评审者给出的一些评审意见针对的却并非是本次修改的代码,而是此次变更源码文件中的其他代码。这样可能会导致下面两个问题:
- 提交Request的评审人很可能无法修正非本Request之外的代码问题;
- 评审过程可能因此被拉长,很可能无法在截止时间内完成此次评审,甚至可能反复多次,造成效率上的浪费。
针对这种情况,我们建议评审者聚焦本次改动。如果评审过程中发现其他非本次改动相关的问题,可通过向代码所在的项目的Todolist或某种问题跟踪系统提交一个issue/ticket,后续由该项目的主维护者统一安排处理。

最后说说post-review这个工具的使用。Review Board的原理其实就是评审diff文件。一般情况下大家通过Review Board提供的web页面提交自己手动生成的diff文件,这种方法无可厚非。不过Review Board官方还推荐使用另外一种更有效率的方法,那就是使用post-review脚本发起Review Request。以下内容描述了工作中常见的三种使用post-review工具的情形,前提是你已经将post-review安装到你的主机上了。

* 在代码Commit前发起评审请求
有些时候,项目要求代码未经评审不允许commit到Code Repository中,这种情况我们称之为pre-commit review。这种情况下可以这样来发起一个Review Request,先在你的本地代码库拷贝中完成对代码的修改,然后进入到你的本地代码目录,执行:
post-review –server=http://xxx.xxx.xxx.xxx/reviews

post-review就会将当前目录以及其子目录下所有变更作为一个diff提交到Review Board形成一个Request Draft等待你的发布。当然你也可以通过post-review直接设定Request的Descripton等字段,并可通过增加–publish参数立刻发布该Request。

* 代码commit后发起评审请求
有些时候,某些代码是在提交到Code Repository后才评审的,这种情况我们称之为post-commit review。我们可通过版本库的revision number间的差异来构造Review Request,具体方法如下:
post-review –server=http://xxx.xxx.xxx.xxx/reviews –revision-range=n:m –branch=YOUR_REPOSITORY_PATH
当然你也可以不指定–branch,不过需要在你本地代码库拷贝目录下执行post-review。

* 更新已存在的评审请求
已经提交到Review Board的请求经过评审后,可能需要你再次修改代码并更新diff文件以继续评审。这时你可以通过指定已存在的Review Request id的方式更新已存在Request的diff,方法如下:
post-review –server=http://xxx.xxx.xxx.xxx/reviews ….. –review-request-id=58

注意,如果你的unix/linux账户下设置了http_proxy环境变量,那么在执行post-review之前需要将http_proxy设置为空,否则post-review的请求将被代理拦截而失败。

部门里越来越多的人开始关注和使用Review Board了,好趋势,可喜可贺!

posted on 2013-12-05 13:58 David 阅读(1578) 评论(0)  编辑 收藏 引用 所属分类: 其他

只有注册用户登录后才能发表评论。
 
Powered by:
IT博客
Copyright © David