返回

微前端之网易七鱼实践

前端

微前端架构是一种将前端应用分解为多个独立的、可复用的小型前端应用程序的架构模式。这些小型前端应用程序可以独立开发、测试和部署,并通过某种方式组合成一个完整的应用。微前端架构的优点有很多,包括:

  • 提高开发效率:微前端架构可以将前端应用分解成多个独立的小型应用,使开发人员可以并行开发这些小应用,从而提高开发效率。
  • 提高可维护性:微前端架构可以使前端应用更容易维护,因为每个小型应用都是独立的,可以单独进行维护,而不会影响其他应用。
  • 提高可扩展性:微前端架构可以使前端应用更容易扩展,因为可以随时添加或删除小型应用,而不会影响其他应用。

网易七鱼是一家提供围绕客户服务与智能营销的SaaS平台。在七鱼业务中,有在线系统、呼叫系统、机器人、工单系统、数据大屏等业务线,它们分布在两个业务端,管理端和客服端。这两个端的功能框架类似,都是由外层框架(顶部导航、一级菜单)及中间的内容区组成。随着业务体量的增大与功能的增多,前端代码量也随之激增,导致以下问题:

  • 代码维护困难:前端代码量大,维护困难,当需要修改某个功能时,往往需要修改多个模块的代码,增加了维护成本。
  • 前端构建慢:前端代码量大,构建时间长,影响开发效率。
  • 前端部署慢:前端代码量大,部署时间长,影响上线速度。

为了解决以上问题,七鱼团队决定采用微前端架构来重构前端应用。微前端架构将前端应用分解成多个独立的小型应用,这些小型应用可以独立开发、测试和部署。通过这种方式,七鱼团队可以提高开发效率、提高可维护性和提高可扩展性。

在实践中,七鱼团队遇到了以下几个挑战:

  • 如何将现有的大型前端应用拆分成多个独立的小型应用?
  • 如何保证多个小型应用之间的数据共享?
  • 如何保证多个小型应用之间的高性能通信?

为了解决这些挑战,七鱼团队采用了以下解决方案:

  • 使用webpack和DllPlugin将现有的大型前端应用拆分成多个独立的小型应用。
  • 使用redux和ngrx来管理多个小型应用之间的数据共享。
  • 使用micro-frontends-utils来实现多个小型应用之间的高性能通信。

通过采用微前端架构,七鱼团队成功地解决了前端应用维护困难、构建慢和部署慢等问题。微前端架构使七鱼团队能够以更快的速度开发和部署新功能,从而提高了七鱼的竞争力。

微前端架构的优缺点

微前端架构的优点包括:

  • 提高开发效率:微前端架构可以将前端应用分解成多个独立的小型应用,使开发人员可以并行开发这些小应用,从而提高开发效率。
  • 提高可维护性:微前端架构可以使前端应用更容易维护,因为每个小型应用都是独立的,可以单独进行维护,而不会影响其他应用。
  • 提高可扩展性:微前端架构可以使前端应用更容易扩展,因为可以随时添加或删除小型应用,而不会影响其他应用。

微前端架构的缺点包括:

  • 增加复杂性:微前端架构将前端应用分解成多个独立的小型应用,增加了应用的复杂性,使开发和维护变得更加困难。
  • 降低性能:微前端架构中的多个小型应用需要通过网络进行通信,这可能会降低应用的性能。
  • 降低安全性:微前端架构中的多个小型应用是独立的,这可能会降低应用的安全性。

微前端架构的未来发展趋势

微前端架构是一种相对较新的架构模式,但它已经受到了广泛的关注。微前端架构的未来发展趋势包括:

  • 微前端架构将成为前端开发的主流架构模式。
  • 微前端架构将与其他架构模式相结合,形成新的架构模式。
  • 微前端架构将会有更多的工具和框架出现,以支持微前端架构的开发和维护。