经过长达3个月的争论和研究,我们公司的前端团队已经得出结论,选择在Redux和Range2之间做出选择(考虑到它更适合我们的问题)。
我们进入了企业应用业务,它目前由许多不同的前端技术(同时拥有整个后端RESTful)组成,我们希望将其全部替换,并拥有一项单一的技术,以使未来的培训和质量控制更加容易。
考虑到我们产品的性质,它是巨大的,而且里面有模块,它们本身是一个不同的领域,可以作为一个独立的应用程序制作,但是产品本身存在于一个单一的URL中。
让我们把我的产品叫做SuperApp。
作为UI,SuperApp有标准的登录系统和子模块/子产品的导航,因此工作流如下所示。
- Profile ... ...
- Groups ... ...请注意,在上述表示中,Sub-product1和Sub-product2是两个完全不同的领域,具有完全不同的业务域。
我现在能想到的是,我可以将SuperApp创建为一个只有与自身相关的组件和视图的单个角2项目,而SuperApp还负责加载多个子应用程序;Sub-product1、Sub-product2 (同样,不同的角2项目,有自己的package.json、webpack配置等)。通过哑组件,充当一个shell,提供顶级路由和占位符来保存这些子应用程序。
一旦在shell中加载了Sub-product1,它就会将自己的路由附加到SuperApp已经登陆的当前路由。
我想要分离的原因是,这些不同的应用程序(目前是使用ExtJS构建的)有专门的团队致力于这方面的工作(我们是一家拥有500+开发人员的公司),所以如果他们有自己的专业项目,他们可以根据自己的喜好管理自己的工具和依赖关系,而无需依赖大父应用程序。
但是,在官方的角度文档中,或者在网络上,我找不到任何地方可以有嵌套的角度应用程序(这样的方式是框架代码是共享的,而只有在应用程序需要的时候,子应用程序的依赖关系才会被完全隔离和加载),或者是否有其他方法来解决这样的问题。
任何指导,甚至链接到任何相关的文章将不胜感激。
发布于 2018-10-27 20:12:14
你在描述我从模块里知道的。因此,我将以这样的方式提及is。
我不打算讨论关于缺乏框架知识的角度支持模块的问题。而且,在我看来,你不想要这个。根据我的理解,并且我希望您的后端反映,您希望将所有的东西分割成尽可能小的位(微服务)。
在这种情况下,图表上的每个点都应该是它自己的独立应用程序。他们一定要互相沟通,根据每一个职责组成你所描述的观点。你看到谷歌是如何将网址/工具/系统分开的吗?Gmail不关心这个,因为这不是它的责任。甚至所有工具的滑冰都是核心,而不是位于每一个工具中(你可以在材料设计上看到这一点)。资产存在于每个项目/系统之外。
这样,您就可以获得更高的可重用性和系统的灵活性。虽然在小型团队中,由于复杂性和时间的原因,这是站不住脚的。现在你的工作就是弄清楚你的案子到底在哪里。所有的微型服务和分离,都在一磅或在中间的某个地方。模块,如果可用的话,你可以在每个点里面使用。
发布于 2018-12-27 00:14:40
一种选择:您可以“硬链接”(而不是使用SPA链接)到子应用程序,让每个子应用程序共享站点包装器的依赖关系。
https://softwareengineering.stackexchange.com/questions/327634
复制相似问题