V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
Elfe
V2EX  ›  iDev

团队成员之间的 code review 大家都用什么工具?

  •  
  •   Elfe · 2012-06-09 01:08:59 +08:00 · 35897 次点击
    这是一个创建于 4545 天前的主题,其中的信息可能已经有所发展或是发生改变。
    以前在windows平台上的TFS,做CodeReview非常简单:
    开发者在自己机器上改好代码后生成一个shelveset,这个shelveset直接就保存在服务器上了
    邮件发送给reviewer告知shelveset名称
    reviewer通过tfsodd等工具,打开shelveset,查看代码变化,提意见。reviewer本机并不需要有服务器端代码
    review结束后(也许几个来回),开发者check-in shelveset。结束。
    也有时候,有些shelveset并不check-in,但一样能留在服务器上以备今后查看。

    现在的小公司里,也不知道这群毕业了直接就在这里的小朋友,是没人教不会用呢,还是真的Mac下没有好的code review工具,目前他们要么是直接跑到对方座位上看(于是匆匆而过看得很不仔细),要么就是看天书般的svn diff得到的文件(我觉得这个实在需要超能力才能读)。

    我粗粗搜了一下,没找到什么方便的工具,只有若干零星功能的,要合并在一起用才好。
    所以我在想,是不是该写个脚本或app。
    我大致想要一下几个功能。大家帮我看看,有没有能满足我要求的推荐一下。要没有我就只能自己动手了。
    0,每个人在机器上都有一个专门用来做code review 的 workspace。配制好CRWorkSpace的路径参数给下面的工具用
    1,开发者在写完程序,敲 cr -create <shelvesetName> <message>
    于是
    1.1 程序检查开发者当前代码是否update过,没有,提醒并帮助svn update,如有必要弹出FileMerge
    1.2 svn diff > shelvesetName.patch, 上传patch到公司的share folder
    2, cr -email <shelvesetName> <reviewer's email>发邮件给指定email。邮件中包含一条用以apply patch的 cr -review <shelvesetName> 命令
    3,收到邮件的同学copy & paste & run 这条命令
    3.1 将程序检查code review workspace的代码版本,sync到和patch一致
    3.2 apply patch
    3.3 弹出 SmartSVN(免费版)以查看代码自之前一个版本起的变动(可以吗?若不行, reviewer 本机还得准备两个work space,用文件比较工具来查看)
    4,开发者执行 cr -commit <shelvesetName>提交代码

    基本上就这样,还算蛮简单的。
    和原来用TFS相比,就差一个reviewer本机必须有一个用来做code review的专门workspace。这个在以后有多个brunch的时候会遇到麻烦(我原先的项目,最多的时候有十多个brunch同时在做平行开发)

    各位都在用什么工具,有可以让我偷懒不自己写的么?

    谢啦!
    23 条回复    2015-01-23 16:51:50 +08:00
    Elfe
        1
    Elfe  
    OP
       2012-06-09 01:11:37 +08:00
    哦对了,tfsodd还有很强的一个,是可以比较两个shelveset之间的差异。
    因此第一次review提意见,改了,再做一个shelveset,然后reviewer可以光看新的改动。

    这个不知道什么Mac下什么工具能做到
    或者,能用若干命令拼接起来达到这个效果么?(当然我并不希望reviewer机器上得要多份workspace)
    Elfe
        2
    Elfe  
    OP
       2012-06-09 01:15:40 +08:00
    还想起windows下一个很牛的工具,作为VisualStudio的插件安装的,review代码的窗口上可以直接在代码旁边加comments,就像word文档中加comments一样。
    因为连接服务器太慢,我个人基本上不太用,以至于现在都想不起名字了。不过确实很不错的工具。
    不知这个有Mac版么?
    sparklo
        3
    sparklo  
       2012-06-09 01:19:45 +08:00   ❤️ 1
    如果你不介意没有native-client的话, Crucible很不错.

    http://www.atlassian.com/software/crucible/overview
    Elfe
        4
    Elfe  
    OP
       2012-06-09 01:36:18 +08:00
    @sparklo 网页版的?这个很让人介意啊。东西不放在自己的服务器上,总感觉心慌慌的。
    lch21
        5
    lch21  
       2012-06-09 01:42:47 +08:00   ❤️ 1
    曾经用beyond compare
    ksword
        6
    ksword  
       2012-06-09 01:44:22 +08:00   ❤️ 2
    facebook使用phabricator,已经开源了,或者可以试下 http://phabricator.org/#differential
    Elfe
        7
    Elfe  
    OP
       2012-06-09 01:46:50 +08:00
    @lch21 是要装什么corssover之后才能用?BeyondCompare是很灵光的,尤其比较本地的两个文件夹的时候
    sampeng
        8
    sampeng  
       2012-06-09 01:51:27 +08:00
    我有个比较不理解的。。
    用svn有啥问题= =代码review一定只看提交和改动部分么。。。。。svn也很快很简单啊。。。。
    我倒觉得github是个威武的review的东西。。直接批注上去就是了。
    Elfe
        9
    Elfe  
    OP
       2012-06-09 01:52:29 +08:00
    @ksword 谢谢!看起来值得周一仔细研究一下。
    Elfe
        10
    Elfe  
    OP
       2012-06-09 01:55:03 +08:00
    @sampeng 当然是专注在改动部分,但一定要结合整体来看呀。
    SVN/XCode对我来说是全新的,我不知道是我没发现这些功能,还是它们确实不存在。我觉得目前我所加入公司的code review简直是灾难。
    不知道你是怎么用SVN的,详细解释一下可以么?
    sampeng
        11
    sampeng  
       2012-06-09 11:34:24 +08:00
    @Elfe 其实很简单,我们没把事情弄那么复杂。
    每个人的代码都是相对独立的。在有良好的代码结构的条件下,直接看他的代码即可。
    我工作的两家公司都是如此。
    虽然比你的只关注改动部分看的代码要多的多。但好处是全局性的观察。
    很多时候review可以看出代码的修改是否影响到了我或者其他程序员的接口功能。。。。。
    改接口却不管下层调用的情况太多了。。

    而且有些优化性质的第一次看是没感觉的,第二次看突然会觉得某个地方需要优化一下的情况也蛮多的。。所以整体看可以解决这个问题。。

    然后就直接写邮件告知。。。也没出现啥问题啊。。。。。
    工具用最简单的就行了。。关键在人和做的过程。搞复杂了会打击积极性的。。尤其是有很多人参与的情况下,你喜欢用工具不代表别人也用。那选择大众化的未尝不可。

    当然,你说的那种直接跑工位上去看就比较搞笑了。

    我还本来想自己做一个review的工具,后来也是转念一想,还真没什么必要。。。。需求太少了。

    github你可以试试,简单而高效。批注很给力。当然,前提是公司敢于把代码放上去。虽然github也有私有库。
    atempcode
        12
    atempcode  
       2012-06-09 14:03:11 +08:00
    xuwenhao
        13
    xuwenhao  
       2012-06-09 14:07:31 +08:00
    ReviewBoard,但是觉得不太好用,也就是凑合
    kaichen
        14
    kaichen  
       2012-06-09 14:36:14 +08:00
    不放心放在Github的话,可以自己搭一个GitLab http://gitlabhq.com

    有个前提,是用Git
    clino
        15
    clino  
       2012-06-09 21:54:57 +08:00
    可以用 google 的 gerrit,当然前提是也用 gerrit 的 git 服务,很方便好用

    或者用 redmine ,这个可以和外部的版本管理服务相配合 svn/hg/git 都可以
    sampeng
        16
    sampeng  
       2012-06-09 22:17:41 +08:00
    @kaichen 看了一下,最关键的代码评论功能没有。。
    kaichen
        17
    kaichen  
       2012-06-09 23:58:29 +08:00
    @sampeng 有的,和Github一样可以对整个Commit或者某行代码进行comment。Comment的时候还可以选择是Notify整个项目的所有人或者只是Author。
    fly2never
        18
    fly2never  
       2012-06-10 00:00:34 +08:00
    @clino redmine+1, 配合code review插件不错
    zhangyk
        19
    zhangyk  
       2012-08-11 14:38:55 +08:00
    @Elfe Crucible也可以下载安装在自己服务器上。不过不是开源的。
    lnsoso
        20
    lnsoso  
       2013-02-06 12:52:56 +08:00
    直接每日通过 shell 生成 repos 的 .php diff 来硬读
    qiukun
        21
    qiukun  
       2013-02-07 23:41:07 +08:00
    faywong8888
        22
    faywong8888  
       2015-01-23 16:51:02 +08:00
    @kaichen gitlab适合项目维护者review贡献者也就是一对一的review。不知道gitlab有没有多对一的review方案?
    faywong8888
        23
    faywong8888  
       2015-01-23 16:51:50 +08:00
    @clino gerrit用过两年,专注于做code review,非常好用且高效。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5627 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:57 · PVG 15:57 · LAX 23:57 · JFK 02:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.