web-dev-qa-db-ja.com

Google Closure LibraryはjQueryを介して何を提供しますか?

検討中

  • ビジネス背景
  • コミュニティサポート
  • 利用可能な拡張機能
  • 機能のデフォルトセット
  • 使いやすさ
  • と信頼性

なぜあなたは別のものよりも1を好むのですか?

189
pestaa

情報を追加してみます。

別のJSライブラリ以上

私が理解しているように、Google Closureは別のJSライブラリであるだけでなく、JSコードを最適化できるツールのセットでもあります。 jQueryを使用すると、優れたツールと軽量のライブラリが得られますが、独自のコードが縮小されることはありません。 Closureコンパイラ になります。 closure inspector も便利な場合があります。縮小されたコードは元のコードとは異なる動作をすることがあり、デバッグするのが面倒です。 Firebug と統合し、単体テストをサポートします。これらは現在、開発者の親友です。

ドキュメンテーション

新しいライブラリVSは確立されたライブラリであるため、jQueryにある多くの拡張機能やチュートリアルを利用できないと思います。ただし、Googleにプッシュされることで、サポートと信頼性の両方が非常に良好になります。現在の documentationtutorial も両方とも本当に良いようです。

特徴

ただし、クロージャーの機能はまともであり、そのモジュール式アーキテクチャも有望です。 Googleは長い間これを社内で使用してきたと思います。つまり、すべての基本機能(およびそれ以上)が実装され、おそらく非常に最適化されたスケーラブルな方法で実装されると思われます。彼らはJavaScriptのSTLとしてそれを提示しようとしているので、彼らはそれを磨く必要がありました。

機能をさらに詳しく調べた結果、これは、jQueryとしての既存のライブラリと比較して、Webアプリケーション開発の一歩前進であるように思われます。 Googleの内部開発に役立つと思いますが、オンライン状態の検出( goog.events.OnlineHandler を参照)、ブラウザー履歴でのAJAXリクエストとJSアクションの簡単な統合など( goog.History を参照)、またはそれらが提供する素晴らしいウィジェットの軍団( goog.ui package を参照)は、私たち全員がさらに素晴らしいwebappsを構築するのを助けるかもしれません;)

テンプレート機能 が付属しており、Java( GWT と言いました)と統合されます。

使いやすさ

最後に、使用方法は非常に簡単に見えます。構文は、短い$ jQuery関数よりも少し冗長かもしれませんが、IDEと自動補完では、実際の問題ではありません。さらに、Googleが提供するEclipseのようなIDEでの良好な統合が期待できると思います。

編集:要求に応じて、GWT参照についていくつか説明します。 Google Web ToolkitはJavaライブラリであり、AJAX対応のWebインターフェースを作成し、必要なJavaScriptコードを生成(および最適化)します。 Google Closureを使用すると、クライアント側とサーバー側の両方で(JavaScriptとJavaを使用して)使用できるテンプレートを作成できるため、すぐにそれらを共同で使用できるようになると思います(まだそうでない場合)。

176
Wookai

APIを簡単に見てみると、jQueryとClosureの違いが顕著であることがわかりました。

jQueryは基本的に、クロスブラウザー方式で多くの頻繁な操作を行うための単純化された方法です。

クロージャは非常に新しいフレームワークであり、たとえば<canvas>タグを使用するクロスブラウザの方法を提供し、新しいイベントを追加しています。

したがって、これは私たちが通常JavaScriptで行うことを追加するものであり、人々がやりたい多くの操作を取り、APIに入れています。

たとえば、オンライン状態が変更されたかどうかを通知するイベントがあります。そのため、システムがオンラインかどうかを確認できます。

Google Gearsなどのツールを使用するJavaScript関数があり、Javascriptでできることを拡張しているという事実が続いています。

すべての変更を消化するには数日かかりますが、これは開発可能なWebアプリケーションに大きな影響を与える可能性があることがわかります。

30
James Black

Closure Libraryの最大の利点は、Closure Compiler用に設計されていることです。これにより、JavaScript開発のまったく新しい可能性が開かれます...

コンパイラにはいくつかのクールな機能があります。

  • 読み取り可能なJavaScriptを圧縮された機械読み取り可能なJavaScriptにコンパイルします-「=」モードで最適な圧縮率を持ちます。
  • JSDocタグを使用したコードのドキュメント化は重要です。コンパイラがそれを読み取り、ドキュメントのタイプミス、@ constructorの誤った使用、変数の間違ったタイプのコンパイル中に警告を受け取ります @privateや@protectedなどの注釈が付けられたフィールドの誤用.
  • OpenLayersやGoogle Mapsなどの再利用可能なJavaScriptライブラリを記述する場合、パブリックAPIを正式にエクスポートし、コンパイラーは内部コードを最適化します。
  • 最終アプリケーションはライブラリと一緒にコンパイルできます-そして、ライブラリの未使用部分は生成されたコードから削除されます。依存関係はコンパイラーによって自動的に解決されます。
  • コンパイラは、定数を受け入れて不要な機能を削除します。これにより、Mobile WebKitなどの特定のブラウザー、QuirksモードまたはStrictモードのいずれかのみ、IE6のサポートなしのコンパイルなどが可能になります。
  • FireBugを使用したデバッグは、ソースコードのコンパイル済みバージョンでも可能です。
  • コンパイラは、動的にロード可能なモジュールの生成をサポートします。これにより、高度な機能のコードは必要な場合にのみロードできるため、最終アプリケーションのロードを大幅に高速化できます。

