サーバーサイドはMojoliciousでディレクトリ構成は矯正されるが、クライアントサイドも綺麗に作りたいのだ!
一旦、Webアプリ作成は筆休めというか、リサーチしているんですよ。 サーバーサイドPerlはMojoliciousなりAmon2なりでつくれば ファイル分割して、アプリをつくれます。
じゃ、クライアントサイドは? Backbone.jsを学習しているんですが、 ファイル分割まで面倒はみてくれません。各自ご自由にというスタンスです。
mojo generate app Doco::WebでWebアプリのひな形を作ったあとに publicディレクトリ配下に分割を考えながらjsファイルを置いた、ところまでは いいんですが、javascriptの名前空間?で詰んでしまった。 名前空間の定義をdoco.jsにまとめて定義してみたんですが、 どうにもこうにも動かない。
ソースは、こちら
├── public │ ├── index.html │ └── js │ ├── Doco │ │ ├── Model │ │ │ └── Address.js │ │ ├── Web │ │ │ └── Root │ │ │ ├── router.js │ │ │ └── view │ │ │ ├── addressinputview.js │ │ │ └── addressview.js │ │ └── doco.js │ └── vendor │ └── backbone.js
Web系の会社では、そんなの知らないのって一蹴でしょうけど・・・
javascriptのネームスペースとファイル分割の技法についてまとまった本なり ないか?? なんとなく、require.jsというキーワードが気になるが、何者なんだろう。
まぁ、その辺から学習。
TODOMVCの中に、Backbone.js+require.jsを組み合わせた例が乗っているなぁ。
Organizing your application using Modules (require.js)
しかし、上記のリンクの抜粋なんですが、「Backbone.jsは、多くの開発者を暗闇に置き去りに」 やっぱり難しいんですよ。はい。裏を返せば、別のフレームワークは置き去りにしていないようです。
Unfortunately Backbone.js does not tell you how to organize your code, leaving many developers in the dark regarding how to load scripts and lay out their development environments. This was quite a different decision to other JavaScript MVC frameworks who were more in favor of setting a development philosophy. Hopefully this tutorial will allow you to build a much more robust project with great separation of concerns between design and code.
ググって、ググって、こんなのも発見 Modularizing your Backbone Router using Require.js
しかし、ソースをみたら、なんか複雑そうだ。なんで、簡単なことをやるのに、こんなに複雑になっていくのだろうか。私の低脳にはついていけないかも。 クライアントサイドは鬼門だな。