美文网首页编程我爱编程
前端微服务的基本构思

前端微服务的基本构思

作者: 林小米_91c5 | 来源:发表于2018-03-27 14:40 被阅读699次

前言

一个团队负责的项目(不管前后端还是全栈),随着时间的推移,会极大的可能发生下面的变化:

1.  单一项目,随着功能的增多,会变得越来庞大
2.  项目会越来越多,现有的人力,不足以维护当前众多的项目
3.  随着上述两个问题不断的加大,人力堆叠不可避免的产生
4. 人力堆叠必然会产生另外两个问题:1)人的能力不同  2)人的技术栈不同
5. 另外一个很重要的问题,当人员流失产生的技术债务

在后端,解决上述问题比较流行的解决方案之一 ---- 微服务架构;
如果我们将微服务的概念扩展到前端,那么需要满足哪些需求?
在这里我们且将前端微服务架构叫做微前端;

微前端

微前端我们希望

1. 最小程度独立开发
2. 最小程度独立部署
3. 轻耦合
4. 技术无关
5. 提高开发效率,减少开发时间

独立开发

细粒度开发,不论是一个大项目还是小项目,均可以拆分多个大小不一的小模块(app)
模块根据具体的业务场景,可进行打散和重新组合
模块与项目的关系可以是一对多(公用模块)或一对一 (单业务)

独立部署

一个单体的前端应用最大的问题是构建出来的前端资源文件(js,css)太大,若使用独立开发,则这些文件可以拆分成多个文件
可以按照不同的环境部署(如 CDN)

轻耦合

独立开发中,SPA的应用开发中DOM即API
前后端数据彻底分离
数据与业务分离

技术无关

我们必须组合app模块,若技术无关,那app可能是 angular, react, vue 等构成

那我们可以使用以下技术:

1. 使用后端模板引擎插入 HTML(渐进式从后端进行加载)
2. 使用 IFrame 隔离运行时(PostMessage)
3. 客户端 JavaScript 异步加载
4. WebComponents 整合所有功能模块
5. Single-SPA/Micro Frontends/Mosaic/Mooa/single-spa-angular-cli 【推荐】
6. 数据交互使用CustomEvent交互
7. 不同模块的数据使用共享事件总线
8. 使用不同的服务器缓存(squid, varnish, nginx),整合不同的模块

以上种种,只能更深刻说明一个观念
微服务属于分布式系统的概念之一,程式码并不会因此变得简单、短少,反而有可能为了处理外来的事件而变得更多
这似乎与我们期望的第五点相互矛盾,其实不然;
我们期望使用微前端架构提高个体的开发效率来相对的提高团队效率;
所以我们期望:

1. 技术有关(React),尽可能的约束团队使用的技术栈;
2. 代码规范以及最佳实践
3. 每个子模块必须有自己的命名空间
4. 相关API以及工具的说明文档



相关文章

  • 前端微服务的基本构思

    前言 一个团队负责的项目(不管前后端还是全栈),随着时间的推移,会极大的可能发生下面的变化: 1. 单一项目,随着...

  • single-spa微前端简单实践与优化思路

    微前端简单实践 什么是single-spa或者说什么是微前端 微前端是指存在于浏览器中的微服务。 微服务大家应该都...

  • 微前端技术

    一.微前端概念 前端微服务 二.常用前端架构 MPA(体验不好)SPA(体验号,但是体量大) 三.微前端架构 技术...

  • 微服务的微

    微服务的微,是指服务粒度的微么? 微服务可能是由此得名的。但在微服务架构思想中,服务粒度的微,不应该放在首要强调的...

  • 微前端理念

    什么是微前端? 微前端(Micro-Frontends)是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,...

  • 基于single-spa,single-spa-vue的微前端落

    1.什么是微前端 在说什么是微前端的之前我们先来思考一下什么是微服务,微服务是一种为了降低服务端耦合的架构方式(...

  • nodejs 微信支付

    微信支付比较简单 基本的步骤一、app前端获取统一下单(服务器提供) 二、拿到获取到的数据调用微信sdk支付 三、...

  • 基于 React & TS & Webpack

    m-fe/react-ts-webpack 在 Web 开发导论/微前端与大前端一文中,笔者简述了微服务与微前端的...

  • 微服务前端之微前端

    分而治之是利用微件拆分来达到工程拆分治理的思路,可以解决业务快速扩张、开发维护困难等问题。对于一个完整的产品来说,...

  • single-spa 微前端部署

    什么是微前端 微前端指的是在于浏览器中得微服务。 微前端是用户界面中的一部分,可以分割为多个react、Vue、A...

网友评论

    本文标题:前端微服务的基本构思

    本文链接:https://www.haomeiwen.com/subject/hwxurxtx.html