GWT の最大の落とし穴は? [closed] 質問する

GWT の最大の落とし穴は? [closed] 質問する

GWT を使用して実装することを選択したプロジェクトの初期段階または途中段階です。GWT (および GWT-EXT) の使用中に、克服できない大きな落とし穴に遭遇した方はいますか? パフォーマンスの観点からはどうでしょうか?

私たちがすでに見たり聞いたりしたことには次のようなものがあります:

  • Googleがコンテンツをインデックスできない
  • CSSとスタイリング全般が少々不安定なようです

これらの項目に関する追加のフィードバックもお待ちしています。 ありがとうございます!

ベストアンサー1

まず最初に、私は GWT の大ファンだということを言っておきます。確かに落とし穴はたくさんありますが、すべてではないにしても大部分は克服できました。

問題:コンパイル時間が長い。プロジェクトが大きくなるにつれて、コンパイルにかかる時間も長くなります。20 分かかるという報告も聞きましたが、私の場合は平均で約 1 分です。

解決:コードを別々のモジュールに分割し、変更があった場合にのみビルドするように Ant に指示します。また、開発中は、1 つのブラウザーのみをビルドすることで、コンパイル時間を大幅に短縮できます。これを行うには、.gwt.xml ファイルに次のコードを追加します。

<set-property name="user.agent" value="gecko1_8" />

gecko1_8 は Firefox 2+、ie6 は IE などです。


問題:ホスト モードは非常に遅く (少なくとも OS X では)、JSP や Rails ページなどを編集してブラウザーで更新を押したときに得られる「ライブ」変更にはまったく匹敵しません。

解決:ホスト モードにメモリを追加することもできます (通常は 512 MB を使用) が、それでも遅いです。GWT に慣れたら、これを使用しないようにしています。大量の変更を加えた後、1 つのブラウザー用にコンパイルし (通常は 20 秒ほどのコンパイル)、ブラウザーで更新するだけです。

更新: GWT 2.0 以降では、新しい「開発モード」を使用するため、この問題は発生しません。基本的には、選択したブラウザーで直接コードを実行できるため、速度の低下がなく、さらに firebug/inspect などを実行できます。

http://code.google.com/p/google-web-toolkit/wiki/OOPHM の使用


問題:GWTコードはJavaであり、HTMLページのレイアウトとは異なる考え方を持っているため、HTMLデザインをGWTに変換するのは困難です。

解決:これにも慣れてきますが、残念ながら、HTML デザインを GWT デザインに変換すると、HTML デザインを JSP ページに変換する場合よりも常に時間がかかります。


問題:GWT を理解するには少し時間がかかり、まだ主流ではありません。つまり、チームに参加したり、コードを保守したりするほとんどの開発者は、GWT をゼロから学ばなければなりません。

解決:GWT が普及するかどうかはまだわかりませんが、採用する人材を自分で管理できる企業であれば、GWT を知っているか、学びたいと考えている人材をいつでも選ぶことができます。


問題:GWT は、jQuery や単純な JavaScript などと比べると強力です。JS ファイルを組み込むだけよりも、動作させるにははるかに多くの設定が必要です。

解決:より小さく単純なタスクには、jquery などのライブラリを使用します。AJAX で非常に複雑なものを構築する場合や、RPC メカニズムを介してデータをやり取りする必要がある場合は、GWT を使用します。


問題:GWT ページにデータを入力するには、ページが最初に読み込まれるときにサーバー呼び出しを行う必要がある場合があります。必要なデータを取得している間、ユーザーがただ座って読み込みシンボルを見ているのは煩わしい場合があります。

解決:JSP ページの場合、ページは HTML になる前に既にサーバーによってレンダリングされているため、すべての GWT 呼び出しをその時点で実行し、それらをページに事前ロードして瞬時にロードすることができます。詳細については、こちらをご覧ください。

GWT呼び出しを事前にシリアル化してページの読み込みを高速化します


既成のものでもカスタムのものでも、ウィジェットの CSS スタイル設定で問題が発生したことは一度もないので、それが落とし穴になるというのはどういう意味なのかわかりません。

パフォーマンスに関しては、一度コンパイルされた GWT コードは高速であり、AJAX 呼び出しはページ全体をリフレッシュするよりも常に小さいことが分かっていますが、これは GWT に固有のものではありません。ただし、JAVA バックエンドを使用する場合に取得するネイティブ RPC パケットは非常にコンパクトです。

おすすめ記事