詳細については、以下をご覧ください: http://blog.klokantech.com/2010/12/closure-compiler-for-openlayers-3x.html

25
Petr Pridal

編集this youtube video をご覧ください。GoogleClosureについてのいくつかの質問に答えられるかもしれません。

おそらく、Googleクロージャーに関する最良の情報源は、プロジェクト ディスカッショングループ 、wiki、docページ、デモ、およびまだ完成していない Michael Bolinの本 サファリの本サイトから入手可能です。

すぐにわかることの1つ-closurejQueryの学習曲線が急勾配になっていますが、ライブラリの広大さ、明確な組織、およびそれを一緒に使用する利点のために、それは価値があるかもしれませんコンパイラとテンプレートツール。

その点でclosureライブラリはdojoよりもjQueryに似ており、Michael Bolin氏によると、いくつかの概念はdojoから借りたものです。

googleクロージャーコンパイラはJSDocドキュメントシステムを使用します。これは同時に(プログラマーによって正しく作成された場合)ドキュメントを提供し、コンパイル時に多くのエラーをキャッチできるようにします。

関数名はjQueryよりも冗長ですが、コンパイラは(さまざまな最適化戦術を使用して)コードを縮小し、型チェックはコードのデバッグにかなりの時間を節約するため、長い名前を入力する時間はおそらく問題になりません。同時に、名前が長いほど読みやすくなります。

ライブラリは、「quirky」htmlを使用してスクリプトを他のサイトに埋め込むことができるように、quirksモードで実行されているブラウザーをサポートします

ライブラリはsoyと呼ばれるjavascriptテンプレートシステムで動作します(依存しません)。

like jQuery google closureは、ライブラリの専用コンポーネントを使用して、文字列ベースのクエリでdom構造を走査できます。

closureライブラリは、Javaのようなドット区切りの名前空間に依存しています。これは非常に強力な組織機能です。

このような名前空間を使用すると、コンパイルされていないコードでオーバーヘッドが発生しますが、コンパイルされたコードでは、それらの変数は短い変数名に置き換えられます。

20
Evgeny

insideRIA でこの質問に答えるGoogle Closureについてかなり網羅的な記事を投稿しました。

...クロージャルールズ! ^ _ ^

8
Davide Zanotti

JQueryを取得していないかもしれませんが、実際のUIウィジェットコレクションは見ていません(プラグインはありますが、それらがどれほどよくテストされているかはわかりませんし、明確な勝者やプラグインがないことがよくありますドキュメンテーション)。

クロージャーには、 ウィジェットコレクション (デモタブを参照)などがあります。たとえば、Gmailで使用される イメージレスボタン です。

より一般的には、リリースの一部としてより多くの機能が実装されています。大したことではないかもしれませんが、ajax履歴モジュールやオートコンプリートのような単純なものを探しているとき、jQueryプラグインの海に悩まされます。

全体として、それは巨大なライブラリとツールのセットであり、利用可能なものを知るためだけにそれを知っています。

7
Nickolay

Googleのオープンソースコミュニティへの貢献の大部分に感謝し、いくつかのクールなものがあると確信しています。すべてをJavaに変換する必要がある場合は、実に洗練されていると思います。

編集:

けっこうだ。私は本当に比較しませんでした。閉鎖は、おそらくどこかに配置したいツールをすべて備えた巨大な倉庫のようなものです。 .NETまたは大規模なJavaライブラリのようなもの。必要なものを見つけたら、非常に具体的な仕事をする非常に具体的なものを見つけることができます。そして、生産のために、あなたはすべての残骸を取り除くことができます。

一方、JQueryは、より簡単に変更できる音波ドライバーです。

1
Erik Reppen

Google Closure Libraryを使用すると、JavaScriptをコンパイルして最適化できます。 jQueryのようなライブラリではありません。 jQueryは、独自のjavascriptをより速く記述できる機能を提供するものです。

Google Closureを使用すると、独自のJavaScriptコードを最小化して、インターネット上での配信を高速化できます。

要するに、Google Closureはツールであり、jQueryはPrototypeに似たライブラリです。

0
Tereno