数あるJS Frameworkの中でKnockoutを選んだ理由を紹介します。
つくりたかったもの
ざっくりいうと、、、チームマネジメント用のタスク管理ツール。基本的なtodo機能が人に紐付いていて、マネージャーがそれを一括管理できる。大規模ってほどではないと思います。
DOMへの即時反映+各々の環境でもリアルタイムに更新したい。リアルタイムはRails-Websocket使うとして・・その他のDOMの動き、通信は何で実装しよう、という感じ。
KnockoutJsを選んだ理由
先にKnockoutを導入したかった理由を上げてみます。
- (これはフレームワークを使いたかった理由)jQueryでDOMがめちゃくちゃになってよく泣いていたので、ビューをバインドできるMVがあるフレームワークを使いたかった。
- 学習コストが低い。資料やチュートリアルが豊富。フレームワークをガッツリさわったことがないので最初にはちょうどいいと思った。
- 機能がシンプルで、どんづまることがなさそう。
- AngularJsと違って、けっこうJSチックに書ける(そりゃそうだ)。
- 基本的なbindingなどが簡単に書ける。
- jQueryも使って問題なさそう。基本的にルールが緩く、書きたいように書ける。
- 機能が少ないというより、ライブラリを使えばいくらでも拡張可能。
- 今回の開発規模が中規模だったのでちょうどいいと思った。
その他フレームワークへひとこと
AngularJs
なんちゃってで使うなら簡単だけど、恩恵をうけるほど使いこなすには学習コストが高い。
BackboneJs
大規模向けで学習コストが高い。
ビューをガツガツいじる、て感じな印象がなかった。
VueJs
楽そうではあったが、まだ資料が少ないと思った。フレームワークがでては消えていくご時世で、VueJsを選ぶのは怖かった(これはEmberJsなど他のフレームワークも同様)。
という感じで、今のところ調子いいです。