Micro frontend, architect design mới hay gánh nặng

Dạo gần đây, trong thế giới phát triển ứng dụng web đầy framework và phương pháp xây dựng phức tạp, một khái niệm mới đã nổi lên – “Micro frontend”. Tuy nhiên, ngay từ cái nhìn đầu tiên, người ta thường nghĩ rằng đội frontend chỉ đơn giản là “để cũng có một micro frontend” theo kiểu “microservice”. Nhưng thực tế không phải như vậy. Micro frontend đã xuất hiện từ khá lâu rồi, khoảng hơn 5 năm trước. Tuy nhiên, việc thiết kế hệ thống theo hướng này vẫn chưa phổ biến.

Hiện tại, công nghệ đã phát triển rất nhiều so với trước, với nhiều công cụ và framework hỗ trợ việc chia nhỏ ứng dụng, giúp dễ bảo trì và phát triển hơn. Nhờ đó, micro frontend đã trở nên phổ biến hơn. Bài viết này sẽ điểm qua những điểm mạnh và điểm yếu của thiết kế theo hướng micro frontend.

Điểm mạnh:

  • Sử dụng nhiều framework, thư viện có phiên bản khác nhau.
  • Chia nhỏ từng thành phần trong ứng dụng.
  • Migrate từng phần của ứng dụng cũ sang hướng micro frontend.
  • CI/CD dễ dàng và an toàn hơn.

Điểm yếu:

  • Khó config/setup và chưa ổn định 100%.
  • Quản lý state trên toàn bộ micro frontend gặp khó khăn.
  • Cần kiến thức backend để đảm bảo bảo mật.
  • Có thể xảy ra việc duplicate js, css.
  • Cần config thêm assets trong bundle tool.

Để giải quyết các vấn đề này, phương pháp tốt nhất là thiết kế micro frontend với sự độc lập về code và style. Một giải pháp khả thi là sử dụng web component, cho phép sử dụng các thành phần của chúng ta trong bất kỳ framework nào. Việc xây dựng micro frontend theo hướng isoldate (độc lập js, css) và load duy nhất một micro frontend vào shell thông qua routing cũng là một phương pháp hiệu quả.

Module federation là một phương pháp được khuyến nghị để load micro frontend vào shell app. Ngoài ra, việc quản lý state có thể sử dụng Rxjs hoặc các thư viện khác như Redux, Flux.

Bài viết này chỉ giới thiệu một số kiến thức cơ bản về micro frontend và các giải pháp cho các vấn đề liên quan. Tất nhiên, vẫn còn nhiều khía cạnh chưa được tối ưu. Vì vậy, nếu bạn có thể chấp nhận nhược điểm của micro frontend, hãy thử đổi gió khi có cơ hội. Dĩ nhiên, việc thay đổi cũng không mất quá nhiều thời gian.

FEATURED TOPIC