首页 > web前端 > css教程 > 从单个存储库到多重repo,再到monorepo,再到多月园

从单个存储库到多重repo,再到monorepo,再到多月园

尊渡假赌尊渡假赌尊渡假赌
发布: 2025-03-21 09:18:12
原创
463 人浏览过

从单个存储库到多重repo,再到monorepo,再到多月园

该项目的演变反映了许多软件开发旅程:开始简单,然后适应日益增长的复杂性。最初,它在单个存储库中进行了大型,整体上的应用,它通过建筑重构和存储库管理的多个阶段演变而成。

阶段1:单个存储库简单性

Leoloso/Pop项目始于WordPress网站,将主题和插件组合在一个存储库中。这提供了最初的开发便利性,但是随着越来越多的具有类似功能的站点,很快就变得笨拙。存储库的成长涵盖了大约十个站点,创造了一场维护噩梦。搜索和替换多个站点的字符串效率非常低。

第2阶段:多项式挑战

为了解决可伸缩性问题,该应用程序被重构为由作曲家管理的独立PHP软件包。这需要转移到多宗修置结构,每个软件包一个存储库。在促进代码可重复性和更好的体系结构的同时,管理200多个存储库变得非常繁重。版本控制依赖关系和跨众多存储库的拉力请求是非常复杂的。缺乏集中管理系统阻碍了有效的发展。

第3阶段:MonorePo效率

该解决方案是一个monorepo,一个单个存储库托管所有软件包。这个简化的版本控件,允许同时发行和简化的拉请请求。但是,由于Packagist需要单个存储库来发布包装,因此采用了两管搁置的方法:开发的MonorePo和单独的分发存储库。这需要使用MonorePo Builder工具来处理MonorePo的过程。这个阶段显着提高了开发速度,尤其是在重构期间。通过自定义的GitHub操作同时发布多个WordPress插件的能力,可以进一步提高效率。

尽管具有优势,但MonorePo仍提出了限制:在所有软件包中执行单个许可证,管理大型发行板,即使没有代码更改也没有包装的独立版本来处理。

第4阶段:多环解决方案

管理公共代码和私人代码的需求导致采用了多环形体系结构。公共Monorepo(Leoloso/pop)是上游存储库,而私人Monorepo(Leoloso/GraphQlapi-Pro)充当下游存储库,将公共MonorePo纳入了Git子模型。这使私人存储库可以访问和扩展公共代码库,从而可以使用单个适用的工作流来生成公共和私人插件版本。

但是,这种方法引入了复杂性。下游存储库需要明确检查子模型,需要仔细管理工作流程并可能破坏上游存储库的变化。这需要仔细的代码审查和沟通,以防止意外后果。

结论:持续的旅程

该项目的存储库结构的演变突出了适应不断变化的需求的重要性。每个阶段都提供了优势和缺点,最终导致了当前符合项目要求的多环境设置。但是,未来需求可能需要在存储库管理策略中进一步迭代。 “最佳”方法仍然取决于上下文,强调软件开发和存储库管理的迭代性质。

以上是从单个存储库到多重repo,再到monorepo,再到多月园的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板