LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

项目由多个人员(公司)开发,但是不想让他们互相看到彼此的代码,除了手动合并代码该怎么办?

admin
2023年3月25日 0:26 本文热度 453

:项目由多个人员(公司)开发,但是不想让他们互相看到彼此的代码,除了手动合并代码该怎么办?

公司的系统由多个公司共同开发,但是领导考虑到git做分支会导致代码泄露,想寻求一个方法可以让各公司可以自己提交发布自己开发的部分。目前的方法是各个公司将代码写完后,由我统一手动合并发布,这样参与的公司越来越多,会导致忙不过来或者无法及时发布的问题。目前是一个公司开发一个模块就是一个仓库,每次其他公司需要合并,我再去拉取他们最新的代码,然后把改动的目录给手动覆盖到主项目的文件夹中。


唯一丶

SVN 好像可以给目录权限

2 月 3 日来自美国
kumfo

个人感觉是不是机制出啥问题了?这样来说,各个公司开发的东西当作一个独立的产品来做不就行了吗?然后各个公司的东西都独立部署,然后涉及相互调用部分就提供接口呗,公用一套鉴权方案。

2 月 3 日来自浙江
彷徨的鞭炮

@kumfo 公司买了一套框架,要求其他的公司也基于这个框架开发,才导致了这个问题

2 月 6 日来自海南

彷徨的鞭炮

各个公司的代码几乎没有冲突,一个公司负责一个模块。只有当有人修改了公共代码的时候,需要通知我人为修改。

2 月 3 日来自海南
边城

@彷徨的鞭炮 公共代码理论上来说不应该由负责模块的人来修改,他们最多提需求,由专人负责维护公共代码。

2 月 15 日来自四川


git submodule

将单独的模块独立出来,用submodule 的形式发布到一个新仓库,成员自行在新仓库中提交代码,你只需要维护公共的就可以了。
如何进行发布呢。
利用git hook的特性,自己在子仓库监听到对应的事件。如果事件有更新,则自动拉取代码就可以了。


这种问题不是在代码管理层面解决的,而是在系统架构层面解决的。举个例子,微信上跑了各种小程序,都用了同一套开发规范,但是并不各开发商都把微信的代码下载下来协同开发吧。

做应用系统也是一样的道理,如果应用系统的架构设计中考虑了第三方接入的“接口”那任何第三方都可以在按照规范开发的情况下,把程序接入大系统,不需要知道其他人的代码。框架层只需要发布一个规范,以及一套基础接口框架就可以了。

说起来简单,做起来难,不仅要有大局,还有很多细节需要处理。既然你们是买的一套框架,如果这套框架本身不支持插件式,可能要实现会有一些难度。

目标可以参考各种小程序框架,应用市场框架。技术可以参考微服务、微前端、插件化(比如 VSCode 就是经典中的经典)。具体该怎么做,就是具体情况具体分析了。


感觉这种代码管理方式有问题。 如果有代码合并,那么下一次fix bug或者开发新功能,肯定需要拉去全部代码,不然怎么基于最新代码做开发呢?

我提供一种思路,就是把网站的功能拆分成小模块,按照模块来创建仓库。不同公司维护不同的模块。模块间通过API约定好。

你只需要管理沟通好API,剩下的代码开发维护,由不同的公司维护不同的代码仓库。
如果出了bug,定位到模块,交由对应的公司去维护。


前端,
不同的人开发不同的页面 -> 微前端;
不同的人开发需求有交叉的功能 -> CDN、npm 包或 git submodule,总之代码加密好发出来。
不同的人开发同一个功能 -> 云主机;

如果楼主只是想解决手动合并的问题,那 gitlab pipeline、github actions、jenkins 这种都是合适的自动化工具


从描述上看,你的人工工作应该是可以自动化的。可以,写一个网页,让开发者自己填写相关信息,然后自动修改对应的文件。如果怕出错,可以加一个人工审核的步骤,审核通过再提交。


该文章在 2023/3/25 0:27:37 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved