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

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

💡 巨大フロントエンドを小分けにして、チームごとに独立開発する戦略
📌 このページのポイント
マイクロフロントエンド — チームごとに独立開発 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で紹介されたのが広まるきっかけだよ
← 用語集にもどる