我搭建一个微服务,有订单模块,库存模块,用户模块,快递模块等等,这些模块如果写在一个父项目下,那么将整个项目push到gitlab后,和其他模块无关的开发者也可以下载下来无关模块并查看其中代码并做出修改提交,这显然是不安全的。可不可以各模块单独做成仓库,开发者只能pull自己负责的模块进行开发。如果我上述的方法可行,应该如何实现呢?
我搭建一个微服务,有订单模块,库存模块,用户模块,快递模块等等,这些模块如果写在一个父项目下,那么将整个项目push到gitlab后,和其他模块无关的开发者也可以下载下来无关模块并查看其中代码并做出修改提交,这显然是不安全的。可不可以各模块单独做成仓库,开发者只能pull自己负责的模块进行开发。如果我上述的方法可行,应该如何实现呢?
在Spring Cloud Alibaba中,创建微服务并不一定需要使用父子工程结构。你可以根据实际需求和团队的约定来选择合适的工程结构。
对于你的问题,将各个模块单独做成仓库是一种可行的方案。这样,每个开发者只能拉取自己负责的模块进行开发,从而避免了无关的开发者访问和修改其他模块的代码。
要实现这个方案,你可以按照以下步骤进行操作:
通过以上步骤,你可以实现将各个模块单独做成仓库,并实现更加安全和灵活的微服务开发。每个开发者可以只关注自己负责的模块,并与其他模块进行有效的协作和集成。
Monorepo是指在版本控制系统中维护一个单一的代码库,这个代码库包含了多个项目或模块的代码。这些项目虽然在逻辑上可能是独立的,但它们被放在同一个代码库中进行管理。Monorepo的优点包括:
尽管monorepo有其优势,但它也可能带来一些问题,比如代码库过大可能导致编译和构建变慢,以及不同项目之间的耦合可能增加。因此,是否采用monorepo策略需要根据项目的具体情况和团队的工作方式来决定。有些公司选择将所有代码托管在一个存储库中,供所有人使用,这种模式有时也被称为单体存储库。
除了Monorepo,另一种常见的代码管理方式是Multirepo。
Multirepo是指每个项目或模块都有自己的独立代码库。这种方式下,每个仓库负责一个特定的功能或服务,有助于保持项目的模块化和清晰性。以下是Multirepo的一些优缺点:
优点:
缺点:
需要根据以下几个因素来评估是采用父子工程结构,还是每个微服务独立工程结构:
8 回答6.6k 阅读
4 回答714 阅读✓ 已解决
2 回答3.4k 阅读
3 回答1.9k 阅读✓ 已解决
1 回答2.2k 阅读✓ 已解决
1 回答2.1k 阅读✓ 已解决
1 回答974 阅读✓ 已解决
我想的是每个模块是个单独的项目,单独的一个git