极客视点
极客时间编辑部
极客时间编辑部
113240 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/04:09
登录|注册

微前端架构的好处和缺陷

讲述:丁婵大小:1.90M时长:04:09
“微前端架构”是一种使用微服务模式构建前端应用的方法。微前端的理念是将前端拆分为一组可独立部署、松散耦合的应用。然后将这些应用组装在一起,以创建面向用户的单个应用程序。近日,Twitter 上关于“微前端”的话题火了,支持和反对两派都拿出了有力的论据,吵得不可开交。
软件工程师、InfoQ 编辑 Kevin Ball 认为实施微前端具体有哪些代价、有哪些区别,都取决于项目和组织资源约束条件。实现微前端有很多好的方法,自然也有许多糟糕的手段。以下为具体内容。
好处:组织灵活性和一致性
微前端的支持者强调它能像微服务那样减少团队间的依赖,提升组织灵活度。微前端的其他好处有:
独立部署不同的服务。
实现自治团队,具备独立迭代和创新的能力。
能够围绕业务部门或产品来打造团队。
这些都是很有价值的优势,对于大型和复杂的项目尤其明显;但即使是较小的应用程序项目也可以受益于独立部署等微前端特性。
不足:操作复杂性
开发者不仅要编辑静态文件,还要完成诸如构建复杂系统、转换和大型框架等任务,所以想要实现正常运行的前端环境需要一系列复杂的工作。微前端让前端环境变得更加复杂了。如今在整个应用中进行任何类型的测试都可能需要多个前端协作,更不用说将这些前端组装在一起所需要的各种工具了。
经历微服务的开发者会很熟悉下面这些挑战:
需要在开发中运行许多不同的应用来测试完整的应用体验。
跟踪和调试整个系统的问题。
应付整个系统的版本控制任务。
本质上来说,开发者是在用整个系统的复杂度代价换取单个前端的简洁度。
缺陷:性能、不连贯的体验
Twitter 上有很多对微前端的批判。下面的问题看来是非常严重的:
每个团队都有自己的技术选择,浏览器最终可能需要下载很多框架和重复代码。
用户是把公司和产品看作一个整体的。所以这也是反对完全独立组件的一个论据——如果团队也完全独立开来,问题会更加严重。
微前端的一些实现(特别是嵌入 iframe)可能会导致严重的可访问性问题。
虽然微前端的支持者争辩说这些问题不一定会出现,但这种方法似乎确实让这些问题出现的可能性增加了。
综上所述,Kevin Ball 认为,微前端能否做到利大于弊,具体取决于公司的情况和条件。对于小型、高度协作的团队和相对简单的产品来说,微前端的优势相比代价来说就很不明显了;而对于大型、功能众多的产品和许多较独立的团队来说,微前端的好处就会更突出。
还有一系列方法可以在避开所有缺点的前提下获得许多好处。
只要坚持使用一种框架,并利用像 single-spa.js这样的协作框架,开发者就可以通过资源共享和只需下载一次的公共代码来避免大多数性能损失。
此外,也可以使用共享组件库来消除许多不一致的用户体验。当然,这些方法都需要开发者放弃一定程度的独立性。到某种程度之后,架构就不再是微前端架构了。具体怎样取舍也是取决于公司的产品和组织情况。
最后,无论如何,工程就是权衡的艺术,而微前端为开发者提供了另一个可以做权衡的维度。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • 加菲猫
    微前端为微服务孕育而生,问题是推动技术队伍第一生产力
收起评论
显示
设置
留言
1
收藏
51
沉浸
阅读
分享
手机端
快捷键
回顶部