GWT はひどい、ひどい、良くない、非常に悪い HTML を生成します。これはあくまで私の意見であり、他の人は同意しないでしょう。しかし、私は毎日 GWT を使用しており、無限にネストされた div とテーブルには、初心者の Web 開発者でさえ泣くほどです。また、そのスタイルはすべてインラインであるため、これらを外部スタイル シートで適用またはオーバーライドする場合は、!important
宣言の山ができてしまいます。
ただし、驚くほど美しい JavaScript を生成します。かつて非常に複雑な DHTML プロジェクトを維持および開発し、IE 5.5 以降のサポートを手動で提供しなければならなかった者として、これが GWT の最良の部分であることを認めざるを得ません。
確かに、私は DHTML 純粋主義者であり、ソフトウェア開発者になるずっと前から Web 開発者でした。個人的には、HTML は構造のみを提供し、CSS はスタイリングを提供し、JavaScript はその他の機能を提供する必要があり、3 つすべてを完全に分離する必要があると考えています。GWT は最後の部分 (JavaScript) ではかなり優れていますが、GWT が生成する HTML は私の感性を刺激し、必要以上に複雑で、少なくとも 10 倍は複雑です。しかし、繰り返しになりますが、生成されたコードのほとんどは. (MS Word で作成された Web サイト、または WYSIWYG スタイルのエディターから生成された HTML を考えてみてください。)
複雑な Web ベースのアプリケーション (および Ruby on Rails アプリケーションのローリングに対する制限) を考えると、私は喜んで GWT を使用します。しかし、私のアプリはほとんどFlowPanel
(HTML にコンパイルされる<div>
) と GWT で生成された Javascript のコレクションであり、その上に独自の CSS があります。したがって、OP によってレイアウトされた状況では、FlowPanel を使用し、要素 (GWT フォーム要素など) を追加し、サーバー側のロジックを適用してから、外部 CSS でスタイリングを行います。
GWT を見るときは、後でアプリケーションを再設計する必要があるかどうかを検討したい場合や、デザイナーやその他の非プログラマーにテンプレート/スタイル/CSS を作成して上に適用してもらいたい場合があるかもしれません。これが来た場合、スタイルを適用せず、代わりにクラスと ID を適用するように GWT アプリを設計するときは、細心の注意を払う必要があります。
また、テストの補足として、UI テストに Selenium を使用する予定がある場合は、ID を何かにぶら下げたいと思うでしょう。生成された HTML からの xpath は実際には使用できず、長さが数百文字に及ぶ可能性があります。
そうは言っても、他の人々の経験について聞くことに非常に興味があります。特に、それらが私のものと異なる場合.
tl;dr バージョン:
- GWT で生成された HTML は、ネストされたテーブルとネストされた
<div>
s の多くの層 (必要以上)では非常に悪い
- GWT は CSS スタイルシートを生成しませんが、すべてのスタイリングをインラインに配置します。これにより、外部スタイルシートの使用が面倒で困難になります。
- GWT は、クロスブラウザー Javascript で優れた仕事をします。
- デフォルトでは、GWT は要素に id を付けません。そのため、Selenium のようなツールを使用する予定がある場合は、独自の id を手動で追加するか、これまでに見たことのないような驚くほど長い xpath に直面する必要があります。