Google Web Toolkit (GWT) を本格的な Java Web フレームワークとして使用するのは理にかなっていますか?

StackOverflow https://stackoverflow.com/questions/744515

質問

私は GWT がプレゼンテーション層全体の基礎として機能する可能性に興味があります。

誰かがこれを試みて成功したのか、または失敗したのか、そしてこれを試みることを私に説得できたのか、それとも説得できなかったのか知りたいと思っています。

役に立ちましたか?

解決

私は約 1 年前に GWT で働きました。当時、これは素晴らしいアイデアのように思えましたが、いくつかの注意点がありました。

  • API のいくつかの部分で「落とし穴」の問題がありました。これは、実際には Java のように動作する個別にコンパイルされた環境用に記述しているのに、Java を使用しているかのようにコーディングしているという事実に関連していると思われます。そのため、いくつかの誤った仮定を立てます (この場合、ネストされた値をフロントエンドに渡します)。もう一つは、gwt コンパイルに 32 ビット jvm を使用するように Ant スクリプトを書き直すことであったと思います。
  • 外観を微調整するのに少し時間を費やしました。完成したプロジェクトをデプロイしたことがないので、これがプロのレベルに達するまでにどれだけの作業が必要かわかりませんが、(論理的に) そうなるように思えました。これは、Swing インターフェイスを微調整することに似ています。視覚的には HTML よりも少し扱いに​​くいかもしれません。
  • 最終製品では ajax が隠蔽されているため、パフォーマンスが悪かったらどうするかという懸念がありました。

そうは言っても、それは間違いなく遊んでみる価値があるように思えます、そして特にそれがおそらく今でははるかに成熟していることを考えると、私の経験はインターネット時代のずっと昔のことでした。また、これはほとんどの MVC フレームワークとは非常に異なる (そして斬新な) GUI コード開発方法であることも指摘しておく価値があり、それ以外の理由がない場合は一見の価値があります。

私の感覚では、非常に厳しいグラフィック要件を備えた高負荷のプロフェッショナルなサイトを構築している場合、GWT はおそらく良い選択ではありませんが、それ以外の場合は問題ありません。

他のヒント

あなたはGWTはプレゼンテーション層を処理することを述べました。あなたもJavaでビジネスレイヤをやっているでしょうか?それは、そのツールキットです。そのような場合、私は正確にこれを行う ITミルToolkitのに、向けてあなたをポイントしたいと思いますあなたは完全にJavaでアプリケーションを実行するためにできるように、そのGUIコンポーネントをレンダリングするためにGWTを使用しています。私はそれがコインにしようとしている用語は「RIAドリブンサーバー」だと思います。

私は、PHPの背景から来るが、瞬時にツールキットを好きになりました。しかし、それは私が何もより多くを語ると、あなたがあなた自身の決定をやらせないであろうことを、おそらく良いでしょう。

のDisclamer:それは私の意見には無関係だが、私は、IT工場で働いています

GWTは比較的新しいです。コンパイルプロセスは、コードベースが大きくなるにつれてちょっと遅くなる傾向にあります。我々はそれで働いていたとき、私たちはより洗練されたウィジェットのレイアウトとレンダリングには多くの問題を発見し、エミュレータは実サーバとは全く異なる行動しました。また、我々は右から左に記述する言語のための国際化とのトラブルを持っていた...

すべてのすべてで、GWTは若い技術の問題(通常?)があります。しかし、それはあなたがそれを名前のようAjaxifyingのように、特定の物事が本当に簡単に行います。

私たちは、非常に大規模なプロジェクトのためにこれを行っている、そして限り、あなたはそれの限界、長所と短所を知っているとして、それは素晴らしい作品。私たちはCSSを使用して、ちょうどあなたのよう、他のHTMLページを、それを考えスキンとしてFunnily十分なプレゼンテーションは、私たちの口論の最低でした。このプロジェクトは、ライブ行って、私は何の不満を持っていないので、完璧に走っています。

私はそれを見つけ落とし穴あなたがここで見つけることができます:

最大GWTの落とし穴?

私たちは、GWTで行われ、全体プレゼンテーション層を持つ大規模な人事ポータルアプリケーションを開発しました。バックエンドは春です。それはすべて非常にうまく機能とUIは非常によく、ユーザによって受信されています。私たちは新しい機能を追加し、アプリケーションを維持するために非常に重要なことは簡単です。私は同等の何かをするとJavaScriptライブラリを使用して、保守するためにはるかに困難になると思います。

あなたは、クライアントサイドフレームワークのいくつかの並べ替えが必要なのですか、あなたは(私たちが行ったように!)1を書くことになります。私たちのアプリは、<のhref = "http://code.google.com/p/gwtportlets/上に構築されています"REL =" nofollowをさnoreferrer "> GWTポートレットの(フリーかつオープンソース)。

私たちは、さまざまな展開のためのアプリをスキニング用のHTMLフラグメントを使用し、各「ページ」のレイアウトは、XMLファイルに格納されます。

このraible動画にそのことについてのいくつかの良い情報: http://raibledesigns.com/rd/エントリー/ my_drunk_on_software_interviewする

それの自己で

GWTは、UIの強化ライブラリーではなく、フレームワークです。あなたはGoogle App Engineのとそれを使用する場合は、基本的なフレームワークを持っています。 (それは別の話である、と私はそれを見ながら、私は我々のアーキテクチャにこれを含めないことを決定しました)。

それは素晴らしいライブラリである、我々はそれにいくつかの壮観な事を行っています。それはしかし、ライブラリがあるので、それだけであなたのアーキテクチャは、それができるようになりますように良いです。

ANTは、64ビットのコンパイラで何の問題も行かない限ります。

< - dir.GWTCompileはGWTを含むディレクトリであります - >     <クラスパス>クラスパス               <引数値= "@ {gwt.baseModule}" />          <引数値= " - 厳格な" />   

あなたはそれを見てみたい場合は限り生成されたコードのように、それはすべてそこにあなたの戦争です。 (それはまた、オープンソースであるので、あなたがそれを見ることができます。)

GWTは、コンパイル処理中に何: これは、別のブラウザセットのJSライブラリの複数のコピー(それはコンパイルする分かかることが一つの理由)を作成し、あなたが必要に応じてこれらを追加/削除することができます。これは、ダウンロードする必要があり、それが厄介な場合(EI)他に、この場合は(FF)それを持っている必要はありませんとスピードを向上させるJSパッケージを低減します。 しかし、あなたは、あなたが、待つ必要がビルドサーバーのためにそれを残すことを許可する(または手動で(ネアンデルタール人)を構築、配備する必要がある場合)はありません(少なくとも日食で)ローカルデバッグを行うとき。

GWTの欠点。それは(ほとんど純粋に)JavaScriptクライアント側であるとして、あなたはそれをサポートする、またはバージョンのいずれかをサポートしていないもののためにそれを利用することはできません。 あなたは(mgwtのように)それらのギャップを埋めるために設計された追加のライブラリを使用していない場合は、いくつかの問題に実行することができますiPadやiPhoneのようなものについては、これます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top