もじら組フォーラムの再構築

  • 投稿日:
  • by
  • カテゴリ:

もじら組のフォーラムを全面的に再構築することにした。 基本方針は以下の通り。

  • サーバー側はnode.js/MongoDB、クライアント側はjQuery/IndexedDBで書く。つまりどちらもJavascript
  • 見た目はStack Overflowを目指す。
  • Firefox OSにも対応する。

クライアントとサーバーのあいだではJSON形式でスレッドや記事を送受信することにしたい。

  1. クライアントがサーバーにアクセス
  2. サーバーはHTMLのテンプレートを返す
  3. クライアントはテンプレートを受け取ったらスレッドや記事のデータを要求
  4. サーバーはスレッドや記事のデータをJSON形式で返す
  5. クライアントは受け取ったテンプレートとJSONをデータからHTMLファイルを作成

こんなシーケンスになる。Single-page applicationの考え方で、モバイルへの対応を考えた場合はこれが最善だと思う。

サーバー側のフレームワークとしてはExpress、クライアント側のフレームワークとしてはBackbone.jsがメジャーなので、この二つを組み合わせたい。 Backbone.jsはnode.jsのモジュールもあるので、サーバー側でも使える。Backbone.Modelは両側で共有できそうだ。

通信はAjaxを使う方法とSocket.IOを使う方法がある。Socket.IOを使えば新規投稿のリアルタイム配信が可能。A Node.js speed dilemma: AJAX or Socket.IO?を読むと、AjaxでもSocket.IOでもパフォーマンスに違いはないことが分かる。とりあえずSocket.IOを使う方向で進めたい。

一番困っているのがクライアント側のDB。IndexedDBをlawnchairを通して使うのがよさそうなのだが、lawnchairは開発がそれほど活発でなさそうなのが気になる。かといって代わりのものも見つからない。