Unterschied zwischen Framework vs Library vs IDE vs API vs SDK vs Toolkits? [geschlossen]


144

Ich möchte einige Beispiele. Ich bin immer verwirrt, daher kann ich es mit einigen Beispielen vielleicht besser herausfinden.

Außerdem: Ist Eclipse eine API oder IDE?


1
Eclipse ist eine IDE
Thielicious

Antworten:


294

Eine IDE ist eine integrierte Entwicklungsumgebung - ein erweiterter Texteditor mit zusätzlicher Unterstützung für das Entwickeln (z. B. Formulardesigner, Ressourceneditoren usw.), Kompilieren und Debuggen von Anwendungen. zB Eclipse, Visual Studio.

Eine Bibliothek ist ein Teil des Codes, den Sie aus Ihrem eigenen Code heraus aufrufen können, um Dinge schneller / einfacher erledigen zu können. Beispielsweise bietet eine Bitmap-Verarbeitungsbibliothek Funktionen zum Laden und Bearbeiten von Bitmap-Bildern, sodass Sie den gesamten Code nicht selbst schreiben müssen. Normalerweise bietet eine Bibliothek nur einen Funktionsbereich (Verarbeitung von Bildern oder Bearbeiten von Zip-Dateien).

Eine API (Application Programming Interface) ist ein Begriff, der die Funktionen / Methoden in einer Bibliothek bezeichnet, die Sie aufrufen können, um sie zu bitten, Dinge für Sie zu tun - die Schnittstelle zur Bibliothek.

Ein SDK (Software Development Kit) ist eine Bibliothek oder eine Gruppe von Bibliotheken (häufig mit zusätzlichen Toolanwendungen, Datendateien und Beispielcode), die Sie bei der Entwicklung von Code unterstützen, der ein bestimmtes System verwendet (z. B. Erweiterungscode für die Verwendung von Funktionen eines Betriebssystems). Windows SDK), Zeichnen von 3D-Grafiken über ein bestimmtes System (DirectX SDK), Schreiben von Add-Ins zur Erweiterung anderer Anwendungen (Office SDK) oder Schreiben von Code, damit ein Gerät wie ein Arduino oder ein Mobiltelefon das tut, was Sie möchten). Ein SDK hat normalerweise immer noch einen einzigen Fokus.

Ein Toolkit ist wie ein SDK - es ist eine Gruppe von Tools (und häufig Codebibliotheken), mit denen Sie den Zugriff auf ein Gerät oder System erleichtern können. Möglicherweise liegt der Schwerpunkt jedoch mehr auf der Bereitstellung von Tools und Anwendungen als nur auf Codebibliotheken .

Ein Framework ist eine große Bibliothek oder eine Gruppe von Bibliotheken, die viele Dienste bereitstellt (und möglicherweise nicht nur eine fokussierte Fähigkeit, wie dies bei den meisten Bibliotheken / SDKs der Fall ist). Zum Beispiel bietet .NET ein Anwendungsframework - es erleichtert die Verwendung der meisten (wenn nicht aller) der unterschiedlichen Dienste, die Sie zum Schreiben einer Vielzahl von Anwendungen benötigen (z. B. Windows, Grafik, Druck, Kommunikation usw.) "Bibliothek" bietet Unterstützung für so ziemlich alles, was Sie tun müssen. Häufig bietet ein Framework eine vollständige Basis, auf der Sie Ihren eigenen Code erstellen, anstatt eine Anwendung zu erstellen, die Bibliothekscode verwendet, um Teile seiner Arbeit zu erledigen.

Es gibt natürlich viele Beispiele in freier Wildbahn, die diesen Beschreibungen jedoch nicht genau entsprechen.


3
Sie können sagen, dass ein SDK, eine Bibliothek oder ein Framework eine API enthält.
Bastien Vandamme

6
Ein SDK ist eine clientspezifische Implementierung, um den Verbrauch einer API zu vereinfachen, z. B. des Javascript-SDK für die Facebook-API. Oft werden im SDK-Abschnitt der API-Dokumentation mehrere Sprachen angezeigt, z. B. verfügt die Twilio-API über ein Python-, Ruby-, C # - und Java-SDK für ihre API. Um die Dinge ein wenig mehr zu verwirren, nennen sie es API-Bibliotheken und SDKs, und ich habe gehört, dass beide Begriffe synonym verwendet werden.
Rob

