jqueryはJavaScriptライブラリまたはフレームワークですか?[閉まっている]


121

ここでは、jqueryはフレームワークのカテゴリの下で言及されています:http : //en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks

jqueryはJavaScriptライブラリまたはフレームワークですか?


40
ある人のライブラリは別の人のフレームワークです。
nnnnnn

1
すべての回答が等しく有効であるためここではトピックから外れています:「あなたの好きな______は何ですか?」。また、私たち全員がライブラリでもフレームワークでも、何が問題なのでしょうか?
EJoshuaS-モニカを

回答:


169

図書館。ホームページによると、私は同意します。

フレームワークは通常、ソリューションを実装する特定の方法を強制するものですが、jQueryは、やりたいことをより簡単に実装できるようにするためのツールにすぎません。


55
+1。ライブラリは、プログラムから呼び出すものです。フレームワークは、プログラムを呼び出すものです。
ティロ2011

1
ライブラリとフレームワークの比較については、「制御の反転」を参照してください。stackoverflow.com
a/3057818/2144912

30

14
私が同意する間、自分で与えた名前/スローガンは何も証明しません。いわゆる「フレームワーク」が何千もあり、実際にはライブラリがあります。
kapex 2013年

@Kapepですが、逆のケースはあまり一般的ではありません。多くのフレームワークはそれ自体を「ライブラリ」と呼んでいません。「フレームワーク」という言葉は、一部の人にとってはよりセクシーに聞こえると思います…
フランクリン・ユー

19

確かに、それはJavaScriptライブラリです。しかし、フレームワークであるかどうかについては、それはフレームワークではないと思います。上を見ていたソフトウェア・フレームワークのウィキペディアの定義を

定義されたアプリケーションプログラミングインターフェイスを提供するソフトウェアライブラリのコレクションです。

また、jQueryは単一のライブラリにすぎません。その後それは言う:

フレームワークには、それらを通常のライブラリから分離する主要な特徴的な機能が含まれています。

  1. 制御の反転-フレームワークでは、ライブラリや通常のユーザーアプリケーションとは異なり、プログラム全体の制御フローは呼び出し元ではなくフレームワークによって決定されます。

ですから、それはフレームワークではないと思います。


9

angularjsのWebサイトによると

  • ライブラリ-Webアプリを作成するときに役立つ関数のコレクション。あなたのコードが担当し、
    それが適切だと思われるときにライブラリを呼び出します。たとえば、jQuery。
  • フレームワーク-Webアプリケーションの特定の実装で、コードが詳細を入力します。フレームワークが担当し、アプリ固有の何かが必要なときにコードを呼び出します。たとえば、durandal、emberなど。

5

フレームワークとライブラリリーは必ずしも相互に排他的な用語ではありません。フレームワークは通常、ライブラリーまたはライブラリーのコレクションです。

厳密に言えば、jQueryはライブラリですが、ある程度、ソフトウェアフレームワークの定義を満たしています。jQueryはソフトウェアフレームワークの定義を厳密に満たしていないと多くの人が主張していますが、実際には、フレームワークの定義を完全に満たしているJavaScriptフレームワークは他にありません。

ソフトウェアフレームワークの特徴の1つは、そのコードが変更から保護されていることです。JavaScriptでは、明らかにそうではありません。クライアント側コードに呼び出すことができるライブラリやフレームワークは変更可能ですが、それらを変更することはベストプラクティスに反します。したがって、BootstrapまたはAngularJSをフレームワークと呼ぶことが許されているのであれば、jQueryをフレームワークと呼ぶことができない理由もありません。このリンクには、jQueryがフレームワークと呼ばれる基準を満たす方法の詳細な説明が含まれています。

おそらく、jQueryがライブラリーよりもフレームワークに近い理由の最も良い説明は、開発者として、フレームワークのような機能を使用しないことを選択できるという事実でしょう。たとえば、単純なjQueryステートメントと標準のJavaScriptステートメントを同じ行に混在させることができます。AngularJSとBootstrapでは通常、これを行うことができません。したがって、jQueryがフレームワークであるかどうかの正確な答えは、「jQueryをフレームワークとして使用するかどうかによって異なります」です。


2

jQuery自体は確かにライブラリーであり、フレームワークではないという、ここでのすべての答えに同意します。Saeedの回答で指定されているように、重要な特徴の1つは制御の反転です。ただし、jQueryの機能を使用して独自のフレームワークを作成できます。

例:フレームワークのように定義されているのjQueryの上に構築されたプロジェクトがあるAタッチ操作に最適化されたウェブフレームワーク:jQueryのモバイルJavaScriptMVCsammy.js少数を示すためには。

jQuery UIなど、jQueryの上に構築された他のライブラリもあります。

ライブラリとフレームワークを定義する場合、その一部はセマンティクスのように見えますが、それらの例は私にとって線を引くのに役立ちます。


1

上記のスレッドのほとんどすべての人が話している制御の逆転について話す場合、jQueryはフレームワークです。

たとえば、$(document).ready {}関数を作成すると、IOCが取得されます。これは、このメソッドを呼び出すコンテナーであり、コードを中かっこで囲みます。私たちはこのメソッドの呼び出し元ではないため、「制御の反転」

このように、jQueryはフレームワークです。


1
ほとんどのサイズのライブラリは、目的に応じて、少なくとも漠然としたコールバックのようなメソッドを提供しています。に依存することなく、多数のjQueryコードを記述できますready()
Nathan Tuggy

@NathanTuggyでは、なぜフレームワークとLibに関する詳細な議論でさえIOCについて話しているのでしょうか。そこにあれば、そこにあります。「依存する」または「依存しない」について話す理由。
pinkman

フレームワークスタイルのIoCは、その使用の必要性が特徴です。必要に応じて、特定の方法でアラカルトを使用する可能性はありません。フレームワークでは、選択の余地はありません。コントロール反転されます。
Nathan Tuggy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.