search
LoginSignup
17

posted at

updated at

Organization

アイランドアーキテクチャ(Islands Architecture)とは何なのか

はじめに

アイランドアーキテクチャは2019年にEtsyのフロントエンドアーキテクトであるKatie Sylor-Miller氏によって考案され、Preact作者のJason Miller氏のBlogによって広められました。

現在、アイランドアーキテクチャはAstroFresh などのWebフレームワークが採用しています。

アイランドアーキテクチャとは

ページ内でサーバー側でレンダリングされる静的な部分とインタラクティブなアプリの部分をそれぞれ独立して表示させる手法です。
静的な部分を海に見立てて、その海に浮かぶそれぞれが独立した島(インタラクティブなアプリ)というイメージでアイランドアーキテクチャと名付けられているようです。

メリット

1番のメリットはパフォーマンスです。
ページのほとんどの部分は静的なHTMLで構成され、JavaScriptが必要としない部分にはJavaScriptが読み込まれず、動的なアプリの部分のみJavaScriptが読み込まれます。
アイランドアーキテクチャを採用しているフレームワークを活用するとコンポーネントをインタラクティブにするタイミングを指定することができ、上の図の例にある画像のカルーセルはインタラクティブにする優先度が低いので読み込みを後回しにして、インタラクティブにする優先度が高い、ヘッダー部分を優先的に読み込むことでブロッキングを軽減することができます。

デメリット

デメリットとしてあげられるのはアイランドアーキテクチャはそれぞれのページが独立したMPAに該当するのでSPAと比較すると、ルーティングの体験がやや悪いということでしょうか。
Svelteの作者である、Rich Harris氏のツイートでその差を見ることができます。

注意点としてMPAとSPAはトレードオフです。どちらが優れていてどちらが悪いということではありません。
MPAとSPAの比較はAstroのドキュメントが分かりやすいです。

おわりに

アイランドアーキテクチャはAstroを筆頭に新しいWebフレームワークで採用されていっていますので今後流行っていくアーキテクチャだと思います。
最近Astro 1.0もリリースされましたし、そろそろ触っていってもいい頃合いなのかなと感じてます。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
17