30

私は Web アプリケーションの初心者であり、より具体的にはこのMV*パターンの初心者です。私たちは Web アプリケーションを作成しており、jQuery から完全にではなく離れることを考えていますが、MVC、MVVM、または MVP をサポートするクライアント側言語を実装しようとしています。基本的に、モデルからビューを分離するもの。このMV*パターンに慣れていないので、このサイトに出くわしました。

MV*基本的に、このパターンをサポートするすべてのクライアント側の言語/フレームワークを (ほぼ!) リストしています。なぜなら、このサイトによると..

結局のところ、Ember.js は私が望むすべてを備えた唯一のフレームワークです。私は最近、比較的小さな Backbone.js アプリケーションを Ember.js に移植しました。いくつかの小さなパフォーマンス上の問題はありましたが、結果のコード ベースには非常に満足しています。Yehuda Katz によって支持されている Ember.js を取り巻くコミュニティも素晴らしいものです。これは間違いなく注目すべきフレームワークです。

しかし、SOでこれを見つけたので、angularの方がはるかに優れていると思いますが、SOでは、thisthisで、探しているのはバックボーンかもしれないと思います。

さらに悪いことに、テストではまったく異なる結果が示されます。ここ

http://jsfiddle.net/HusVw/1/ Backbone clear winner

http://jsfiddle.net/ercf/NrpcQ/ Backbone winner again

http://jsperf.com/angular-vs-knockout-vs-extjs-vs-backbone/2 angular winner for less data for more its knockout

http://jsperf.com/knockout-js-vs-direct-dom-manipulation/3 Backbone again

http://jsperf.com/angular-vs-knockout-vs-ember/33 no way its ember as the site mentioned

したがって、基本的に、これはすべて私を完全に混乱させます.Webの名前で何を学ぶべきか、サイトに何を実装すべきかを決めることができません. テストのようBackboneに明らかに際立っていますが、私は について多くのことを聞いてきましたが、knockout私が言及したSOリンクはangular? 現在開発しているアプリケーションに依存する可能性があることはわかっていますが、より広い視野が必要です。このプロジェクトだけでなく、長期的に役立つものは何ですか? どの場合、どのフレームワークを好むでしょうか? それとも、それらすべてを学ぶべきですか?

物事をもっと狂わせるために、私はダーツについて聞いた、そしてウィキは言う..

Dart の目標は、「オープン Web プラットフォームでの Web 開発の共通語として JavaScript を最終的に置き換えること」です。

js が置き換えられる場合、これらの js ライブラリ/フレームワークを学習することを検討しているハックはなぜですか?

それで、基本的に、それはすべてめちゃくちゃで、私は完全に混乱していますか?誰でも私が決めるのを手伝ってもらえますか?

4

2 に答える 2

26

おそらく客観的な答えはありませんが、ここに私の2セントがあります:

バックボーンは通常、保守がより困難なはるかに大きなコード ベースにつながります。リンクの逸話と同様に、コードが Backbone の 2500 行から Angular の 600 行に縮小された 1 つのプロジェクトに取り組みました。ノックアウトは、おそらく同等に小さい (=良い) 結果をもたらしたでしょう。私の同僚は Backbone から Knockout に移行し、その後は非常に満足しています。

Backbone の利点は、非常に軽量であり、物事を構造化するためのより多くのオプションを提供することです。これは、より多くのパフォーマンス チューニングを実行できることも意味するため、高速化できます。これらのまったく同じ側面が欠点でもあります。自分で構造化する必要があります。つまり、コードが増え、複雑になり、バグが増える可能性があります。

あなたが言及したテストに関して:それらは非常に特定のユースケースを強調しているため、ほとんど客観的ではありません。また、それらは Backbone の作者自身によって投稿されたものであるため、明らかに Backbone を適切に示しています。通常の UI では、3 つ (Backbone、Angular、Knockout) のどれを選択しても、パフォーマンスは問題になりません。Angular に関する 1 つの注意点: ページに 2000 を超える要素を動的に表示する場合、問題が発生する可能性があります (Angular の作成者自身の回答を参照してください: How does data binding work in AngularJS? )。

Dart について: その目標は、言語内の単なる MV* フレームワークではなく、言語になることです。それはまったく別の獣であり、単に MV* フレームワークが必要な場合、Dart はやり過ぎです。また、Dart はまだ非常に新しく、ほとんどのブラウザーでネイティブにサポートされていません。

于 2012-10-18T13:13:43.003 に答える
3

まず第一に、この質問に対する「良い」答えはありません。すべての MVC ライブラリは、作成者に尋ねると良いものです :p とはいえ、TODO-MVCの例を読み始めることをお勧めします。単純な TO-DO Web アプリケーションに必要なコードの量と複雑さを理解するためです。は。次に、何を持って行きたいかを自分で決めてください。個人的なおすすめはBackboneです。また、たとえばBackbone Nestedのように、(ほぼ) 魔法のようなことを行う補完的なライブラリがいくつかあります。

幸運を!

于 2012-10-18T13:13:11.193 に答える