Google Web Toolkitは、5ページ以上で一般的なレイアウトのWebサイトにはあまり適していないと聞きました。本当?少なくとも100のサブページと、CSSで定義された共通のレイアウトがあります。今日はPHPを使用していましたが、SpringMVCまたはGWTのいずれかのJavaフロントに移行します。somjQueryAJAXおよびjqGridなどの他のjQueryコンポーネントを使用しています。また、いくつかの.swf-filmsとfusionチャートもあります。SpringとGWTの組み合わせを選択するのは良い選択ですか、それともjQueryライブラリを備えたSpring MVCの方が良い選択ですか?
5 に答える
今はそうではありません。以前の GWT バージョンにはスケーラビリティに関するいくつかの問題がありました (たとえば、IE の JS コード サイズの問題 - http://code.google.com/p/google-web-toolkit/issues/detail?id=1440 )。ここに制限はありません。
さらに、最新の GWT バージョンは、必要なときに動的にロードできる部分にプロジェクトを分割する機能をサポートしています。仕組みについては、 https://developers.google.com/web-toolkit/doc/latest/DevGuideCodeSplittingを参照してください。
Spring は Java であるため、サーバー側とクライアント側の間でクラスを共有できる可能性があることも考慮してください。さらに、Java は IDE で非常に優れたサポートを提供しています。あらゆる種類のリファクタリングを利用できます (jQuery を使用する場合はあまり便利ではありません)。
したがって、Spring + GWT の方がより望ましい選択に見えます。
GWT は、Web アプリケーションをゼロから構築するための普遍的なフレームワークではありません。クライアント側に多くの複雑なロジックがある場合 (画像編集、リアルタイム コラボレーション、図の描画、ゲーム、複雑なレポートの作成など) に非常に役立ちます。しかし、これはすべて GWT なしで実行できます。GWT は次の場合に使用できます。
- あなたのチームは JS が嫌い/嫌いです (そして、JS が嫌いという理由だけで、JS で複雑なものを構築することはできません)
- あなたのチームはJavaの経験が豊富です
- あなたのチームは、このすべてのブラウザー関連の機能 (HTTP、JS、DOM、CSS など) を理解しています。
- このプロジェクトでは、クライアント側で実行される多くのロジックがあります
完全に GWT で構築された大規模なプロジェクトを数多く見てきました。GWT を使用する理由がなかったので、GWT を使用しない方がよい人もいます。ほとんどのプロジェクトでは、アプリケーションの一部にのみ GWT を使用するだけで十分です。
どちらを選択するかは、チームと実行中のプロジェクトによって異なります。GWT がプロジェクトにもたらす利点をチームが本当に理解できない場合は、GWT を使用すべきではありません。
私たちのエンタープライズ レベルのアプリケーションは両方を利用しており、結果には非常に満足しています。GWT は、開発時間を桁違いに短縮する強力なツールキットです。とは言っても、GWT がうまく処理できないものや、プレーンなものが適していないものはまだあります (それは問題ありません... そのため、Spring MVC は近くに存在します)。Spring サービスに直接アクセスする GWT-RPC があり、非常にうまく機能します。
私たちのプロジェクトは、ウェブサイトではなく、真のウェブアプリです。すべての「ページ」にまたがる統一されたデザインを使用します ( を使用しDockLayoutPanel
て だけを交換すると、center
これが非常に簡単になります)。
IMO、GWTは多数の「ページ」にわたる一貫した設計には適していないと言っている人は誰でも.
GWT (またはその他の方法) が開発時間を桁違いに短縮するという主張は、ショルダー パッドと Jan Hammer のシンセサイザーがファッショナブルだった時代に、Frederic Brooks によってすでに暴かれていると思います: http://en.wikipedia.org/ wiki/No_Silver_Bullet .
しかし真剣に、あなたが PHP ショップである場合、100% Java に移行することは莫大な投資であり、軽視することはできません。
私の GWT の経験上、私の唯一の悪い経験は、多数の順列による GWT コンパイルの遅さでした。私たちのアプリケーションには 20 を超える言語がサポートされていましたが、ブラウザー固有の結果として 6 を掛けると 120 の順列となり、ひどいパフォーマンスが得られることが判明しました。
ただし、これは実際のバグの問題ではありません。主に開発モードを使用し、コードを即座に更新し、ブラウザーと言語のセットを減らした特別なコンパイル ユニットを使用できるためです (1 つの言語と 1 つのブラウザー => 1 つの順列の場合でも)。あなたが望む)。
私の場合、Jenkins を使用して、大きな製品ターゲットを毎晩完全にビルドし、QA プラットフォームにデプロイして、QA チームがすべてのブラウザー言語の組み合わせをテストできるようにしました。そして、すべてのコミットで、削減されたビルド (私たちの場合は 1 つのブラウザーと 2 つの言語) が開発検証プラットフォームにデプロイされました。
GWT は間違いなく大規模なアプリに最適なツールです。;)