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