AngularJS体系结构:单仓库或多仓库

时间:2018-07-12 12:24:21

标签: javascript angularjs architecture

我正在做一些研究,研究是否可能将巨大的整体式SPA(AngularJS)拆分为多个存储库。我们是否应该这样做?好处和陷阱。

想法:

该应用程序包含多个功能(用户管理,分析,事件管理),这些功能是单独创建的angular.module

想法是将这些不同的模块拆分成自己的存储库,并拥有某种主存储库,该主存储库将在部署之前将所有组件放在一起。

原因

我们的应用程序现在很大,而且只会越来越大。另外,从事此工作的开发人员数量也在增加。

其他原因:

  • 更易于管理和维护-仅提供特定功能的文件
  • 更容易更新到更新版本的angular-一次一个仓库

发现

我已经读到micro frontend架构正成为构造大型应用程序的越来越流行的方式。

另一方面,这将分散文件,使得在执行fx时更加困难。重构共享模块。看来,FX。 Facebook和Google拥有单存储区。

经过几天的研究,我仍然感到恐惧。我看到单存储库和多个存储库都具有优势。

我还研究了git submodule作为将功能“导入”到主存储库中的一种方法。这是我最不喜欢的选项。另外,我之前从未听说过git submodule,所以如果有人在该领域有经验,请随时加入。

最后,最重要的问题是:甚至可以将一个AngularJS应用程序拆分为多个存储库吗?

其他信息: Microservices: Mono repo vs. multiple repositories

1 个答案:

答案 0 :(得分:2)

处理Monolith代码库

我遇到了相同的问题,即随之而来的内部冲突。我找到的最佳答案是这个。 “您和您的团队是回答这个问题的最佳人选。”我知道这违背了Micro FrontEnds之类的大肆宣传,但它是事实。这就解释了为什么有些人会像Facebook那样使用巨石并获得真正的成功,而另一些人选择Micro Frontends却获得相反的结果,然后变得成功。

管理大量代码中唯一真正的问题是人为问题而不是技术问题。因此,这是一个社会问题。当然,技术上的事情会随着这个决定而改变,但是最终,您只是在改变程序员和此代码库之间的人机交互。

那么,为什么您的团队最有资格做出此决定。您比我们其他人更了解您团队的社会动力和企业文化。

做出这个决定时,我问自己这类问题。

团队如何合作?

您的团队如何训练?

您的团队有多灵活?

团队与团队成员之间的沟通有多清晰和开放?

我会回答这些类型的问题,并继续使用Facebook之类的案例研究,事实证明,一个整体上的团队规模并不重要,但是您如何在那个整体上一起工作并基于此做出决定。