V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
leontung
V2EX  ›  程序员

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

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

    因为我之前和现在的公司都实施 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   ·   实用小工具   ·   1973 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:19 · PVG 00:19 · LAX 08:19 · JFK 11:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.