大家有没有尝试过用什么工具提升团队 Code Review 时候的协作效率? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
leontung
V2EX    程序员

大家有没有尝试过用什么工具提升团队 Code Review 时候的协作效率?

  •  
  •   leontung
    ZhenhangTung 2022-01-11 17:24:07 +08:00 6488 次点击
    这是一个创建于 1368 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为我之前和现在的公司都实施 Code Review ,我发现我会重复做以下几件事:

    1. 最常见的:在 IDE 里写代码的时候,切换窗口到浏览器打开 Github/Gitlab 的网站,找到自己的 PR ,review 代码提交评论,再回到 IDE 里。
    2. 较为少的:我要 checkout 别人的分支在本地预览代码,这时候我需要 git stash 、git checkout branch 、git pull ,对着 IDE 在浏览器里提交评论。结束之后,checkout 自己开发的分支,恢复 stash 的代码,回忆自己上次写到哪里打开那个文件继续写。

    每次做都会耗费我一些时间,这些操作感觉有点琐碎,不知道是否可以在一个地方统一做掉省的来回切了。不知道大家有没有类似的感受?是否有工具可以帮助解决?

    37 条回复    2022-04-13 17:17:46 +08:00
    SoloCompany
        1
    SoloCompany  
       2022-01-11 19:30:10 +08:00
    用 worktree 就可以
    aircjm
        2
    aircjm  
       2022-01-11 19:32:08 +08:00 via Android
    upsource
    Ljcbaby
        3
    Ljcbaby  
       2022-01-11 22:53:00 +08:00
    VSCode 有 Github 插件来着
    DuDuDu0o0
        4
    DuDuDu0o0  
       2022-01-11 23:48:40 +08:00
    @aircjm 查了一下 upsource ,没明白这个软件和 gitlab 上提个 Merge request 有什么区别?
    shadowfish0
        5
    shadowfish0  
       2022-01-12 00:15:44 +08:00
    阿里云效好像有一个命令行方案,可以优化这个流程,名字忘了
    Mithril
        6
    Mithril  
       2022-01-12 00:54:49 +08:00
    @DuDuDu0o0 和 JB 家的 IDE 集成的更好一些。
    但实际上最关键的还是要减少每次 Review 的代码量,尽可能细的拆分功能。
    不然一次搞上去十几个类,几百行代码,折腾啥工具都没用。
    代码足够少你用 Gitlab 的 Review 都够了
    Goooler
        7
    Goooler  
       2022-01-12 03:19:53 +08:00 via Android
    idea 不是自带 GitHub 的代码审查功能,很好用啊
    marat1ren
        8
    marat1ren  
       2022-01-12 04:52:21 +08:00 via iPhone
    用 gerrit ,直接在网页上 review
    aircjm
        9
    aircjm  
       2022-01-12 07:12:21 +08:00 via Android
    @DuDuDu0o0 修改建议可以直接打在对应代码上 提高 review 效率啊 特别是很多文件提交的情况下 有上下文 可以直接在 jetbrains 的 IDE 里面进行 review 操作 merge request 光在网页上看 效率极低
    corningsun
        10
    corningsun  
       2022-01-12 07:51:11 +08:00 via iPhone
    2 你可以再 clone 一份代码到本地,专门做 code review ;这样不会打断自己写的分支。
    LeslieLeung
        11
    LeslieLeung  
       2022-01-12 08:06:30 +08:00 via iPhone
    Phabricator ,有个自带的 arc 工具用来 diff ,然后能生成一个链接,对方用链接就能 comment/accept 你的代码
    rhacker1995
        12
    rhacker1995  
       2022-01-12 08:24:20 +08:00
    idea 上已经集成了 github 的 pr review 了
    weiasd
        13
    weiasd  
       2022-01-12 08:55:25 +08:00
    gerrit 是不是已经过时了?
    leontung
        14
    leontung  
    OP
       2022-01-12 10:18:01 +08:00
    @aircjm 我昨天找了我朋友请教,他和你持一样的观点,指出 code review 的时候,上下文不一定都在这个 PR 改动的文件中,导致他需要拉到本地用 IDE 看,然后再对照着 IDE 去 Gitlab 里评论。
    lululau
        15
    lululau  
       2022-01-12 10:30:41 +08:00
    团队平均水平不够的话不要做 Code Review ,纯粹浪费时间
    EastLord
        16
    EastLord  
       2022-01-12 10:40:54 +08:00   1
    试试 CodeStream 插件?
    leontung
        17
    leontung  
    OP
       2022-01-12 10:44:21 +08:00
    @EastLord 感谢推荐,看着像是很不错,正在看它和 Github 插件的区别。请教一下你团队在用么?
    leontung
        18
    leontung  
    OP
       2022-01-12 10:47:40 +08:00
    @corningsun 厉害了,这也是个办法
    EastLord
        19
    EastLord  
       2022-01-12 11:42:28 +08:00
    @leontung 我也是刚查到的 团队没在用
    connection
        20
    connection  
       2022-01-12 11:47:45 +08:00
    可以请教一下你们分支管理以及 CR 时机么
    leontung
        21
    leontung  
    OP
       2022-01-12 13:11:20 +08:00
    @aircjm BTW ,请问你的团队在用这款产品么?因为是付费产品,需要能够有理由驱动我们老大买单
    Cihua
        22
    Cihua  
       2022-01-12 13:46:48 +08:00
    不确定是指那种,我们之前 java 用 SonarQube ,在 jenkins 打包镜像过程中去检测,发现不符合定的标准则会打包失败,同时 idea 有插件可以连接 sonar 服务器直接检测。
    lizuoqiang
        23
    lizuoqiang  
       2022-01-12 14:27:04 +08:00
    @aircjm upsource 不支持 gitee 吗
    leontung
        24
    leontung  
    OP
       2022-01-12 17:26:11 +08:00
    @connection 分支管理部分,我们是在一个仓库里开发,不走 fork 路线。主要有 3 大分支:production 、main 和 develop 。大家从 develop 切分支,开发完合并到 develop ,develop 对应 test 环境;准备上线前从 develop 合并 main ,main 对应 staging 环境,业务上这个环境预览测试; main 合并 production 分支,上生产环境。
    leontung
        25
    leontung  
    OP
       2022-01-12 17:30:15 +08:00
    @EastLord thanks ,我看下是否好用,我认为在 IDE 里完成 code review 是挺爽的,但可能只是我的个人观点。最好能够找到让我老板买单的点。
    leontung
        26
    leontung  
    OP
       2022-01-12 17:32:22 +08:00
    @Goooler thanks ,我和楼下提到的 CodeStream 对比一下。想请教一下你是觉得是这个插件好用,还是在 IDE 里 code review 这个过程好用呢?
    leontung
        27
    leontung  
    OP
       2022-01-12 17:35:44 +08:00
    @Ljcbaby 请问你日常使用这个插件么
    leontung
        28
    leontung  
    OP
       2022-01-12 17:37:15 +08:00
    @lizuoqiang 不支持
    > Review GitHub pull requests and GitLab merge requests in Upsource.
    aircjm
        29
    aircjm  
       2022-01-12 18:45:34 +08:00
    @lizuoqiang (⊙⊙) 我们之前用的时候用的是自建的 gitlab 没了解过 gitee 我理解可以用同步的方式同步 git 库 这个应该不是大问题
    aircjm
        30
    aircjm  
       2022-01-12 18:57:41 +08:00
    @leontung 换了团队了 需求太多就没时间做 review
    说下之前是怎么玩的 他是 10 人免费的 可以只建两个账号 ,一个提交人,一个 review 人 要 review 的时候合并提交记录,尽量在提交记录少的情况下进行 review 。
    每个人都可以用可以用这两个账号 但是也出现过账号混乱使用的问题

    也可以找 pj 但是不建议这样做 公司用不要用破解东西 有风险
    dayeye2006199
        31
    dayeye2006199  
       2022-01-13 06:35:46 +08:00
    原来只有我一个人永远看的是网页。。
    dayeye2006199
        32
    dayeye2006199  
       2022-01-13 06:41:32 +08:00
    我觉得其实工具倒还是次要的。以下几点我觉得对 review 的效率更重要:
    1. 每个 PR 只做一件事情 -- 加一个 feature ,修复一个 bug 等等;这样可以保证一次需要 review 的代码量不会太大
    2. 一些格式问题,常见的语法问题等等不要人来 review ,用 linter 和分析器来解决,review 之前保证先把这些低级错误给修复了
    3. 特别复杂的 PR 需要附上设计文档,作者需要阐述大概是怎么实现这个功能的
    4. 测试还是需要写,否则全靠人来把握代码正确性,reviewer 的心理负担会很重
    vilic
        33
    vilic  
       2022-01-13 07:33:44 +08:00
    我们通过远程工作空间解决这个问题,然后整合到了工作流中,不过也有代价。
    方案比较粗糙,因为是内部工具能用就行,可以参考一下。
    https://github.com/makeflow/remote-workspace
    leontung
        34
    leontung  
    OP
       2022-01-13 10:12:27 +08:00
    @dayeye2006199 哈哈,我也一直看网页,直到想到为什么不在 IDE 里 review ,是不是更高效?所以跑来请教大家意见
    leontung
        35
    leontung  
    OP
       2022-01-13 10:25:26 +08:00
    @vilic thanks ,我 star 了项目,待会试用一下,如果有问题向你请教
    Akiya
        36
    Akiya  
       2022-01-15 13:41:07 +08:00 via iPad
    vscode 的 GitHub pull requests 插件基本上可以满足需求了
    kejin114978
        37
    kejin114978  
       2022-04-13 17:17:46 +08:00 via Android
    我们在用云效,开箱即用,还不限制团队人数,背靠阿里大厂
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2889 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 39ms UTC 13:44 PVG 21:44 LAX 06:44 JFK 09:44
    Do have faith in what you're doing.
    ubao 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