团队成员之间的 code review 大家都用什么工具? - V2EX
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 36641 次点击
    这是一个创建于 4950 天前的主题,其中的信息可能已经有所发展或是发生改变。
    以前在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  
    PRO
       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  
    PRO
       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     Solana     1168 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 17:39 PVG 01:39 LAX 09:39 JFK 12:39
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86