一般大厂应该怎样做 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 ?)最合适?

求各种细节
6835 次点击
所在节点    问与答
83 条回复
LostPrayers
2021-04-28 09:47:54 +08:00
@cassyfar 举个例子,一些编译好的 lib 目录,动不动就是上 G 的,项目一多,再加上其他非代码资源,上百 G 不是很正常吗
balabalaguguji
2021-04-28 09:49:38 +08:00
@cassyfar #42 你以为的版本管理是只能存放代码,SVN 是二进制也能处理好的,以前做游戏,美术资源、策划文档,全部都是直接丢 SVN 里面,可以做版本管理,查看每次修改,不是你以为的只有纯文本
balabalaguguji
2021-04-28 09:51:40 +08:00
@ladypxy #43 显然是没用过 SVN 的,权限控制都不知道是什么,SVN 是可以文件级权限控制呀,设置每个人对文件的读写权限
balabalaguguji
2021-04-28 09:54:49 +08:00
@zjsxwc #47 是的,很多人连 SVN 的文件级权限控制都不知道,都还没了解过就开始喷
lwlizhe
2021-04-28 10:24:25 +08:00
@balabalaguguji 网易确实用 SVN,但是据我所知,不少组内部用 git 的……
当时我问我老大,他说不是权限的问题,是那套绩效评估系统是远古时期构建的,当时是 SVN 的年代,统计代码量这块也是对接的 SVN ;
所以吧,我感觉,对于管理者来说,换 git 屁事一堆,还没啥可以吹的,自然而然就成了历史问题,结果到现在,堆积的东西太多,估计没法换了;

记得不少新兴大厂都是用 git 的,还发布过不少关于权限啊、工作流之类的文章
zjsxwc
2021-04-28 11:32:39 +08:00
git 分布式的好处是分支合并特别方便轻量,并且由此引发出了各种基于分支协作的工作模式,坏处是没有到某一个文件的权限管理。

svn 集中式好处是可以有到某一个文件的权限管理,坏处是开分支成本很高,合并分支也卡。


个人来说如果已经习惯了 git 各种分支工作模式,就会对使用 svn 体验有抵触,分支多就卡,合并也卡,解决分支冲突也卡,没有 git 那种舒服,我以前用 svn 都不怎么敢开分支,每次 svn 分支合并简直是噩梦。
vagranth
2021-04-28 12:04:42 +08:00
我司用 gitlab 的,提交代码用的是 Merge Request,在 commit comment 上写明 reviewer,然后 reviewer 直接在 MR 上做 comment,提交者需要处理完所有 comment 才可能会被允许 merge
vagranth
2021-04-28 12:09:58 +08:00
我同意 @kop1989 的说法,git 和 svn 两者没有优劣之分,只有适用场景不同(集中式 /分布式)。

不要说这俩了,即使是现在使用率已经很低的一些 version control 工具,在其出现时的背景,其存在都是有意义的。
vagranth
2021-04-28 12:14:47 +08:00
对于问题 2,如果用 git,请使用分布式思维方式,每个开发人员 fork 出来自己的工程,修改完后把需要 merge 的 patch 发 PR/MR 给 reviewer,在 reviewer 确认后,由主仓库维护者 merge 。主仓库不应该让所有人有写权限。
对于问题 3,commit 应该对应 comment,我觉得以 function 分比较适合。如果以 class 分,我想可能会出现编译不过的情况吧。commit 不能 break CI 。
cassyfar
2021-04-28 18:05:03 +08:00
@balabalaguguji 题主在谈程序员使用 git,你在这儿谈游戏,美术??
cassyfar
2021-04-28 18:06:02 +08:00
@duhb 网站静态资源存 git repo ?贵司水平高得离谱。
cassyfar
2021-04-28 18:06:58 +08:00
@LostPrayers 太厉害了,贵司 git repo 直接编译的 lib 也放?你这是瞎用 git 好吧。
balabalaguguji
2021-04-28 18:18:12 +08:00
@cassyfar #72 认知狭隘了吧,这种需求难道不是很正常吗?我用 SVN 就随便丢这类二进制文件
cassyfar
2021-04-28 18:28:37 +08:00
@balabalaguguji 一种是认知狭隘,一种是菜得离谱。我也算 7 年码农了,大厂呆过,真没见过这种百 G repo,今天算是开眼了。
carrieflint
2021-04-28 18:42:31 +08:00
@cassyfar 如果 kernel 是「巨无霸」,那这让 chromium 情何以堪😅
yhxx
2021-04-28 19:14:22 +08:00
@balabalaguguji
确认了一下,除了一些游戏部门因为历史原因还在用 svn 之外,网易绝大部分部门已经都在用 git 了
LostPrayers
2021-04-28 20:23:15 +08:00
@cassyfar 所以才是 svn 和 git 混用。那堆依赖的 lib 也不可能谁都去编译一遍
LostPrayers
2021-04-28 20:24:32 +08:00
@cassyfar 另外谁告诉你只有 web 项目才有静态资源的。。。
cubecube
2021-04-29 00:57:09 +08:00
@balabalaguguji 内部项目也没那么重要,信息安全可以通过别的方式保证。
svn 管理大的 repo,是灾难
imjamespond2020
2021-04-29 10:36:16 +08:00
思维不同,svn 是大一统管理一个公司一个超大项目,git 是分而治之,很多个小项目,几个人开搞

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

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

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

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

© 2021 V2EX