Czy jquery jest biblioteką lub frameworkiem javascript? [Zamknięte]

121

Tutaj jquery jest wymieniony w kategorii framework: http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks

Czy jquery jest biblioteką lub frameworkiem javascript?

rahul dagli
źródło
40
Biblioteka jednej osoby to struktura dla innej osoby.
nnnnnn
1
To nie jest na temat, ponieważ każda odpowiedź jest równie ważna: „Jaki jest Twój ulubiony ______?” . Co to ma znaczenie, jeśli wszyscy będziemy biblioteką czy frameworkiem?
EJoshuaS - Przywróć Monikę

Odpowiedzi:

169

Biblioteka. Zgodnie ze stroną główną , z którą się zgadzam.

Framework to coś, co zwykle wymusza określony sposób implementacji rozwiązania, podczas gdy jQuery to tylko narzędzie ułatwiające wdrażanie tego, co chcesz.

GregL
źródło
55
+1. Biblioteka to coś, co wywołujesz w swoim programie. Framework to coś, co wywołuje twój program.
Thilo,
1
Porównanie bibliotek z platformą: „Inversion of Control” stackoverflow.com/a/3057818/2144912
cheshireoctopus
30

jQuery: Pisz mniej, rób więcej, biblioteka JavaScript .

Dunhamzzz
źródło
14
Chociaż zgadzam się, imię podane przez samego siebie / slogan niczego nie dowodzi. Istnieją tysiące tak zwanych „frameworków”, które w rzeczywistości są bibliotekami.
kapex
@Kapep, ale odwrotny przypadek jest mniej powszechny: niewiele frameworków nazywa siebie „bibliotekami”. Wydaje mi się, że termin „ramy” brzmi bardziej seksownie dla niektórych…
Franklin Yu
19

Na pewno jest to biblioteka javascript. Ale jeśli chodzi o bycie frameworkiem, czy nie, po prostu myślę, że to nie jest framework. Spójrz na definicję struktury oprogramowania w Wikipedii :

Jest to zbiór bibliotek oprogramowania zapewniających zdefiniowany interfejs programowania aplikacji.

A jQuery to tylko jedna biblioteka. Następnie mówi:

Struktury zawierają kluczowe cechy odróżniające je od zwykłych bibliotek:

  1. odwrócenie kontroli - w środowisku, w przeciwieństwie do bibliotek lub zwykłych aplikacji użytkownika, ogólny przepływ kontroli programu nie jest dyktowany przez wywołującego, ale przez strukturę.

Więc myślę, że to nie jest framework.

Saeed
źródło
9

Według strony internetowej angularjs

  • biblioteka - zbiór funkcji przydatnych podczas pisania aplikacji internetowych. Twój kod jest odpowiedzialny i wywołuje bibliotekę, kiedy
    uzna to za stosowne. Np. JQuery.
  • frameworki - konkretna implementacja aplikacji internetowej, w której kod wypełnia szczegóły. Struktura jest odpowiedzialna i wywołuje Twój kod, gdy potrzebuje czegoś specyficznego dla aplikacji. Np. Durandal, żar itp.
Harke
źródło
5

Framework i libarry niekoniecznie wykluczają się wzajemnie. Framework jest zazwyczaj biblioteką lub zbiorem bibliotek.

Ściśle mówiąc, jQuery jest biblioteką, ale do pewnego stopnia spełnia definicję frameworka oprogramowania. Chociaż wielu twierdzi, że jQuery nie spełnia wystarczająco ściśle definicji frameworka oprogramowania, faktem jest, że żaden inny framework JavaScript również nie spełnia w pełni definicji frameworka.

Jedną z definiujących cech struktury oprogramowania jest to, że jej kod jest chroniony przed modyfikacjami. W JavaScript wyraźnie tak nie jest. Wszelkie biblioteki lub struktury, które można wywołać w kodzie po stronie klienta, można modyfikować, chociaż ich modyfikowanie byłoby sprzeczne z najlepszymi praktykami. Dlatego też, jeśli dopuszczalne jest wywołanie Bootstrap lub AngularJS frameworkiem, nie ma powodu, dla którego jQuery również nie może być nazywany frameworkiem. To łącze zawiera bardziej szczegółowe wyjaśnienie, w jaki sposób jQuery spełnia kryteria, które należy nazwać frameworkiem.

Być może najlepszym wyjaśnieniem, dlaczego jQuery jest bardziej frameworkiem niż biblioteką, jest fakt, że jako programista możesz zdecydować się nie używać żadnej z jego funkcjonalności podobnych do frameworka. Możesz na przykład połączyć prostą instrukcję jQuery ze standardową instrukcją JavaScript w tym samym wierszu. AngularJS i Bootstrap zazwyczaj nie pozwalają na to. Dlatego dokładna odpowiedź, czy jQuery jest frameworkiem, czy nie, brzmi: „zależy to od tego, czy zdecydowałeś się użyć go jako frameworka, czy nie”.

Fiodar Sazanavets
źródło
2

Zgadzam się ze wszystkimi odpowiedziami tutaj, że jQuery jest rzeczywiście biblioteką, a nie frameworkiem. Jak wskazuje odpowiedź Saeeda, jedną z kluczowych cech wyróżniających jest odwrócenie kontroli. Możesz jednak użyć funkcjonalności jQuery, aby stworzyć własną strukturę.

Przykłady: istnieją projekty zbudowane na bazie jQuery, które są zdefiniowane jako frameworki: jQuery Mobile: struktura sieci Web zoptymalizowana pod kątem dotyku , JavaScriptMVC i sammy.js, aby wymienić tylko kilka.

Istnieją również inne biblioteki zbudowane na bazie jQuery, takie jak interfejs użytkownika jQuery

Niektóre z nich wydają się semantyką przy definiowaniu, czym jest biblioteka, a czym frameworkiem, ale te przykłady pomagają mi wytyczyć granicę.

Durandal
źródło
1

Jeśli mówimy o odwróceniu kontroli, o którym mówi prawie każdy w powyższym wątku, to jQuery jest RAMĄ.

Ma IOC np. Kiedy piszemy funkcję $ (dokument) .ready {} ... to kontener wywołuje tę metodę i po prostu umieszczamy nasz kod w nawiasach. Nie jesteśmy osobą wywołującą tę metodę, a zatem „Odwrócenie kontroli”

W ten sposób jQuery jest RAMĄ.

Pinkman
źródło
1
Hej, większość bibliotek zapewnia przynajmniej jakąś niejasną metodę wywołania zwrotnego w jakimś celu. Możesz napisać dużo kodu jQuery bez polegania na ready().
Nathan Tuggy
@NathanTuggy Dlaczego więc nawet szczegółowa dyskusja na temat Framework vs Lib mówi o IOC. Jeśli tam jest, to jest. Po co mówić o „poleganiu” lub „nie poleganiu”.
pinkman
Ponieważ IoC w stylu frameworkowym charakteryzuje się koniecznością jego użycia. Nie ma możliwości wykorzystania go zgodnie z życzeniem, w określony sposób, a la carte. We frameworku nie masz wyboru: kontrola jest odwrócona.
Nathan Tuggy