2011-10-22 8 views
5

私は、両方の技術に熟練していた人が、2つの技術を客観的に比較できるかどうかは疑問でした。ブラウザ。GWTとSpring MVCとの比較

古いパラダイムの問題は、私にとってはSpring MVCレイヤのテスト容易性です。私は、テスト可能なアノテーションのためにアプリケーションに忍び込むことができるバグがたくさんあることがわかります。注釈/コントローラコードを変更するためにサーバーを再起動する必要があるため、このモデルも開発サイクルを遅くします...私は個人的に非常に迷惑をかけるものです。

私はまた、javascriptの複雑さに対処したくありません。 Javaですべてのアプリケーションを操作してテストすると、私にとって魅力的なサウンドになります。私は本当に別の言語を習得したいとは思っていませんし、その癖や奇妙なデザインの決定、独特の性格、ブラウザの非互換性の歴史などを学びたいと思っています。

複雑なアプリケーションの場合、GWTは優れたアプローチを提供しますか? Spring MVCよりも、このアプローチに深刻な制限があります。これは、動作するのが難しくなりますが、より柔軟性があります。複雑なアプリケーションを構築するのに共通する問題点やロードブロックはありますか?

私は本当に2つの比較を感謝します。私はGWTの経験はありませんが、Springについては10年以上の経験があることに注意してください。ありがとうございました!

+0

GWTを検討する場合は、パフォーマンスが受け入れ可能かどうかを確認してください。 –

答えて

4

真実はGWTにも学習曲線があり、少なくとも2年前に私はそれを見ましたが、あなたは基本的なコントロールをあまり使っていないので、外部ライブラリが必要で、 。

GWTを大いに習得しようとした後、私はjQueryまたはExtJSのいずれかを加えたWebサービスを選択しました。これは役割も非常に明確に分かれています。私は座ってJavaScriptを学んだが、それは簡単ではなかったが、GWTを使うよりもずっと面白かった。

ブラウザの互換性については、一度近代図書館を使用すると、そのライブラリはほとんどありません。私のコードは、IE 6を含む多くの問題のないすべてのブラウザで動作します。また、私が忙しすぎるときは、サービスのみを書き、JavaScriptインターフェイス部分をアウトソースするので、生産性が向上します。

とにかく、これはかなり主観的です。GWTに慣れ親しんだ別の人は、私の反対意見を持つことができます。をデバッグするの

  • やすさ:私はとにかく次のような理由を拒否します。これ以上は真実ではありません.FireBugでJavaScriptをデバッグするのは非常に簡単です.JavaScriptにはビジネスロジックもなく、サービスの呼び出しと表示のみが可能です。
  • ブラウザの互換性。覚えておくべき癖はほとんどありません。最も一般的なのは、IEがリストにあるコンマを受け入れないことです。これは、標準ではないものの、Firefoxはそれを許容します。どんな現代のJavaScriptライブラリでも互換性が保たれます。
  • スピード。まず、ブラウザ内の合理的な計算のためにJavaScriptが非常に速いことを述べます。遅いのはDOM操作です。もちろん、AJAX呼び出しのようなネットワークに関わるものもあります。あまりにも多くのものを詰まらせたり、DOMに直接多くの要素を追加するときに発生する可能性のある問題など、設計ミスをしないと、ページが正しく機能します。

は、私の知る限り、今考えることができるよう、唯一の正当な理由がある、私はすでにJavaのを知って、私は別の言語を勉強する必要はありません。

Spring MVCへのあなたのコメントについて。私はSpring MVCを使用していますが、サーバーを再起動することの苦労は感じません。春の重要なポイントは、すべてがコンテナの外で作業するのが簡単でなければならないということです! Springのコントローラでは、基本的なサービスを呼び出すだけの非常に最小限のコードしか持っていません。私が単位テストに必要なのはサービスです。

コントローラにはテストするコードがほとんどないので、JUnit内でそれらを呼び出してテストすることができますが、少なくとも今のところ、jQueryの呼び出しでWebページを介して行われる簡単な外部テストが必要です(ユニットテストではなく、統合テストですが、コントローラが正しく書かれていれば、ユニットテストにはほとんど価値がないと感じています)。

+0

私も私のコントローラーをテストしているので、もっと明確にすべきでした。ユニットテストでコントローラの注釈をユニットテストすることはできません。たとえば、@ PathVariableをメソッドパラメータに追加することを忘れた場合、ユニットテストは引き続き実行されます。また、リクエストマッピングの誤った名前またはスペルミスの場合は、サーバーを再起動する必要があります。明らかに、この悩みは人によって異なりますが、私もtomcatを起動してビューをテストする前に、できるだけ多くのものをテストできるようにしたいと考えています。また、Spring Container/Hibernateは大きなアプリの起動に非常に時間がかかります。 – egervari

+0

私はあなたの余分な説明を得る。しかし、GWTはSpringを置き換えるものではないので、あなたが概説した問題はSpring + GWTの設定ではまだそこにあるでしょう。私の答えの残りの部分については、もちろん私の意見です。 – stivlo

+1

これが当てはまる場合、私はWebアプリケーションを書くことでかなり完了したと思います。私はちょうどJavaScriptを楽しんでいない。すべてのブラウザで提供される基本的なAPIは非常に悪いです。私は基本的なプログラミングAPIを得るために、4〜6本の必須ライブラリ(jqueryとjqueryプラグインの上)に頼っています。私はそれが何年もそれを使用していない人のためにあまりにも多くの認知負荷であると思うので、非常に多くのJavaScriptのコーディングスタイル、命名規則などがあります。本当に残念です。また、私は様々な単体テスト方法を試みましたが、どれも満足していませんでした。それは残念です。 – egervari

4

複雑なプロジェクト(プロジェクト全体で200 KLOC)でGWTを1年以上使用していますが、GWTを試してみることをお勧めします。

私の意見では、GWTは習得が非常に簡単で、この技術をどのように使用すればよいかについては、実際には良いtutorialsがあります。

GWTを使用する利点は、ブラウザやJavaScriptについてほとんど知らなくても、すばらしい、高速でメンテナンス可能なWebアプリケーションを構築できることです。 Javaデバッガでクライアント側のコードをデバッグすることもできます。複雑なアプリケーションでは、これは巨大です。

GWTでは、クライアント側のコードを適切に単体テストできる可能性がありますが、これにはGWTのMVPパラダイムと慎重な計画が十分に理解されている必要があります。 GWTがあなたに完全な自由を与えるので、あなたのコードを混乱させると(このことは難しくありません)、この機能を失うことになりますが、これはGWTのものではなくあなたのせいです。

1

かなり基本的なMVCアプリケーションを作成するのに十分なだけSpringを学ぶには数ヶ月かかりました。 GWTを習得するのに約1ヶ月かかりました。 (私はすでにAndroidで3年間働いていたので簡単だったかもしれませんし、同様に動作しますが、それはいくつかの問題の解決策とまったく同じではありません。)私にとって、GWTは確かに春。

関連する問題