Closed. This question is opinion-based。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
                        
                        12个月前关闭。
                                                                                            
                
        
我正在研究将代码拆分一个巨大的整体式SPA(AngularJS)到多个存储库的可能性。我们是否应该这样做?好处和陷阱。

想法:

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

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

原因

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

其他原因:


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


发现

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

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

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

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

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

附加信息:
Microservices: Mono repo vs. multiple repositories

最佳答案

处理Monolith代码库

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

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

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

当我做出这个决定时,我问自己这些类型的问题。

团队如何合作?

您的团队如何训练?

您的团队有多灵活?

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

我会回答这些类型的问题,并继续使用Facebook之类的案例研究,事实证明,独立团队的规模并不重要,但您如何在该独立团队中共同努力并基于此做出决策。

关于javascript - AngularJS体系结构:单仓库或多仓库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51305628/

10-10 05:42