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でのテンプレートエンジンをよろ。







RSS