一般大厂应该怎样做 code review,如何组织 Git

2021-04-27 12:10:41 +08:00
 8e47e42
求有实战经验党讲讲:
1. Code Review 作为 Senior SE 的流程怎么做会比较能帮助到 junior SE ?如果一个 PR 有 bug/错误 /需要改进的地方,我要如何提出比较好。
2. 一般大厂的大家如何使用 git 协作?会直接在同个 code base 上协作(一个 git repo, 小组所有人有读 /写权限,遇到 feature 直接创建 branch,commit 到 repo,完成以后 PR 到 master/main ),还是通常会从主 repo 中 fork->创建一个 branch 写这个 feature->PR 回去
3. Commit 以什么方式组织( function ? class ?)最合适?

求各种细节
6830 次点击
所在节点    问与答
83 条回复
xujinkai
2021-04-27 12:25:50 +08:00
不是大厂 感觉可以参考一些大型的开源项目
balabalaguguji
2021-04-27 13:40:40 +08:00
真正的大厂,重要项目不会用 Git 吧,没办法做权限控制,反正我知道的 OPPO,网易都是用 SVN
xbh1794970183564
2021-04-27 13:42:29 +08:00
1.每次 cr 都会组内直接视频会议来进行,大概十几个人看你的代码
2.和你说的差不多
3.没听懂
wellsc
2021-04-27 13:43:51 +08:00
hackyuan
2021-04-27 13:46:47 +08:00
MonoBiao
2021-04-27 13:49:15 +08:00
AndyAO
2021-04-27 13:51:38 +08:00
有些大厂的内部项目就是不怎么用 Git,不过很多人不清楚

《 Google 和 Facebook 为什么不用 Git 管理源码?》
https://mp.weixin.qq.com/s/rVMCi8oDGdD5OsJnQlyL5g
Mirage09
2021-04-27 13:57:54 +08:00
1. 有错直接在 CR 上 comment 呗,还能怎么样。。
2. 我们组是直接 clone 到本地,然后提 cr,最后 merge 到主 branch,当然也有人开自己的 branch 去做一些 feature 和 testing
3. 没看懂

另外就我所知,Amazon 和微软都用 git (可能有些组不用?)上面有人说的 G/F 没去过,不知道
szdubinbin
2021-04-27 14:00:30 +08:00
1,首先你合入 master 肯定要跑 ci,确保你的代码首先没有致命问题导致不能编译并用自动化工具检查代码规范,js 就 eslint,提交 code review 的 commit 在有问题的地方评论就可以了,最后打回去修改,再提,这样。

2,开源项目是后者,公司 git 肯定不是所有人有 master 权限,大家开发完提交走上面的 1 过程后有导师 /有 master 权限合入

3,这个有一些规范,但没有强制,一般定义一个前缀,feature/fix/style 之类的,后面的看团队风格,下划线,横线我都见过,一般带项目信息,或者日期,个人 id 之类的,这个没有固定。
clino
2021-04-27 14:01:13 +08:00
szdubinbin
2021-04-27 14:01:29 +08:00
写错,上面是 branch 规范,commit 规范,跟上面差不多其实,看团队怎么定的。
kop1989
2021-04-27 14:02:54 +08:00
个人喜欢:
1 、直接写在代码注释里。
2 、3 这个跟公司组织结构,以及管理规范有关。有的只是取舍,没有一个最优解。

就跟楼上 git 和 svn 的讨论一样。
git 和 svn 代表着版本管理的两个思路和方向,git 是分布式,svn 是集中式。
这两个并没有优劣之分,只有适合与不适合。
Taojun0714
2021-04-27 14:31:40 +08:00
用 gerrit 代码审核那套流程,所有人都 git pull reabse, 不随意增加 git commit
mamili
2021-04-27 15:35:30 +08:00
用 gerrit 加 comment,Git 只用来提交,rebase 到一次 Git commit 上。
gerrit 再触发 CI
mongodb
2021-04-27 15:38:06 +08:00
@kop1989 确实是看组织结构。

比如我现在最喜欢的模式是各自平时用 git, 但最后到了 ci /cd 流程简直跟进了 svn 一样,一个一个排队慢慢审。这是我这最合适的一种方式。
balabalaguguji
2021-04-27 17:22:57 +08:00
@wellsc
@hackyuan
@MonoBiao
不管你们是否承认,这就是事实,权限控制大过天,大厂的开源项目用 Git 很正常,内部项目不用 SVN 怎么做权限控制,或者一个项目 100G 的,用 Git 怎么管理,每个人都 clone 到自己电脑 100G
balabalaguguji
2021-04-27 17:26:08 +08:00
@kop1989 #12 是的,一个正确的认识:git 和 svn 代表着版本管理的两个思路和方向,git 是分布式,svn 是集中式。
这两个并没有优劣之分,只有适合与不适合。
yhxx
2021-04-27 17:31:37 +08:00
@balabalaguguji

OPPO 我不知道,网易都是用 SVN ???
yhxx
2021-04-27 17:33:23 +08:00
话说我们 code review 的日常:
"xxx,马上要发布了,这个 CR 帮我点一下"
"点了"
balabalaguguji
2021-04-27 17:34:44 +08:00
@yhxx #18 网易是的,因为我在里面工作时就是用 SVN 。OPPO 用的是 SVNBucket 定制版本,我是 SVNBucket 开发者。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/773568

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX