2011-12-10 7 views
13

大規模なWebアプリケーションの開発を開始しようとしています。メディア(ビデオ、音声&イメージ)と大きなユーザーベースが含まれています。大規模なWebアプリケーション開発のためのJqueryとGoogle ClosureとGWTの長所と短所

ウェブサイトのトラフィックも非常に高くなる可能性があります。

ここでは、私はjquery/jquery UIまたはGoogleクロージャーまたはGWTを使用するとちょっと混乱します。

私はjqueryに精通していますが、GWTのために多くの作業をしましたが、& Google閉鎖これが初めてです。

私もGWTを使うことができるので、私はGWTで初めてのことを言いました。

そうならば、事前

でクロスブラウザcompatiblityの点では、これらすべての3の賛否&短所、理解を容易に、コードのメンテナンス、リッチUI最新デザインのサポートなどに

-Thanksを私に提案してくださいこの質問はちょうどリンクを投稿する以外のいくつかの複製。

答えて

23

私は本当にあなたが作成したいWebサイトの種類に依存していると思います。
GWTは、おそらく、いわゆるSOUI(サービス指向のUI)とSOFEA(サービス指向のフロントエンドアーキテクチャ)に最も適しています。
GWT Webアプリケーションでは、バックエンドとすべてのUIワークフローによって提供される1つのHTMLホストページがあり、flow synchronisationはGWTによってクライアント側で実行されます。 したがって、アプリケーションのようなデスクトップを実現したい場合は、アプリケーションのような複雑なデスクトップを開発することができ、Java開発(テスト、リファクタリングなど)のすべての利点を提供する素晴らしいツールキットなので、GWTはおそらく最良の選択です。

"従来の" Web 2.0ish Webサイトの場合、GWTはJSフレームワーク(jQuery、dojoなど)よりもいくらか大きな学習曲線を持っているため、最良の選択ではないかもしれません。
さらに、これらのWebサイトには複数のページがあり、JavascriptはUIの拡張に使用され、フロー同期を完全に引き継ぐのではなく、ページをよりインタラクティブにするために使用されます。これらのWebサイトでは、通常、フロー同期を処理する良いバックエンド(Grails、Spring MVC)があります.JSフレームワークは、UIをよりインタラクティブにしたり、UIを変更したりする責任があります。

この種のWebサイトの例は、stackoverflowです。リンクをクリックすると、新しいHTMLページが読み込まれます。あなたの受信トレイのリンクをクリックすると、jQueryを使ってポップアップを開き、通知を取得して表示します。

Google閉鎖はおそらくGWTよりもjQueryに近いでしょう。 Google Closureの最大のセールスポイントは、クライアント側とサーバー側のHTMLテンプレートです。私はGoogle閉鎖で多くの経験を持っていませんが、彼らのウェブアプリケーションでGoogleが頻繁に使用しています。

私はここでGWTで主に働いているので、私はGWTについて考えることができます利点とDIS-利点のリストです:

利点

  • 堅牢なツールキット
  • 開発ツール(テスト、リファクタリング、エクリプス、ライブデバッグ)
  • すぐにブラウザの互換性があります(いくつかの注意点があります)
  • GWTをサードパーティのライブラリ(DTOのシリアライズ、MVPフレームワーク、など)クライアントにダウンロードされて使用されている
  • コードだけの可用性(あなたが唯一の特定の機能を使用する場合でも、JSフレームワークを使用すると、全体のフレームワークをダウンロードしてください) -RPCとRequestFactoryを使ってJAVAバックエンドと通信します(自分自身をシリアライズまたはデシリアライズする必要はありません)。

短所

  • ビガー学習曲線
  • は小さなUIの強化に適していない可能性があります
  • コードベースが大きく、別のブラウザで、言語がでなければならない場合には、いくつかの時間がかかることが
  • コンパイル
  • 複雑なアプリケーションで生成されるJavascriptが大きくなることがある(解法:コード分割)

サイドノート:それぞれの新しいGWTバージョンでは、新しいGWTバージョンの方がコンパイル時間とコードサイズが向上するため、デメリットは少なくなります。 GWT 2.5は、この分野でいくつかの本当に良い拡張機能を備えているはずです。

要約すると、インタラクティブなWebアプリケーションのようなデスクトップを開発する場合は、GWTがおそらく最良の選択だと思います。
しかし、より伝統的な "web 2.0ish" Webサイトを開発したい場合は、jQuery/Google Closureがより良い解決策になるかもしれません。

+0

完璧な...非常によく説明されています。実績 – Peeyush

+0

"JSフレームワークではフレームワーク全体をダウンロードしています..."注:これはクロージャでは当てはまりません。 Javascriptを「コンパイル」して難読化し、圧縮し、使用しているものだけをインクルードします。 –

+0

+1 GWT 2.5の情報へのリンクです。 :) – Justin

6

GWTは、すべてのJava IDEの良さを本質的にJavaScriptの開発にもたらします。 JQueryのように、GWTはブラウザを「標準化」しているので、通常はユーザエージェントチェックや何もする必要はありません。 Java IDEの優れた点は、名前、パッケージ、メソッドシグネチャ、あらゆる種類のものの変更に対する信頼性の高いリファクタリングサポートです。私はGWTを終えて2年が経ちましたが、特に大きなプロジェクトでは、その欠点はコンパイルのステップだと思います。それは高速ではありません。特に、ブラウザごとにすべてのJavaをコンパイルするのが難しい場合は特にそうです。私が正しくリコールすれば、今でもこれを実行すれば、IE、FireFox、Chrome、Opera、SafariのそれぞれのJavaScriptファイルが非常に大きくなります。それは時間がかかる、私の友人。純粋なJavaコンパイラよりも遅いものの、興味深いユニットテストフレームワークもそこにあります。

GWT利点:Java IDEエコシステムによる強力なツールサポート。 GWT責任:コンパイル時間

JQueryについては、ブラウザの互換性Cookieをクラックさせたような気がします。公平な開発者がアプリケーションに集中できるようにしています。私がJQueryについて知っていることは、開発者のマインドシェアを持つようだということです。私はJavaScriptの専門家ではなく、JQueryをJava Webアプリケーションに統合し、imgPreview(http://james.padolsey.com/javascript/new-jquery-plugin-imgpreview/)という画像プレビュー「プラグイン」を追加しました。午後に約30分で私の素敵なテーブルベースのUIにポップアップ画像のプレビューを提供します。ブラウザは過去2年間で成長してきたので、リアルタイムでJavaScriptを動的にデバッグできるようになりました(これはChromeのためのものですが、基本的にFireFoxとSafariでは同じです)。あらゆる種類のストレートDOM操作を行います。

JQueryの利点:解釈と開発者の心配なしのストレートJavaScript JQueryの責任:JavaアプリケーションレベルのどこでもJavaScriptをリファクタリングするのは難しいことです。

私の価値は2セントです。

+0

Googleクローズについては、私は知らなかった。おそらく、それはあなたの好みをGoogleのツールチェーンに傾けるゲームチェンジャーでしょうか? –

+0

おかげでボブはこのような良い説明をしました – Peeyush

+0

申し訳ありませんが、私は1つ以上の回答を受け入れることができません。 – Peeyush

3

jQueryだけのClosure Libraryの主な利点は、Closure Compiler(アドバンストモード)を利用するように設計されていることです。あなたは、生のjavascriptの素早い編集/デバッグサイクルとかなりの規模のコードライブラリを手に入れ、お客様が実際に使用するコード(コンパイルしたと仮定して)を待つだけです。

GWTの場合、コンパイルを避けるために「devモード」を利用することをお勧めします。

+0

クロージャコンパイラが終了しましたGWT 2.5に変換され、アクションRC1でテストできます。 –

関連する問題