http://www.infoq.com/presentations/emberjs-url
1 comment | 3 points | by WazanovaNews 約17時間前 edited
ブログプラットフォームのオープンソースプロジェクトGhostのadmin機能の開発フレームワークをどうするかという議論がGitHub上で行われています。これを書いている時点でコメントが98件ありあまりに長いので詳細割愛しますが、Backbone.js / AmgularJS / Ember.jsなどの比較検討をしています。
モデレーターが最初に & 途中で、何が課題で、何を議論するべきで、どのような情報が必要か、そしてどのように議論を進めるのか、このようにしっかり定義しているので、健全にかつ活発に議論が進んでいて、各フレームワークのコア開発者もコメントを寄せています。リモートワークも含めて非同期に仕事を進める機会が増えていく中で、書くコミュニケーションの大切さは色んなところで言われてますが、このレベルが求められているのだなといういいお手本かと。
さて、話しをタイトルの件に戻すと、上記の議論の中でSam Selikoffが、
- Backbone.js: Minimal solution / High flexibility
- AngularJS: Midsize solution / Moderately flexible
- Ember.js: Comprehensive solution / Low flexibility
Ghostは包括的なソリューションを求めていることは明らかで、Backbone.js + ReactもしくはAngularJS + non-Angularのモジュールでもできるかもしれないが、….Backbone.jsとAngularJSはもっと多目的で、開発者コミュニティも多様、….Ember.jsは野心的な(複雑な)webアプリの開発に向いていて、それが、ちょっと皮肉っぽいかもしれないが、Ember.jsがうまくやれる一つのこと。
というコメントを残しています。
その前提で、Tom DaleのQCon SFでのプレゼンを見ると、すっきり頭に入ってきました。
Ember.jsは、マルチページの大型アプリ開発に向いている。ショッピングカートのようなシングルページアプリであれば、他のフレームワークの方がよい。
同じページの中に複数のMVCクラスタを置く構成になると、MVCといっても、「どのModel?どのView?どのController?」というのが、すっきり整理できないといけない。それを実現するのが、Ember.jsのURL駆動型なフレームワークであるところ。この特徴は、複雑なアプリを複数のメンバで開発するときには特に役に立つ。
Ember.jsにおけるMVCはアプリのパターンではなく、コンポーネントのパターンである。
全部で44分のビデオですが、重要なポイントとデモは19分以降の最後の25分だけですので、是非ご確認ください。
Discourseという採用ケースもでてきたので、大型アプリ向けのソリューションというのがEmber.jsのアピールポイントになってきているのですね。
#ember.js