1031 Stimmen

Was ist der Unterschied zwischen einem Framework und einer Bibliothek?

Was ist der Unterschied zwischen einer Rahmenwerk und eine Bibliothek ?

Ich habe mir eine Bibliothek immer als einen Satz von Objekten und Funktionen vorgestellt, der sich auf die Lösung eines bestimmten Problems oder eines bestimmten Bereichs der Anwendungsentwicklung (z. B. Datenbankzugriff) konzentriert; ein Framework hingegen ist eine Sammlung von Bibliotheken, die sich auf eine bestimmte Methodik (z. B. MVC) konzentriert und alle Bereiche der Anwendungsentwicklung abdeckt.

127voto

James Curran Punkte 98228

So habe ich es immer beschrieben:

Eine Bibliothek ist ein Werkzeug.

Ein Rahmen ist eine Lebensweise.

In einer Bibliothek können Sie jeden noch so kleinen Teil verwenden, der Ihnen hilft. Ein Framework, dem Sie Ihr gesamtes Projekt anvertrauen müssen.

53voto

Fizer Khan Punkte 79079

Aus Sicht der Webentwickler:

  1. Die Bibliothek kann leicht durch eine andere Bibliothek ersetzt werden. Aber Frameworks nicht.

    Wenn Sie nicht wie jquery Datum Picker Bibliothek, können Sie mit anderen Datum Picker wie Bootstrap Datum Picker oder pickadate ersetzen.

    Wenn Ihnen AngularJS, auf dem Sie Ihr Produkt aufgebaut haben, nicht gefällt, können Sie es nicht einfach durch andere Frameworks ersetzen. Sie müssen Ihre gesamte Codebasis neu schreiben.

  2. Meistens ist die Lernkurve bei Bibliotheken im Vergleich zu Frameworks sehr kurz. Beispiel: underscore.js ist eine Bibliothek, Ember.js ist ein Framework.

46voto

JacquesB Punkte 40790

Ich mag Cohens Antwort, aber eine technischere Definition ist: Ihr Code ruft eine Bibliothek auf. Ein Framework ruft Ihren Code auf . Ein GUI-Framework zum Beispiel ruft Ihren Code über Event-Handler auf. Ein Web-Framework ruft Ihren Code über ein Anfrage-Antwort-Modell auf.

Dies wird auch als Umkehrung der Steuerschuldnerschaft - Plötzlich entscheidet das Framework, wann und wie Ihr Code ausgeführt wird, und nicht umgekehrt wie bei Bibliotheken. Das bedeutet, dass ein Framework auch einen viel größeren Einfluss darauf hat, wie Sie Ihren Code strukturieren müssen.

30voto

Moe Punkte 26523

Ich weiß nicht mehr, wo ich diese Definition gesehen habe, aber ich finde sie sehr schön.

Eine Bibliothek ist ein Modul, das Sie in Ihrem Code aufrufen, und ein Framework ist ein Modul, das Ihren Code aufruft.

26voto

Uday Hiwarale Punkte 3748

Ein Framework kann aus verschiedenen Bibliotheken bestehen. Lassen Sie uns ein Beispiel nehmen.

Nehmen wir an, Sie möchten ein Fischcurry zubereiten. Dann brauchen Sie Zutaten wie Öl , Gewürze und andere Versorgungsunternehmen . Sie benötigen außerdem Fisch auf der Sie Ihr Gericht zubereiten (dies sind die Daten Ihrer Bewerbung). Alle Zutaten zusammen werden als Rahmenwerk . Jetzt werden Sie sie einzeln oder in Kombination verwenden, um Ihr Fischcurry zuzubereiten, das Ihr Endprodukt . Vergleichen Sie das mit einer Web-Framework die aus folgenden Materialien besteht unterstrich.js , bootstrap.css , bootstrap.js , fontawesome , AngularJS usw. Ein Beispiel, Twitter Bootstrap v.35 .

Wenn Sie nun nur eine Zutat betrachten, z. B. Öl . Sie können nicht jedes Öl verwenden, das Sie wollen, weil es dann Ihren Fisch ruiniert (Daten). Sie können nur verwenden Olivenöl . Vergleichen Sie das mit unterstrich.js . Welche Ölmarke Sie nun verwenden möchten, bleibt Ihnen überlassen. Einige Gerichte wurden zubereitet mit Amerikanisches Olivenöl (underscore.js) oder Indisches Olivenöl (lodash.js). Dies wird nur den Geschmack Ihrer Anwendung verändern. Da sie fast den gleichen Zweck erfüllen, hängt ihre Verwendung von den Vorlieben des Entwicklers ab und sie sind leicht austauschbar.

enter image description here


Rahmenwerk : Eine Sammlung von Bibliotheken, die einzigartige Eigenschaften und Verhaltensweisen für Ihre Anwendung bereitstellen. (Alle Bestandteile)

Bibliothek : Ein genau definierter Satz von Anweisungen, die Ihren Daten einzigartige Eigenschaften und Verhaltensweisen verleihen. (Öl auf Fisch)

Plugin : Ein Utility-Build für eine Bibliothek (ui-router -> AngularJS) oder mehrere Bibliotheken in Kombination (date-picker -> bootstrap.css + jQuery), ohne die Ihr Plugin jetzt möglicherweise wie erwartet funktioniert.


P.S. AngularJS ist ein MVC-Framework, aber eine JavaScript-Bibliothek. Weil ich glaube, Bibliothek erweitert Standardverhalten der nativen Technologie (JavaScript in diesem Fall).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X