🎋 竹子日誌

微前端系列(二)

微前端要解決什麼問題?

會出現一種架構,代表背後就有一個要解決的問題。通常有以下幾種問題時,都可以考量導入微前端來解決當前架構問題。

既然產生這種架構必然會產生一些好處,也相對帶來一些壞處,做個微前端的優劣分析。

首先是好處:

  • 所有架構各自為政,也可以輕易插拔這些服務元件,首先是解耦。就算特定應用有破壞性損壞,也可以大幅降低對整個應用產生的影響,最壞的情況就是一個微應用為單位崩潰,而不會導致整個應用架構崩潰。

  • 再來就是應付大型團隊可以很好的去拆分職責,每個拆出去的 Repository 都可以獨立運行,選用自己想要的技術,並且各自為政不影響運行。

  • 因為是單一功能部署,所以 CI/CD 的運行更快完成。

  • 因為每一個功能都是基於被拆分的專案去開發,所以沒有超大型專案的維護壓力,只有各自小專案的規模。這樣開發節奏更快速,也可以承受更多工程師同時進行功能開發。

當然,有好處就有壞處:

  • 載入的 Application 因為都拆分好幾塊,所以基本的 Bundle Size 比較大

  • 功能操作限制多,不能操作 Browser Single State,否則狀態會同步異常,所以需要比較完善的團隊規範

  • 使用的函式庫或框架限制多,不能任意選用套件

  • 跨微前端溝通方式複雜且麻煩

那到底什麼樣的情境會需要使用微前端呢?

  • 當單一前端專案越來越巨大,已經影響編譯時間與開發效率。

  • 單一前端應用需要跨部門多個工程師共同維護,同一個產品已經很進行版本管理。

  • 單一產品需要整合多種框架或多種版本共存迭代。

  • 有大量需要多專案共用的業務與介面需要外放提供時。

留言