マイクロフロントエンドを読み終えたので、感想と少し内容を整理して書いておきます。
フロントエンド開発のスケーリングを考える本
(Web)フロントエンド界隈は、 * SPAなどのクライアント側で行う処理の高度化・複雑化 * 数多くのフロントエンドフレームワークの台頭 * フロントエンド界隈の進歩、それによるフロントエンドフレームワークの後方互換性のないバージョンアップの高速化 * アプリなどとのハイブリッド化 などなど、ますますフロントエンド開発自体が複雑化しています。
ただ、その中では、あまりスケーリングするアーキテクチャの議論はまだまだ多くなかったように思います。
(とはいえ、調べた限りマイクロフロントエンドの考え方は、それなりに前から存在していたとは思います)。
この書籍では、技術的な手段が増えたことで、様々な手段が取れるようになった、フロントエンドのスケーリング(つまりマイクロフロントエンド化)について、そのアーキテクチャの選択、技術選択、プロセスの選択、組織構造の選択などをまとめています。
おそらく、非常にシンプルなWebアプリケーションを開発している段階では、必要性が少ないと思いますが、サービスが拡大してフロントエンドが複雑化しているときには、本書の知識が役立つのではないかと思います。
アーキテクチャの選定の整理
マイクロフロントエンドでは、以下のアーキテクチャ選定になるということで整理されています。
垂直分割は、これまでのフロントエンド開発(特にSPA)の開発に近く、そうした開発から移行しやすい点、UI/UXの一貫性を重視する場合の選択肢として紹介されています。
一方、水平分割を選択する場面として、以下の4パターンが紹介されています。
- 特定のビジネスサブドメインを複数ビューで表示するため、ビジネスサブドメインの再利用性が重要
- 検索エンジン最適化が重要
- 数百人規模のフロントエンド開発
- 顧客が特定の部分をカスタマイズするマルチテナントプロジェクト
バックエンドパターンも記載されている
(マイクロ)フロントエンド向けのバックエンドのパターンも記載されています。
こうした記述も含め、バックエンド開発がメインの開発者でも、フロントエンドの開発のスケーリングに対してバックエンドを含めた知識も得られるため、本書を読むのは有用だと思います。
まとめ
フロントエンドにそこまで詳しくない自分でも、サービスやシステムのスケールに対してのフロントエンド開発の課題として、思うところのあった部分が色々と整理されていたので、そのあたりは良かったです。
一方、まだまだ技術的には成熟していない部分や特定のサービス等に強くロックインされるものも多々あり、現時点で安定的な開発として取れる手段はそこまで多くないのかなという印象でした。
とはいえ、知らなければ取れない選択肢も多いので、学びは多いかと思います。
特に最後にイノベーターやアーリーアダプターな開発者のインタビューがあるので、このあたりを読むと現実への適用のイメージが湧きやすくなるのではないかと思います。