私の目標は、既存の Web アプリケーションを RESTfulシングル ページ アプリケーション(SPA)に移行することです。現在、いくつかの Javascript Web アプリケーション フレームワークを評価しています。
私の要件は次のとおりです。
- RESTful データ層 (ember-data など)
- MV*構造
- 動的ルート
- テストサポート
- 慣習によるコーディング
- SEOサポート
- ブラウザ履歴サポート
- 優れた (API-) ドキュメント
- 生産準備完了
- 生活共同体
背骨
現在のアプリケーションは を使用してbackbone.js
います。全体としてbackbone.js
は素晴らしいプロジェクトですが、どこで何が行われ、どのように実装される必要があるかを決定する明確に定義された構造が欠けています。開発者が変わる大規模なチームで作業すると、ある種の構造化されていないコードが発生し、保守が難しく、理解が困難になります。これが、私が今、これらすべてのものをすでに定義しているフレームワークを探している理由です。
残り火
ember.js
私は最後の日々を調べました。このアプローチは私には非常に有望に思えます。残念ながら、コードはほぼ毎日変更されます。したがって、私はそれを本番対応とは呼びません。残念ながら、バージョン 1.0 になるのが待ちきれません。しかし、私はこのフレームワークの背後にあるアイデアが本当に好きです。
角度
Angular.js
も広く普及しているフレームワークであり、Google によって管理されています。しかし、角度に慣れることができませんでした。私にとっては、構造が不明確で、フレームワークの各部分の全体的な責任についての説明が欠落しており、実装が遠回りに感じられます。はっきりさせておきますが、これは私の個人的な印象であり、知識不足に基づいている可能性があります。
バットマンとメテオ
私が理解したように、両方のフレームワークにはサーバー部分も必要です。また、RESTful バックエンドが必要なだけなので、言語、技術、ソフトウェアに関係なく、これは私たちが望んでいるものではありません。さらに、バックエンド API は既に存在します (RoR)。
ノックアウト、CanJS、Spine
これら 3 つの候補については、これ以上深く掘り下げませんでした。たぶん、これが私の次のステップになるでしょう。
だから今私の質問:
- 適切な SPA フレームワークがありませんか?
- どのフレームワークを提案/推奨しますか?
- 上記のフレームワークのいずれかを回避しますか?
- 大規模な SP アプリケーションでの経験は?
PS: Steven Anderson (Knockout.js のコア開発者) による "Throne of JS" カンファレンス (2012 年から) と JavaScript フレームワーク全般に関する素晴らしいブログ投稿をお勧めしたいと思います。
PS: はい、SO に関する質問が既にあることは知っています。しかし、SPA の開発は急速に進んでいるため、それらのほとんどは既に時代遅れになっています。