1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Hallo Gast,

    um unseren Lesern und Nutzern das best mögliche Seitenerlebnis bieten zu können nutzen wir Google Analytics.
    Um mehr über unsere Nutzung von Google Analytics zu erfahren, kannst du in unserer Datenschutzerklärung unter dem Punkt "Datenschutzerklärung für die Nutzung von Google Analytics" mehr erfahren und, wenn gewünscht, die Nutzung von Google Analytics via Klick auf den Link "Google Analytics deaktivieren" unterbinden.

    Solltest du diese Benachrichtigung ausblenden, akzeptierst du unsere Nutzung von Google Analytics. (Das Deaktivieren steht dir allerdings immer zur Verfügung)
    Information ausblenden

Diskussion Library ähm.. API oder war es doch ein Framework?

Dieses Thema im Forum "OffTopic" wurde erstellt von Taminoful, 2. Februar 2018.

  1. Taminoful

    Taminoful Administrator Administrator

    Registriert seit:
    28. Oktober 2017
    Beiträge:
    6
    Zustimmungen:
    22
    Geschlecht:
    männlich
    Hachja, die richtige Terminologie ist in der Entwicklung fast so wichtig, wie die Planung und Umsetzung selbst. Jeder kennt es, kaum einer kann es beschreiben und viele scheitern bei der Erklärung dieser drei Fachbegriffe. Aber was genau sind nun die Unterschiede zwischen API, Library und Framework?
    Das möchte ich heute versuchen zu erklären.


    API
    Die Textbuch Definition zu API lautet ungefähr wie folgt:
    Um das nun verständlich auszudrücken.
    Die API ist der Bote, der Anfragen entgegennimmt und einem System mitteilt, was du tun möchtest und dir die entsprechenden Antworten des Systems zurückliefert.

    Um das anhand eines vertrauten Beispiels zu erklären.
    Stelle dir eine API als Kellner in einem Restaurant vor, du sitzt an einem Tisch mit einer Auswahl an Menüoptionen und die Küche des Restaurants ist der Teil des Systems, welcher deine Bestellung vorbereitet. Was fehlt ist die entscheidende Verbindung um deine Bestellung der Küche zu übermitteln und dein Essen an deinen Tisch zu bringen. Da kommt der Kellner (API) ins Spiel.
    Der Kellner (API) ist der Bote, der deine Bestellung (Request) aufnimmt, diese der Küche (System) mitteilt und dir dann dein Essen bringt (Response).

    Eigentlich sollte eine API nicht sprachspezifisch sein sondern eine Schnittstelle, welche unabhängig der verwendeten Sprache angesprochen werden kann.

    Die Unterschiede zwischen Library & Framework
    Die einfache Antwort ist, dass der entscheidende Unterschied zwischen einem Framework und der Bibliothek ist, "wer wen abruft".
    Mit anderen Worten, in einem Framework ruft der Framework Code deinen Code auf und in einer Library ist des dein Code, der Aufrufe an die Library sendet.
    Versuche dir das ganze in der gleichen Weise vorzustellen, wie du eine typische Server-Client-Beziehung betrachtest.
    In einer typischen Server-Client-Beziehung stellt der Client eine Anfrage an den Server und der Server antwortet dem Client.

    Beispiel Library
    curl ist eine Library in PHP. Wenn du eine der curl Funktionen verwendest, ist es dein PHP Code, der eine Funktion der curl Library aufruft. Dies macht deinen Code zum "Abrufer" und die Library zum "Abgerufenen".

    Beispiel Framework
    Wenn du beispielsweise ein PHP Framework wie Symfony oder Laravel verwendest, wird diese Beziehung invertiert und nun ist es das Framework, welches deinen Code abruft, welchen du mithilfe des Frameworks geschrieben hast. Dabei wird ein Design verwendet welches allgemein als "Inversion der Kontrolle (Inversion of Control, kurz IoC)" bekannt ist.

    Vor dem Aufkommen des Pattern und Architektur-Hypes nannte man diese Vorgehensweise auch das Hollywood-Prinzip.
    Getreu dem Motto:
    Die Abrufer-Abgerufener-Beziehung (Caller-Callee-Relationship) wird also invertiert, wenn der Abrufer von dem Abgerufenen abhängt, um die Funktionalität oder das Verhalten des Programms zu definieren und der Abgerufene hängt vom Abrufer ab, um den Ablauf der Steuerung (Flow of Control) im Programm zu definieren.

    Der eigentliche Unterschied zwischen Libraries und Frameworks liegt also in der Kontrolle.
    Um genauer zu sein im Ablauf des Kontrollflusses.
    Frameworks kontrollieren letztendlich den Flow deiner Anwendung und Libraries nicht.


    Abschließendes
    Ich hoffe, ich konnte euch nun ein wenig Klarheit im Dschungel der ewigen Terminologien schaffen.
    Solltet ihr Anregungen zum Thema, wünsche für andere Erklärungen oder Tutorials haben, so zögert nicht und teilt mir diese mit. :smile:
     
    GasGas und RiotSeb gefällt das.