现代Web应用程序变得越来越大,越来越复杂,有时由不同的团队管理。您的应用程序可能具有由不同团队开发的功能,并且您希望在交付整个应用程序之前仅将某些功能发布到生产环境中。如果你有一个仓库,你如何管理不同的团队、不同的发布时间表?大多数这些复杂的应用程序都存在于客户端,这使得维护变得更加困难。这个单一的大型应用程序还有一些其他问题。在这篇文章中,我们应该考虑微前端的原因是什么?1.应用小第一个原因是应用变小了,你不用下载很大的代码库,只需要等待10分钟所有依赖项就安装好了。想象一下,你加入一家公司并第一次克隆一个存储库,你必须等待15分钟才能下载依赖项和编译项目。当您查看源代码时,会发现有数以千计的组件被写入,您甚至不知道去哪里查看或在哪里进行更改等。如果您的应用程序足够小,那么在您的应用程序中导航会更快、更容易。2.应用程序独立由于所有应用程序都是分区和单独开发的,因此它们之间是相互独立的。当你有一个单一的应用程序时,你有太多的模块和组件相互依赖,导致混淆在哪里进行更改或在哪里寻找外观等。想象一个场景,你必须在现有的中进行一些更改单体应用程序和5个不同的团队在上面工作。有时您必须一次召开一个会议,并且需要大约2周的时间才能从所有团队中找到信息。如果应用程序具有明确定义的边界并允许专门的团队专注于它,通常可以节省大量时间。3.应用更容易理解应用更小,由一个团队开发,所以更容易理解。由于这些应用程序具有明确的界限并且由单个团队开发,因此它们通常遵循一致的风格指南,这使得它们更容易理解。对于大型应用程序,有几个团队在处理它,而且他们通常不遵循一致的风格指南。您甚至可以定义一个好的项目结构,因为用于项目的组件或服务的数量很少。4.应用程序更易于开发和部署由于这些应用程序的小型性和由单个团队开发,因此它们非常容易开发和部署。我们甚至可以独立部署。当你在Jenkins上有一个大型应用程序的构建管道时,有数万个组件,你必须等待20-40分钟才能下载和编译项目。当您为每个微应用程序定义单独的管道时,使用微前端可以大大减少这些构建时间。5.应用程序更容易测试我们必须为大型应用程序编写数千个单元测试并且运行需要花费大量时间。这会减慢我们的部署过程。说到微前端,每个应用程序的单元测试很少,执行自己的单元测试,可以独立运行。6.应用开发变得更快由于拥有独立的团队,整个开发变得更快更容易。7.CI/CD更简单每个应用程序都可以单独集成和部署,这使得CI/CD的过程更简单。当我们修复应用程序或引入新功能时,我们不必担心整个应用程序,因为所有功能都是独立的。8.独立的堆栈和版本我们可以为每个应用选择自己的堆栈,但这种情况很少发生,但我们可以在同一个堆栈中使用不同的版本。例如,一些团队有足够的灵活性和时间来引入和测试同一堆栈的更新版本。例如,React擅长任务灵活,Angular擅长其他需求,您可以根据需要选择框架,而不必依赖以前的开发人员或以前的团队来开始使用它。这同样适用于同一框架的不同版本。9.没有共享代码在大型应用程序中,我们倾向于跨功能共享代码,但这并不能很好地扩展,并且随着应用程序变大会引入许多错误和相互依赖性。这不适用于微前端,因为我们不共享代码,除非它是一个哑组件。我们可能会共享信息10.架构可以在不触及旧架构的情况下轻松更改有时我们必须扩展旧架构,但我们可能没有开发人员来实现或扩展架构。通过微前端方法,我们可以使用最新的堆栈开发新功能并独立交付。如果你想扩展一个已有20年历史的现有应用程序,很难找到开发人员,因为你必须使用新技术来实现整个应用程序,或者你可以借助微前端方法对其进行扩展。结论我知道微前端并不是所有问题的答案,但它给了你足够的理由和灵活性来开始考虑它们。
