最近Marionette.jsを使ってみている。
時は未だにJSフレームワーク大戦争時代、なんでMarionetteなんですか?って話なんだけども、
- 作ってるのが管理画面に毛が生えたようなものなので、別にそんなパフォーマンスとか考えなくていい
- だから別にReactとか、DOM周りに工夫が入ってるやつじゃなくてよい
- 深遠な理由によりIE8に対応できるようにしておく必要があった
- この時点でいくつかのフレームワークは除外される
- Backbone系列には古いブラウザでも動きそうな謎の安心感がある
- Angularは個人で使ってみて好きじゃなかったので除外
この辺の理由です。ゴリゴリって訳じゃないんだけど、ちょっとリッチクライアント?的なものだからBackbone + Marionetteくらいの塩梅がええかなー、と。
実際、真面目に使ってみたらBackboneとMarionette、特に前者は老舗だけあって中々良く出来てるなー、と思った。それだけだと何とも出来ない部分は多いけど、「自分はここまではやりまっせ」という線引きは少なくともはっきりしている。
別にこれは比較でも何でもないので、他のは知らんけどな。
フレームワークオタクになる時間もなる気もないので、あんまり最近のナウいやつは追ってないんだけども、今後の流れとして
- 全体としてコンポーネント(modelとviewとロジックをくっつけて一つのまとまりを作って再利用する、その名前は何でもいいけど)志向になっている
- それらの通信はevent的な何かで行うことになるのだろう(多分)
- ここは最終何でもいいんだけど、event的なものが一番おさまりがいい気がしている。単にDOM Eventsが念頭にあるからだけど。
というイメージを持っている。
何らかのフレームワークに乗って気分良く作っていたとしても「Bootstrapのmodalを出さんといかん(ヒエー)」「XHRでPOSTした結果を何らか通知するようなUIがいる(ウヒョー)」みたいな要件は一杯あり、それらを全て気持よくカバーするフレームワークなんてものはおそらく存在しないので、実際の開発ではどうしてもフレームワークからはみ出した書き方をせざるを得ないことが多い。
なので、なんというか、「出来るだけはみ出しすぎないように書きつつ」「まあしょうがないよね、そういうもんだし」という気分でコードを書いている。
フレームワークの上に乗って、気分よく綺麗に書けるのはToDoアプリくらいなもんだ。