arveltのソフトウェア技術メモ

Arvelt's software technology memo

ステートフルJavascriptを読んでのまとめ

ステートフルJavascriptを読んであとで思い返すためのメモ。

フロントエンドでMVCをやるという今流行りの知見における走りなのかと思う。
コントローラーはURLハッシュの変化を検知する。ビューはテンプレート使い、モデルと対応する。モデルの更新でビューが同時に更新される。このへんのMVCの役割を把握しておけばあとはFWで処理する感じ。紹介されてたBackborn.jsのサンプルをいつでも見れるようにしておいた。


https://github.com/arvelt/backborn-sample


以下メモ


・クライアントでMVCをやる
・モデル、ビュー、コントローラーの役割とは。
JavascriptのProttypeの仕組み
事実上の継承とみなせる。それを用いたクラスっぽい定義。
・要素の外側から内側の順にイベントが発生していくイベントキャプチャリング。要素の内側から外側へイベントが発生していくイベントバブリングがある。実際にはイベントバブリングが使われることが多い。
・イベントに関係するプロパティ。bubbles,button,ctrlKey,altKey,shiftKey,metaKey,isChar,charCode,keyCode,which,pageX、pageY,screenX、screenY,currentTarget,target、originalTarget,relatedTarget。
・非Domにも使用できるパブリッシュ/サブスクライブパターンについて。
・ORMを用いてサーバーのデータをモデルとして扱う。モデルのインスタンスをDomと関連付けて扱う。
・コントローラーの内部状態をローカルスコープに保存し、モジュール内にカプセル化するやりかた。
・コントローラー1つにビュー1つを対応させる。
・URLのハッシュを検知することでルーティングをする。
・モデルの更新をすることで、テンプレートで定義されたビューが更新されるようにする。
・RequireJSで依存性を管理する。
・WebSocketで表現するリアルタイム性。Node.jsとSocket.IO
・Xunit系のQUnitやSpec系のJasmineを用いたユニットテスト
・開発コンソールで使用できる。consoleオブジェクト。log()、trace()、profile()、time()など
・デプロイ時に有効的な、YUI Compressorを用いたコードの最小化。


ステートフルJavaScript ―MVCアーキテクチャに基づくWebアプリケーションの状態管理

ステートフルJavaScript ―MVCアーキテクチャに基づくWebアプリケーションの状態管理