如何看待字节跳动一实习生删除公司 GB 以下所有机器学习模型,事情经过是怎样的?事故影响有多大?
看到知乎这个问题,想问下大家公司都是怎么做权限管理的?
如何看待字节跳动一实习生删除公司 GB 以下所有机器学习模型,事情经过是怎样的?事故影响有多大?
看到知乎这个问题,想问下大家公司都是怎么做权限管理的?
小公司的话基本管理比较混乱,没有做太多权限限制(一般一刀切),大公司做的比较好,以前在华为的时候用的 svn(部分项目),华为对信息安全管理非常严格,甚至可以为了信息安全极大牺牲工作效率,svn 可以控制到文件夹可见性,权限管的严格,到什么地步呢?举个例子:
当然也有一些项目用 git,甚至自研一些管理工具,增强 git。
对于大公司来说 ,git 的功能还是太欠缺了,比如 google 和 facebook 都是一个代码仓库管理全部代码(对,你没看错),这篇文章有做解释:Why Google Stores Billions of Lines of Code in a Single Repository,这种做法是比较牛逼的,不是 bilibili 那种一个仓库(哈哈 open bilibili),权限管理、代码复用、代码构建可以说效率非常高,他们都是魔改,甚至重造了 git、npm、pip、maven 类似的工具以符合公司代码管理需求。可以看下阮一峰的文章:谷歌的代码管理
git 可以控制成员 push 等权限,但不能控制可读性,也就是说所有工作在这个仓库的人都可以读取全部代码,Linus Torvalds 开发 git 出来就是为了开源管理,但是公司代码大部分都是闭源的,git 做集中式管理不方便,如果对权限管理要求较细,可以试试 svn,不过大部分项目可以通过建立多个仓库管理的方式,分包构建的方式缓解这个问题
我司从两个方面实施吧,一是基于gitgerrit等项目进行适配改造,基本逻辑就是通过接入代码扫描等各类自动化扫描工具,提交之前扫描一遍有没有违规内容,以及架构或者成熟工程师审批;
Gerrit 是建立在Git版本控制系统之上并且基于Web的一个免费开源的轻量级代码审查工具。
作为开发者和Git之间的一层屏障,不允许直接将本地修改内容同步到远程仓库中。
与Jenkins集成后,可以在每次提交代码后,人工审核代码前,通过Jenkins任务自动运行单元测试、构建以 及自动化测试,如果Jenkins任务失败,会自动打回本次提交。
一般Git、Gerrit和Jenkins集成后的使用流程
1,开发者提交代码到Gerrit
2,触发对应的Jenkins任务,通过以后Verified加1
3,人工审核,审核通过后code review加2,触发对应的Jenkins任务
4,通过以后确认本次提交,Gerrit执行与Git仓库的代码同步操作
5,代码进入Git仓库
二是分支管理开发,这个内容就比较多了,一般就是开发是一个分支,测试、发版是一个分支,把对应开发、测试、准入环境隔离开。