www.breck-mckye.com/blog/2023/0…
在这篇文章中,Jimmy Breck-McKye讨论了微前端(MFEs)的概念,以及它们在大型技术公司中的应用。他认为,尽管微前端在某些情况下可能有其优势,但它们应该被视为最后的手段,而不是首选的解决方案。他的主要观点是,微前端的复杂性可能会导致代码的发布、移动和测试变得更加困难,而且只有在团队足够大,领域划分得当的情况下,微前端才能带来收益。
微前端的问题
Breck-McKye指出,微前端的主要问题在于它们的复杂性和移动性。他认为,微前端的许多移动部分使得代码的发布、移动和测试变得更加困难。此外,他还批评了微前端的一些常见模式,比如将一个JavaScript应用程序分割成N个应用程序,每个应用程序都有自己的存储库和管道。他认为,这种模式可能会导致代码的复杂性增加,而不是减少。
微前端的替代方案
尽管Breck-McKye对微前端持批评态度,但他也提出了一些替代方案。他建议,开发者应该首先从模块化的单体开始,然后在重构领域之后再创建新的管道。他还建议,开发者应该在迁移代码之前先进行解耦,以避免出现分布式单体或者无法迁移的复杂页面的情况。此外,他还警告说,微前端可能会导致重写热,这是一种非常危险的情况,因为重写通常比预期的要复杂得多。
总的来说,Breck-McKye的观点是,微前端并不是一个愚蠢的想法,但是在采用它之前,开发者需要仔细考虑其复杂性和潜在的问题。他建议,开发者应该首先从模块化的单体开始,然后在重构领域之后再创建新的管道。他还建议,开发者应该在迁移代码之前先进行解耦,以避免出现分布式单体或者无法迁移的复杂页面的情况。