JAMstack: 名詞 \’jam-stak’\
クライアントサイド JavaScript、再利用可能な API、ビルド済みの Markup に基づくモダンな Web 開発アーキテクチャ。

「Stack」について話すことは、今ではもう OS や、Web サーバーや、バックエンドのプログラミング言語や、データベースについて話すことではありません。

JAMstack は特定の技術に関する概念でありません。Web サイトや Web アプリを構築する新しい方法です。それは、パフォーマンスの改善、セキュリティの向上、スケーリングのコスト削減、開発者体験の増進をもたらします。

FAQ

JAMstack とは?

なぜ JAMstack なのか?

JAMstack の始め方は?

JAMstack とは?

JAMstack で構築されたプロジェクトは、次の3つの条件を満たしています:

JavaScript

リクエスト/レスポンスのサイクルを処理する動的なプログラミングは JavaScript が実行し、クライアントサイドで完結します。そうするためのフロントエンドのフレームワークやライブラリは何を使っても構いませんし、ただの JavaScript でも構いません。

APIs

すべてのサーバーサイドのプロセスやデータベース操作は再利用可能な API に抽象化され、HTTPS を通じて JavaScript からアクセスします。これは自前で実装してもよいですが、サードパーティのサービスを活用しても構いません。

Markup

テンプレートに埋め込まれる markup はデプロイ時にビルド済みになっているべきです。通常は、コンテンツを見せる Web サイトであればサイトジェネレーターを使い、Web アプリであればビルドツールを使います。

例を見たいですか?

Web サイトが JAMstack で"ない"のはどんなときか?

クライアントとサーバーの密な結びつきに依存したプロジェクトは、JAMstack で構築されたとはいえません。たとえば次のようなプロジェクトです:

WorkPress、Drupal、Joomla、Squarespace といったサーバーサイド CMS で構築された Web サイト。

Ruby、Node などのバックエンドの言語に依存してサーバー側で動作するモノリシックな Web アプリ。

シングルページアプリケーションであっても、サーバー側で実行時にビューを組み立てる isomorphic rendering を使用したもの。

なぜ JAMstack なのか?

パフォーマンスの改善

ページの生成がデプロイ時にできるとしたら、わざわざ実行時にビルドして待たせる必要があるでしょうか? 最初のページビューまでの時間を最小化するには、ビルド済みファイルを CDN で配信するのに勝る方法はありません。

セキュリティの向上

サーバーサイドのプロセスがマイクロサービスの API に抽象化されるため、攻撃者が外部からアクセスできる部分が減ります。セキュリティの専門技術をサードパーティのサービスに任せることもできます。

スケールのコスト削減、容易化

デプロイが大量のファイルを置いてどこかに配信するだけであれば、スケールで問題になるのはそのファイルをより多くの場所に送ることだけです。CDN がこの問題の完璧な答えです。一般的な CDN サービスにはすべてのプランにスケールが含まれています。

開発者体験の増進

クライアント/サーバー間の結合を弱め、分離することによって、開発とデバッグにより集中できるようになり、サイトジェネレーターに使える CMS の選択肢を広げることで、コンテンツとマーケティングの管理を分離する必要がなくなります。

JAMstack の始め方は?

ベストプラクティスについて学ぶ →