MVCのVとCをブラウザに持っていったら?

« shivaken

「RESTful MVC」なアーキテクチャの話[Life is beautiful]を見て、そういう開発をやったのを思い出した。ただし、右半分だけである。

サーバ側にはモデルとそのラッパ(認証など)のみで、
ブラウザ側のJavascriptがControllerとView(Template)の役割を持たせる。
Javascriptでラップされたオブジェクトへのメソッド呼出が
サーバ側でのメソッド呼出と一対一になる。
間はXML-RPC。次のプロジェクトではJSONに切替えた。

問題は左半分側がないために、ユーザを不必要に待たせる時間が存在することだ。
なぜかというとJavascriptのロードが終わって実行されてからデータを取りにいくから。

初期の描画だけでもサーバ側でやればその問題はなくなるが、ビューを別言語で二つ書かなくてはならない。これは手間だし、バグの温床になりかねない。

でも今は違う。これからはサーバサイドでもJavascriptが使えるし、QUnitとかでちゃんとテストも出来る。となるとJavascriptで作った同じView Templateをサーバとクライアントで使える。

というわけで冒頭の方式が出てくるわけだ。
僕の場合、まあAjaxでどうせ「データオブジェクトを描画する」ところを書くならJavascriptでクライアント側で、と思ったのが出発点だったけど、
この方式には役割を明確化し、インターフェースを正しく定義することに
必然性を持たせる作用があるとLife is beautifulでは主張されている。
確かに役割が不明確になってControllerが肥大化とかあるある。

そういえばローカルストレージとかでもクライアントでのViewは重要になるね。
だれかJavascriptでのテンプレートエンジンをよろ。
[コメント(0) - トラックバック(0) 2009-10-19 20:19]
Twitter、フォローしてちょ
OwletのCD売ってます!