Google Web Toolkitは複雑なJavaScriptの開発に役立ちますか?
-
03-07-2019 - |
質問
Iamは、javascriptフレームワーク、特にjQueryの大ファンです。しかし、私はそれを止めるためにjavascript。 javascriptまたはそのフレームワーク。どちらがお好みですか?
解決
「生成されたJavascript」など、私を怖がらせるものはほとんどありません。 漏れのある抽象化の法則は、これらの場合に二重に真実にならなければなりません。
効果的なクロスブラウザjavascriptの作成は、継続的な改良のトリッキーなプロセスです。生成された、あいまいなJavascriptが間違っている場所を解読しようとすることは、大きな頭痛の種です。純粋なJSライブラリのバグを修正するのは十分に悪いです。
私にとって、GWTは、バックエンド開発者がフロントエンドのブラウザー内コードを作成できるようにすることを目的としたトリックです。残念ながら、最新のWebアプリの現実により、JavascriptとDOMを知っていれば十分です。何かが壊れるので、その理由を知る必要があります。
jqueryやprototypeのような優れたjavascriptライブラリを選択し、それをよく学習する方が良いと思います。それらのライブラリは、抽象化されるべきであるようなものを抽象化し、配列操作やAJAXリクエストのようなエッジケースで壊れることはほとんどありません。
他のヒント
この質問に対する回答のいくつかはまったく知らされていないと思うし、それらに答える人々は大規模プロジェクトでGWTを使用したことはないと思います。はい。GWTは大規模なAJAX Webサイトを作成するための優れた方法であり、バックエンドも含む大規模で複雑なサイトでは、JQueryのようなものをパーク内で上下させます。私がいつも見ているのは、JavaScript自体が小さなクライアント側のことをするのに最適だということです。より複雑なもの(動的フィールド、ポップアップ、アニメーションなど)を行う必要がある場合は、JQueryやPrototypeなどを導入します。さらに一歩進めたい場合は、GWTを使用します。
Javaで記述しているため、バックエンド開発者がフロントエンド開発を行えるように設計されているとみなされています。そうではありません。 Javaは、主に広く使用され、静的に型付けされており、多くの優れたエディターがそこにあるため、選択した言語です。
漏れやすい抽象化理論も購入しません。HTML要素を完全に抽象化しようとはしません。これらを使用すると、ネイティブjavascriptとDOMの両方に直接アクセスできます。
要するに、私たちはGWTで非常に複雑なサイト(そのうちの1つはGWTブログで紹介されています)を構築し、JQueryなどの他のライブラリも使用しています。 GWTを理解すると、複雑なタスクのために他のフレームワークが死んでしまうことを100%自信を持って伝えることができます。また、物事を改善するのに役立つ素晴らしいものがいくつか組み込まれており、他のフレームワークがサポートしていないものもあります(画像でできる魔法など)。詳細については、このブログ投稿を参照してください。
http://googlewebtoolkit.blogspot.com/ 2007/10 / epo-builder-built-with-gwt.html
はい、JavascriptではなくJavaを使用するので、そうです。
優れたIDE、静的コード分析、検索およびリファクタリング-これらすべてにより、大規模プロジェクトでの作業がはるかに容易になります。
いいえ。そうではありません。
複雑さを解消するのではなく、Javaパースペクティブから対処できるようにするだけです。 Javaから利用できるすべてのツーリングが提供されるので、それだけで価値があるかもしれません。
JavaScript IDEはどんどん良くなっています。通常、jQueryやPrototypeのようなフレームワークを使用している場合は、GWTのような重い抽象化レイヤーを扱うよりも簡単でしょう。
個人的な好みは、純粋なJavaScriptのアプローチを採用することですが、それは、より金属に近づけることができ、JavaScriptの猫を飼いならすのに十分な規律があるからです。
GWTでは、実際にJavaScriptを書いているわけではありません。 Javaを記述してJavaScriptにコンパイルできるというのが、完全な価値提案です。
私はGWTを使用してかなり良い効果を上げているプロジェクトに取り組んでいます。私たち全員が主に内部ツールに取り組んでいるJava開発者であるため、これは私たちにとって良い選択です。大規模なエンドユーザーサイトにどれほど役立つかについて話すことはできません。
特に気に入っている利点の1つは、シームレスなオブジェクトのシリアル化と逆シリアル化です。 XML-RPCの詳細が抽象化されるだけでなく、同じJavaコードがサーバーのバイトコードとブラウザーのjavascriptにコンパイルされるため、サーバーとクライアントが別々のクラスローダーで実行されているかのようにコーディングできます同じJVM。たとえば、サーバー上でJavaオブジェクトを構築し、RPCサービス呼び出しからの戻り値としてブラウザーに送信すると、ブラウザーコードは同じJavaクラスを使用して、返されたオブジェクトを操作できます。同様に、RPC呼び出しのパラメーターはJavaオブジェクトとして構築でき、サーバーはもう一方の端で同一のJavaオブジェクトを受け取ります。これはすべて、(デ)シリアライゼーションの詳細をいじることなく。