发布于

MonoRepo - 你能相信吗?

作者

"您是否相信 Google、Meta、Uber 和 Airbnb 将几乎所有代码都放在一个存储库中?

这种做法称为 monorepo。

Monorepo 与 Microrepo。哪个是最好的?为什么不同的公司会选择不同的方案?

Monorepo 并不新鲜; Linux 和 Windows 都是使用 Monorepo 创建的。为了提高可扩展性和构建速度,Google 开发了内部专用工具链以更快地扩展它,并制定严格的编码质量标准以保持其一致性。

亚马逊和 Netflix 是微服务理念的主要大使。这种方法自然地将服务代码分离到单独的存储库中。它的扩展速度更快,但随后可能会导致治理痛点。

在 Monorepo 中,每个服务都是一个文件夹,每个文件夹都有一个 BUILD 配置和 OWNERS 权限控制。每个服务成员都对自己的文件夹负责。

另一方面,在 Microrepo 中,每个服务对其存储库负责,通常为整个存储库设置构建配置和权限。

在 Monorepo 中,无论您的业务如何,依赖项都会在整个代码库中共享,因此当版本升级时,每个代码库都会升级其版本。

在 Microrepo 中,依赖关系在每个存储库内进行控制。企业根据自己的时间表选择何时升级版本。

Monorepo 有一个签入标准。 Google 的代码审查流程以设定高标准而闻名,无论业务如何,都能确保 Monorepo 保持一致的质量标准。

Microrepo 可以设置自己的标准,也可以通过结合最佳实践来采用共享标准。它可以更快地扩展业务,但代码质量可能会有所不同。

Google 工程师构建了 Bazel,Meta 构建了 Buck。还有其他可用的开源工具,包括 Nix、Lerna 等。

多年来,Microrepo 拥有了更多支持的工具,包括用于 Java 的 Maven 和 Gradle、用于 NodeJS 的 NPM 以及用于 C/C++ 的 CMake 等。 "

Image

作者

Ai Base Network (ABN), ABN ASIA由具有深厚学术背景的人员创立,他们在美国、荷兰、匈牙利、日本、韩国、新加坡和越南等国家有工作经验。ABN Asia是学术界和技术相遇的地方。凭借我们领先的解决方案和优秀的软件开发服务,我们帮助企业提升水平,走向全球舞台。我们的承诺:更快。更好。更可靠。在大多数情况下:也更便宜。

无论您需要IT服务、数字咨询、现成软件解决方案,还是想向我们发送招标要求(RFPs),都请随时与我们联系。您可以通过[email protected]与我们联系。我们随时准备为您提供所有技术需求的帮助。

ABNAsia.org

© ABN ASIA