【まいくろふろんとえんど】

マイクロフロントエンド とは?

公開:
💡 巨大フロントエンドを小分けにして、チームごとに独立開発する戦略
📌 このページのポイント
マイクロフロントエンド — チームごとに独立開発 https://example-ec.com 共有シェル(ヘッダー・ナビゲーション) 商品検索 検索... カート 商品A × 2 商品B × 1 レビュー ★★★★☆ 「とても良い商品... 「使いやすいです... チームA: React チームB: Vue チームC: Angular 各チームが独立した技術スタックで開発・デプロイできる
マイクロフロントエンドによる独立開発
ひよこ ひよこ
マイクロフロントエンドって、マイクロサービスフロントエンド版みたいなもの?
ペンギン先生 ペンギン先生
まさにそう!バックエンドマイクロサービスで分割しても、フロントエンドが巨大な一枚岩だとチーム間の調整が大変でしょ?フロントエンドも機能ごとに分割して、各チームが独立して開発できるようにする考え方だよ
ひよこ ひよこ
具体的にどう分けるの?
ペンギン先生 ペンギン先生
たとえばECサイトなら「商品検索」「カート」「レビュー」「決済」をそれぞれ別のフロントエンドアプリとして作るんだ。チームAはReactで検索を、チームBはVueカートを作る、なんてことも可能だよ
ひよこ ひよこ
別々に作ったものをどうやって1つのページにまとめるの?
ペンギン先生 ペンギン先生
主な方法が3つあるよ。WebpackのModule Federationで実行時に合体させる方法、iframeやWeb Componentsで埋め込む方法、それからサーバーサイドでHTMLを組み立てる方法。最近はModule Federationが人気だね
ひよこ ひよこ
デメリットはないの?
ペンギン先生 ペンギン先生
あるよ。各アプリのJSバンドルが重複してページ全体のサイズが膨らんだり、アプリ間の状態共有が複雑になったりするんだ。小規模チームだと運用コストが利点を上回ることもあるから、「チーム間の調整がボトルネックになっている」という明確な課題がある組織で効果を発揮するよ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「マイクロフロントエンド」って出てきたら「フロントエンドを小さく分割して独立開発する手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Micro Frontends」 = 小さなフロントエンド群
💬 バックエンドのマイクロサービスと対になる概念で、2016年のThoughtWorks Technology Radarで紹介されたのが広まるきっかけだよ
← 用語集にもどる