it-swarm-eu.dev

Bibliothek vs. Framework vs. API?

Was ist der Unterschied zwischen einer Bibliothek, einem Framework und einer API? Sie scheinen mir alle gleich zu sein. Ich würde gerne hören, wie die Leute darüber nachdenken.

33
Bob Dole

Eine Bibliothek ist eine Sammlung von Funktionen/Objekten, die einem bestimmten Zweck dienen. Sie können eine Bibliothek in einer Vielzahl von Projekten verwenden.

Ein Framework ist eine Sammlung von Mustern und Bibliotheken, die beim Erstellen einer Anwendung helfen.

Eine API ist eine Schnittstelle für andere Programme, um mit Ihrem Programm zu interagieren, ohne direkten Zugriff zu haben.

Anders ausgedrückt: Stellen Sie sich eine Bibliothek als Add-On/Teil einer Anwendung, ein Framework als Grundgerüst der Anwendung und eine API als nach außen gerichteten Teil dieser App vor.

35
GSto

Bisher gute Antworten, aber sie übersehen einen wichtigen Punkt - ein Framework verwendet IoC . Ihr Code ist von einem Framework umgeben. Es lebt darin. Im Gegensatz dazu verwendet Ihr Code nur eine Bibliothek oder API . Es lebt außerhalb davon. IoC ist der Unterschied.

14
Scant Roger

Eine Bibliothek ist eine Sammlung von Code, der zur Ausführung allgemeiner Aufgaben erstellt wurde. Bibliothekscode ist in der Regel relativ stabil und fehlerfrei. Die Verwendung geeigneter Bibliotheken kann die Menge an Code reduzieren, die geschrieben werden muss. Die Anzahl der Codezeilen für eine Anwendung wird tendenziell verringert, wodurch die Rate erhöht wird, mit der die Funktionalität bereitgestellt wird. In den meisten Fällen ist es besser, eine Bibliotheksroutine zu verwenden, als eigenen Code zu schreiben.

Eine API (Application Programming Interface) ist eine Schnittstelle zu einigen Funktionen, über die eine Anwendung auf die verfügbaren Funktionen zugreifen kann. Eine API kann als Schnittstelle bezeichnet werden. API gibt es auf vielen Ebenen, einschließlich System, Bibliothek, Framework, Programm und Anwendung. APIs sollten definiert werden, bevor der Code implementiert wird, der sie implementiert.

APIs sollten stabil sein, obwohl Teile der API aus verschiedenen Gründen veraltet sein können. Je breiter die API verwendet wird, desto schwieriger ist es, sie zu ändern. Die meisten, wenn nicht alle APIs Java 1.0) sind noch verfügbar, obwohl viele Methoden veraltet sind.

Ein Framework ist eine Sammlung von APIs, die das Erstellen von Anwendungen vereinfachen sollen. Frameworks bieten Implementierungen für wiederverwendbare Komponenten. Gute Frameworks sind in der Regel auf ihre Anwendung spezialisiert.

Das Java Collections Framework ist eine Sammlung von APIs für verschiedene Objekttypen, die zur Verarbeitung von Sammlungen verwendet werden können. Es bietet eine Hierarchie von APIs für verschiedene Sammlungen. Das in Java Collections Framework Die SortedSet-Schnittstelle erweitert die Set-Schnittstelle, die wiederum die Collection-Schnittstelle erweitert. Diese APIs sind abstrakte Schnittstellen, und die tatsächlichen Implementierungen haben unterschiedliche Namen. Das Collections Framework vereinfacht die Implementierung von Sammlungen und vereinfacht das Ändern von Implementierungen während der Entwicklung.

Frameworks können aus kleineren Frameworks erstellt werden, wie im Java Spring Framework für die J2EE-Entwicklung) zu sehen ist. Spring besteht aus über einem Dutzend Frameworks, von denen viele einzeln verwendet oder durch andere ersetzt werden können Frameworks.

Die Verwendung der entsprechenden Bibliotheken, APIs und Frameworks kann die Entwicklung vereinfachen. Diese Komponenten kümmern sich um die allgemeinen Probleme und ermöglichen es dem Entwicklungsteam, sich auf die anwendungsspezifischen Probleme zu konzentrieren.

3
BillThor

Ein Framework ist ein Fortschritt gegenüber der Bibliothek. Wenn Ihre Toolbox eine Bibliothek ist, wäre Ihr Workshop ein Framework.

Wikipedia sagt

Eine API ist eine Abstraktion, die eine Schnittstelle für die Interaktion mit einer Reihe von Funktionen beschreibt, die von Komponenten eines Softwaresystems verwendet werden

Der wichtige Unterschied zwischen einer API und einer Benutzeroberfläche besteht darin, dass mit einer API andere Software/Dienste programmgesteuert mit Ihrer Lösung interagieren können.

