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

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

最終更新:
💡 巨大フロントエンドを小分けにして、チームごとに独立開発する戦略

フロントエンドを複数のアプリに分け、各チームが独立して開発・デプロイできるようにするアーキテクチャ。マイクロサービスの考え方を画面側に適用し、利用者には一つのサービスとして提供する。

📌 このページのポイント
機能を分け、独立して更新する ECサイトの画面 共有ヘッダー・ナビゲーション 商品検索 検索… カート 商品A × 2 商品B × 1 レビュー ★★★★☆ 使いやすい チームA 独立して更新 チームB 独立して更新 チームC 独立して更新 同じ技術でも、異なる技術でも構成できる
EC画面の分け方の例。別々のアプリを統合し、共通の見た目や操作も設計する。
ひよこ ひよこ
マイクロフロントエンドは、画面を小さな部品にすること?
ペンギン先生 ペンギン先生
部品に分けるだけではないよ。各チームが担当するアプリを、独立して開発・デプロイできるようにする構成なんだ。画面の部品を分けても、全体をいつも一緒にリリースするなら、同じことではない。
ひよこ ひよこ
どんな境界で分けるの?
ペンギン先生 ペンギン先生
たとえばECサイトの商品検索、カート、レビューなど、業務のまとまりを考えるよ。各チームがその機能を担当し、利用者には一つのサービスとして見せる。この分け方は例で、細かく分けるほど良いわけではないんだ。
ひよこ ひよこ
各チームで違うフレームワークを使うの?
ペンギン先生 ペンギン先生
異なる技術を使うこともできるけれど、必須ではないよ。共通の技術を選んでも、独立した更新は目指せる。技術を混ぜると依存ライブラリや運用が複雑になることもあるので、目的に合わせて決めるんだ。
ひよこ ひよこ
どうやって一つの画面にまとめるの?
ペンギン先生 ペンギン先生
たとえばWebpackのModule Federationでは、別々のビルドのモジュールを実行時に利用できるよ。全体のナビゲーションなどを担当するアプリと、各機能をどう統合するかを設計する。方法は一つではなく、特定のツールを使うことだけが定義ではないんだ。
ひよこ ひよこ
導入すれば開発も表示も速くなる?
ペンギン先生 ペンギン先生
保証はないよ。チーム間のリリース調整を減らせる一方、ライブラリの重複で配信量が増えたり、見た目や状態の共有、複数のビルド環境の管理が難しくなったりする。独立した更新の利点と、そのコストを比べて判断するんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「マイクロフロントエンド」って出てきたら「画面側のアプリを分け、チームごとに独立して開発・更新する構成」と思えばだいたいOK!
📖 おまけ:英語の意味
「Micro Frontends」 = 小さなフロントエンド群
💬 マイクロサービスの考え方をフロントエンドに適用した名前だよ。2016年11月のThoughtworks Technology Radarで紹介されたことが、Cam Jacksonの解説でも記されているんだ。

参考資料

← 用語集にもどる