サーバはRESTfulなJSON APIに徹して、クライアントでデータをバインドする

jadeはテンプレートエンジンなので、サーバサイドでテンプレートにデータをバインドしてHTMLを返すことができる。しかし、Node.js + express + jade + jQuery Mobileを使ってアプリケーションを作る場合には、以下のルールに沿って開発した方が良いという結論に(個人的に)なった。

サーバサイド

  • Node.js + expressによって、RESTfulなJSON APIを提供することに専念
  • jQuery Mobileでは単一画面が基本となるため、jadeはその単一画面の生成を効率良く書くことにのみ利用

クライアントサイド

  • jQuery Mobileによって、単一画面によるUIを構築
  • サーバへの要求はjQueryAjaxを使い、取得したデータをクライアント側のJSでバインドして画面を構築
  • リアルタイム処理が必要であれば、Socket.IOを使う

考察

メリット
  1. サーバサイドがRESTfulなJSON APIに統一されるため、画面からの呼び出しだけでなく、他からの呼び出し(サービスとしての公開)にもそのまま使える
  2. サーバサイドでレンダリング処理が不要になり、少しでもサーバサイドの負荷を軽減できる
デメリット?
  1. クライアントサイドで、jQueryでゴリゴリ書くことになる
    • サーバサイドで処理しても記述する量はそれほど変わらないだろう。。。

その他