97

Die Auto-Analogie

Geben Sie hier die Bildbeschreibung ein

IDE: Das MS Office of Programming. Hier geben Sie Ihren Code ein und einige zusätzliche Funktionen machen Sie zu einem glücklicheren Programmierer. (zB Eclipse, Netbeans ). Karosserie: Es ist das, was Sie wirklich berühren, sehen und bearbeiten.

Bibliothek: Eine Bibliothek ist eine Sammlung von Funktionen, die häufig in mehreren Programmdateien zusammengefasst, aber in einer einzigen Archivdatei zusammengefasst sind. Dies enthält Programme, die von anderen Leuten erstellt wurden, damit Sie das Rad nicht neu erfinden müssen. (zB junit.jar, log4j.jar ). Eine Bibliothek spielt im Allgemeinen eine Schlüsselrolle, erledigt jedoch ihre gesamte Arbeit hinter den Kulissen und verfügt nicht über eine grafische Benutzeroberfläche. Motor des Autos.

API: Die Dokumentation des Bibliotheksherausgebers. So solltest du meine Bibliothek benutzen. (zB log4j API , junit API ). Auto-Benutzerhandbuch - ja, Autos kommen auch mit einem!


Kits

Was ist ein Kit? Es ist eine Sammlung vieler verwandter Elemente, die zusammenarbeiten, um einen bestimmten Service bereitzustellen. Wenn jemand Medizin-Kit sagt, bekommen Sie alles, was Sie für einen Notfall benötigen: Pflaster, Aspirin, Gaze und Antiseptikum usw.

Geben Sie hier die Bildbeschreibung ein

SDK : McDonald's Happy Meal . Sie haben alles, was Sie brauchen (und nicht brauchen), ordentlich verpackt: Hauptgericht, Getränk, Dessert und ein Bonusspielzeug. Ein SDK besteht aus einer Reihe verschiedener Softwarekomponenten, die zu einem Paket zusammengefasst sind, sodass sie sofort einsatzbereit sind. Es enthält häufig mehrere Bibliotheken und kann , muss aber nicht unbedingt Plugins, API-Dokumentation und sogar eine IDE selbst enthalten. (zB iOS Development Kit ).

Toolkit : GUI. GUI. GUI. Wenn Sie 'Toolkit' in einem Programmierkontext hören, verweist es häufig auf eine Reihe von Bibliotheken, die für die GUI-Entwicklung vorgesehen sind. Da Toolkits auf die Benutzeroberfläche ausgerichtet sind, werden sie häufig mit Plugins (oder eigenständigen IDEs) geliefert, die Dienstprogramme zum Malen von Bildschirmen bereitstellen. (zB GWT )

Framework : Obwohl dies nicht die vorherrschende Vorstellung ist, kann ein Framework als Kit angesehen werden. Es hat auch eine Bibliothek (oder eine Sammlung von Bibliotheken, die zusammenarbeiten), die eine bestimmte Codierungsstruktur und ein bestimmtes Codierungsmuster (also das Wort, das Framework ) bereitstellt . (zB Spring Framework)


41
Eine API ist nicht nur die Dokumentation. Eigentlich ist es überhaupt keine Dokumentation. Ich verstehe Ihre Analogie, aber die Dokumentation oder API-Dokumentation ist Ihr Auto-Handbuch und die API ist mehr das Board und die Tasten Ihres Autos.
Bastien Vandamme

1
Sie können den Unterschied zwischen der GUI und der API machen. Die GUI (Graphical User Interface) ist die Schnittstelle für den endgültigen nicht professionellen Benutzer. Die API (Application Programming Interface) ist die Schnittstelle für andere Programme. Bei der Entwicklung und Anwendung können Sie eine GUI oder eine API oder beides erstellen. Sie können auch andere Arten von Schnittstellen erstellen.
Bastien Vandamme

