CoffeeScript/JavaScriptで "write once, run anywhere" 的な話(MeteorとRendr)
やりたいこと:
ドメイン駆動設計の4層アーキテクチャ的に言うと「分厚いドメイン層」を作りたい。「やむを得ず複雑になるビュー層」は仕方ない。「アプリケーション層」は極力薄くしたくて、内部DSLみたいにしたい。それはつまりドメイン層が美しいインターフェイスを持つことを意味しますが。そしてインフラ層は自前で作らない。
そんな感じのことがやりたい。さて、以下はそれをCofeeScriptでやろうという試行錯誤の途中経過の話です。
同じJSコードがサーバーとクライアントで共有されるような仕組みにしたいと思っています。ドメインモデルのコードはプラットフォーム非依存なpure JavaScriptコードなのだから。
Java には “write once, run anywhere” というコピーがあります(した?)。 POJO (plain old Java object) ならそうなりますよね。同じことを JavaScript でやろうと。 JSON なんか面白くて、JavaScript 由来のポータブルなオブジェクト・シリアライズ表現なわけですね。
最近やってること:
Meteor.jsみたいなserver-client agnosticなフレームワークが欲しい。Meteorはちょっとクセが強すぎて、もっと素性のいいフレームワークがいい。そう、Backboneみたいな…
AirBnbが作ったBackboneベースのRendr、よく出来ているらしい。(調査・評価中)
そもそもBackboneってブラウザに依存してるんだっけ?
あ、jQueryを読み込んでるじゃん(イマココ
結局はRenderを使わせて頂くのがラクかなーと思いつつあるところです。