APIs können sowohl für Anwendungen (über DLLs oder Plugins) als auch für Websites und Dienste (über REST und Webservices) erstellt werden.

2
Homde

Gehen Sie in eine Bibliothek und lesen Sie Bücher. Wenn Sie die Anwendung sind, ist die Büchersammlung die Bibliothek. Die Regale, die Schränke und das Gelände, in dem all dies untergebracht ist, bilden den Rahmen. Alles, was Sie beim Lesen der Bücher kontaktieren, ist die API.

1
explorest

APIs definieren, wie etwas anderes verwendet werden soll, um festzustellen, welche Objekte und Methoden aus einer Quelle verwendet werden können. Bei der Integration von Twitter oder Facebook in eine Website wird beispielsweise eine API von Twitter oder Facebook verwendet, um sicherzustellen, dass die richtigen Daten aktualisiert werden.

Frameworks sind in gewissem Sinne etwas umfangreicher, da dies manchmal fast eine eigene Sprache bilden kann. jQuery ist ein Beispiel für ein Framework, das eine eigene Syntax hat und etwas mehr Gewicht hat, um in gewissem Sinne in meinen Code zu gelangen. Frameworks können auch Plattformen sein, die sie in gewissem Sinne APIs ähnlich machen, z. Das Win32API- oder .Net-Framework verfügt jeweils über zahlreiche Methoden zum Erstellen einer Anwendung, sodass Frameworks mit APIs und APIs vorhanden sein können, die auch als Frameworks angesehen werden.

Bibliotheken sind in der Regel Binärdateien, die eine API oder ein Framework implementieren. In einigen Fällen müssen Sie also eine API oder ein Framework verwenden. Zumindest sehe ich diese Begriffe und die Unterschiede zwischen ihnen so.

1
JB King

Die Anwendung wird mithilfe von Bibliotheken entwickelt, die auf einem Framework basieren, und kommuniziert über eine API.

Wenn Sie eine App erstellen, z. B. eine Online-Bildverarbeitungsanwendung,

  • Sie können einige vorab geschriebene Bildverarbeitungsbibliotheken verwenden.
  • auf jedem Framework, das Sie kennen, um die Anwendung zu erstellen.
  • Sie werden der Anwendung eine Möglichkeit zur Interaktion mit der Außenwelt bieten. Dies wäre Ihre Anwendungs-API für den Rest der Welt.

Wenn ein Anruf in Ihre Anwendung eingeht

  • es würde so gehandhabt, wie Sie es unter Anleitung des Frameworks entworfen haben
  • verarbeitung des von der Bibliothek übertragenen Anrufs
  • auf diese Funktionen wird über Ihre API von außerhalb der Welt zugegriffen

an die anrufende Person

gründe, warum diese existieren:

  • bibliothek: erspart Ihnen die Neuerfindung des Rades
  • framework: Bewahrt Sie vor unerwarteten Fallen des Systemdesigns und der Systemhandhabung, es sei denn, das Framework selbst weist Fehler auf
  • API: Gewährleistet die Sicherheit der Anwendung, indem der Kern vom realen Zugriff aus verbunden wird
0
ganesh

Eine Bibliothek ist eine Sammlung von Code, mit dem allgemeine Aufgaben vereinfacht werden. Dies können Klassen, Funktionen oder alles sein, was für Ihre Sprache oder Plattform spezifisch ist. Ein gutes Beispiel könnte eine String-Manipulationsbibliothek sein, die Helfer für allgemeine Aufgaben (Erstellen, Teilen, Suchen oder Sortieren von Strings usw.) bereitstellt.

Eine API (Application Programming Interface) ist eine Definition ('Schnittstelle') für die Arbeit mit einer anderen Anwendung, einem anderen System oder einer anderen Technologie. Es definiert im Wesentlichen die Operationen, die für die Interaktion mit diesem anderen System verfügbar sind. Eine API kann eine Bibliothek sein (was bedeutet, dass die API in eine Bibliothek oder einen Satz von Klassen eingeschlossen ist), aber der Unterschied besteht darin, dass eine API immer auf eine verweist externes System - ob es sich um eine Datenbank, einen Webdienst, eine andere Anwendung oder das Betriebssystem selbst handelt.

Ein Framework ist ein größeres Konzept - es enthält normalerweise eine Reihe von Bibliotheken und APIs, um allgemeine Aufgaben auszuführen. Es existiert auf einer höheren konzeptionellen Ebene - es ist nicht nur eine Sammlung von Werkzeugen, sondern auch eine Sammlung von Entwurfsmustern, Best Practices und Methoden. Ein Software-Framework ist eine Erweiterung eines allgemeinen Framework - seine Bedeutung besteht darin, eine Grundlage zu bilden, auf der Dinge aufgebaut sind, Unterstützung und Struktur bereitzustellen sowie Anforderungen zu leiten und zu definieren.

0
Kirk Broadhurst