Hinter einer GUI steht immer eine API. GUIs vereinfachen nur den Anwendungsfall. In der IT ist es eher aus unprofessionellen Gründen wie Grafikschnittstellen anstelle von Code. Über Ihre Autologik: Möglicherweise können Sie ein Auto nicht alleine fahren, Sie müssen lernen und wissen, wie man fährt (betrachten Sie Fahrstunden als Tutorial oder Dokumentation). Wenn Sie dies nicht erreichen möchten, können Sie stattdessen in einen Bus oder ein Taxi steigen, da keine Fahrkenntnisse erforderlich sind (in diesem Fall hier keine Programmierkenntnisse). Daher würde ich öffentliche Verkehrsmittel als GUIs betrachten. Klingt lustig, aber verdammt wahr.
Thielicious

Ich bin nicht einverstanden mit "[Bibliothek] hat keine GUI". In der JavaScript-Welt ist es sehr häufig, dass Bibliotheken eine GUI enthalten.
user1505520

5

Betrachten Sie die Android-Entwicklung:

IDE: Eclipse etc ..

Bibliothek: android.app.Activity Bibliothek (Klasse mit allem Code)

API: Schnittstelle grundsätzlich alle Funktionen, mit denen wir aufrufen

SDK: Das Android SDK bietet Ihnen die API-Bibliotheken und Entwicklertools, die zum Erstellen, Testen und Debuggen von Apps für Android erforderlich sind (---- Tools - DDMS, Emulator ---- Plattformen - Android OS-Versionen, ---- Plattform- Tools - ADB, ---- API-Dokumente)

ToolKit: Könnte ADT Bundle sein

Framework: Große Bibliothek, aber eher architekturorientiert


3

Mit anderen Worten...

IDE Auch Ihr Notizblock ist eine IDE. Jede Software, mit der Sie Code schreiben / kompilieren, ist eine IDE.

Bibliothek Eine Reihe von Codes, die Funktionen / Methoden für die schnelle Verwendung vereinfachen.

API Eine Programmierschnittstelle für Funktionen / Konfigurationen, mit denen Sie arbeiten. Ihre Verwendung wird häufig dokumentiert.

SDK- Extras und / oder zu Entwicklungs- / Testzwecken.

ToolKit Winzige Apps für den schnellen Gebrauch, häufig GUIs.

GUI- Apps mit grafischer Oberfläche erfordern im Gegensatz zu APIs keine Programmierkenntnisse.

Framework Bündel von APIs / riesigen Bibliotheken / Snippets, die in einen Namespace eingeschlossen sind / oder aus dem äußeren Bereich gekapselt sind, um eine kompakte Behandlung ohne Konflikte mit anderem Code zu ermöglichen.

MVC Ein Entwurfsmodell, das in Modelle, Ansichten und Controller für große Anwendungen unterteilt ist. Sie sind nicht voneinander abhängig und können geändert / verbessert / ersetzt werden, ohne sich um anderen Code zu kümmern.

Beispiel:

Auto (Modell)
Das Objekt, das präsentiert wird.
Beispiel in der IT: Ein HTML-Formular.


Kamera (Ansicht)
Etwas, das das Objekt (Auto) sehen kann.
Beispiel in der IT: Browser, der eine Website mit dem Formular rendert.


Fahrer (Controller)
Jemand, der dieses Auto fährt.
Beispiel in der IT: Funktionen, die übermittelte Formulardaten verarbeiten.

Snippets Kleine Codes mit nur wenigen Zeilen sind möglicherweise nicht vollständig, aber für eine schnelle Freigabe wert.

Plug-Ins Exklusive Funktionen nur für bestimmte Frameworks / APIs / Bibliotheken.

Add-Ons Zusätzliche Module oder Dienste für bestimmte GUIs.


2

SDK steht für Software Development Kit und IDE für integrierte Entwicklungsumgebung. Die IDE ist die Software oder das Programm wird zum Schreiben, Kompilieren, Ausführen und Debuggen wie Xcode verwendet. Das SDK ist die zugrunde liegende Engine der IDE und enthält alle Bibliotheken der Plattform, auf die eine App zugreifen muss. Es ist grundlegender als eine IDE, da es normalerweise keine grafischen Werkzeuge enthält.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.