首页 > 解决方案 > Is SPA a monolith in the browser?

问题描述

When I publish my SPA, I am deploying the entire code base. Are we entering an age in which we can say that what today is fancy SPA would tomorrow be a monolith in the browser?

标签: reactjsangularsingle-page-application

解决方案


这取决于您的 SPA 的规模和范围。您的 SPA 是否处理单个业务域/功能?那么也许它不是一个整体。想想微软是如何描述微服务的:

  • 微服务体积小、独立且松耦合。一个小型开发团队可以编写和维护服务。
  • 每个服务都是一个单独的代码库,可以由一个小型开发团队管理。
  • 服务可以独立部署。团队无需重建和重新部署整个应用程序即可更新现有服务。
  • 服务负责保存自己的数据或外部状态。这与传统模型不同,在传统模型中,单独的数据层处理数据持久性。
  • 服务通过使用定义良好的 API 相互通信。每个服务的内部实现细节对其他服务是隐藏的。
  • 服务不需要共享相同的技术堆栈、库或框架。

-- https://docs.microsoft.com/en-us/azure/architecture/guide/architecture-styles/microservices#what-are-microservices

将这些点与您的 SPA 进行对比。如果您发现您的 SPA 捆绑了大量跨多个业务领域的功能,那么请查看如何将这些功能拆分出来。什么可以独立部署?

微前端一词于 2016 年底首次出现在 ThoughtWorks 技术雷达中。它将微服务的概念扩展到前端世界。当前的趋势是构建一个功能丰富且功能强大的浏览器应用程序,也就是单页应用程序,它位于微服务架构之上。随着时间的推移,通常由单独的团队开发的前端层会增长并且变得更加难以维护。这就是我们所说的前端单体。

-- https://micro-frontends.org/

功能可以缩小到一个可共享的组件吗?那么也许你会想考虑一个微前端模式。 https://martinfowler.com/articles/micro-frontends.html https://micro-frontends.org/


推荐阅读