Libreria vs. framework vs API? [chiuso]


33

Qual è la differenza tra una libreria, un framework e un'API? Mi sembrano tutti uguali. Mi piacerebbe sentire la gente pensarci.





2
@Jorg: avresti dovuto inviarlo come risposta. Allo stato attuale, è lo spam borderline e ostruisce la pagina.

2
@Sergio - Jörg W Mittag ha 1171 risposte ponderate e ben accolte su SO (42 risposte ponderate e ben accolte qui). Non sta cercando di essere difficile. Sta cercando di migliorare P.SE mostrando quanto sia inutile questa domanda (per non dire che nessuna risposta menziona ancora la caratteristica distintiva di un framework).
Corbin

Risposte:


35

Una libreria è una raccolta di funzioni / oggetti che ha uno scopo particolare. potresti usare una biblioteca in una varietà di progetti.

Un framework è una raccolta di modelli e librerie per la creazione di un'applicazione.

Un'API è un'interfaccia per altri programmi per interagire con il tuo programma senza avere accesso diretto.

Per dirla in altro modo, pensa a una libreria come un componente aggiuntivo / pezzo di un'applicazione, un framework come lo scheletro dell'applicazione e un'API come una parte rivolta verso l'esterno di detta app.


7
Questa non è un'ottima definizione di un framework. Non definirei alcun framework una "raccolta di modelli e librerie"
TheLQ

Un framework è più simile a un ambiente in cui
integrarsi

sì, ero un po 'a corto di parole per quello. qualcuno ha qualche suggerimento migliore? altri saggi si sentono liberi di modificare. Sono andato a cercare su Wikipedia, che chiama un framework: "I frame sono un caso speciale di librerie di software in quanto sono riutilizzabili astrazioni di codice racchiuse in una API (Application Programming Interface) ben definita", che sembra causare più confusione nel contesto di questa domanda che aiuto.
GSto

3
Una libreria è quando il tuo codice è in carica (il tuo codice "usa la libreria") e un framework è quando è in carica (il framework "esegue il tuo codice"). Ad esempio, un framework determina l'ordine in cui devono accadere le cose (Swing, servlet) mentre con una libreria si decide quando e come viene utilizzato (conversione delle immagini, crittografia). Un'API è solo una definizione di un gruppo di funzioni che è possibile chiamare ed è parte di librerie e framework.
Martin Wickman,

14

Buone risposte finora, ma mancano un punto chiave: un framework usa l' IoC . Il tuo codice è circondato da un framework. Vive al suo interno. Al contrario, il tuo codice utilizza solo una libreria o API. Vive al di fuori di esso. IoC è la differenza.


Non necessariamente vero. Un framework può usare IoC e la tua applicazione può vivere all'interno di un framework, ma non è necessario. Stupidamente la voce di Wikipedia su Frameworks la elenca come una "caratteristica distintiva" di un framework e fa riferimento a questa tesi " dirkriehle.com/computer-science/research/dissertation/… ", ma la tesi stessa non contiene l'inversione delle frasi 'o' ioc ', e in realtà afferma "In genere, le applicazioni utilizzano non solo un framework, ma diversi". (p26, ref p9)
Kirk Broadhurst

11
@Kirk Broadhurst-in realtà stava pensando a Martin Fowler : "Inversion of Control è una parte fondamentale di ciò che rende un framework diverso da una libreria (...) Un framework incarna un disegno astratto, con più comportamento incorporato. Per poter usare è necessario inserire il proprio comportamento in vari punti del framework eseguendo la sottoclasse o collegando le proprie classi. Il codice del framework quindi chiama il proprio codice ... "Se concludiamo che l'IoC non è una caratteristica distintiva, allora non c'è caratteristica distintiva: sono tutti uguali e non è divertente.
Scant Roger

@ScantRoger, Java Collections Framework utilizza IoC? Non sembra così .......
Pacerier,

3

Una libreria è una raccolta di codice creata per eseguire attività comuni. Il codice della libreria tende ad essere relativamente stabile e privo di bug. L'uso di librerie appropriate può ridurre la quantità di codice che è necessario scrivere. Tende a ridurre il numero di righe di codice per un'applicazione aumentando la velocità con cui viene fornita la funzionalità. Nella maggior parte dei casi, è meglio usare una routine di libreria piuttosto che scrivere il proprio codice.

Un'API (Application Programming Interface) è un'interfaccia per alcune funzionalità che consente a un'applicazione di accedere alle funzionalità disponibili. Un'API può essere indicata come interfaccia. L'API esiste a molti livelli tra cui sistema, libreria, framework, programma e applicazione. Le API devono essere definite prima dell'implementazione del codice che le implementa.

Le API dovrebbero essere stabili, sebbene alcune parti dell'API possano essere deprecate per vari motivi. Più ampiamente viene utilizzata l'API, più è difficile modificarla. La maggior parte se non tutta l'API Java 1.0 è ancora disponibile, sebbene molti metodi siano stati deprecati.

Un framework è una raccolta di API progettata per semplificare la creazione di applicazioni. I framework forniscono implementazioni per componenti riutilizzabili. I buoni framework tendono ad essere specializzati nella loro applicazione.

Java Collections Framework è una raccolta di API per vari tipi di oggetti che possono essere utilizzati per gestire le raccolte. Fornisce una gerarchia di API per varie raccolte. Nel Framework Collezioni Java l'interfaccia SortedSet estende l'interfaccia Set che a sua volta estende l'interfaccia Collection. Queste API sono interfacce astratte e le implementazioni effettive hanno nomi diversi. Il Framework delle collezioni semplifica l'implementazione delle raccolte e semplifica il cambiamento delle implementazioni durante lo sviluppo.

I frame possono essere costruiti con framework più piccoli come si vede nel Java Spring Framework destinato allo sviluppo J2EE. La primavera è costituita da oltre una dozzina di framework, molti dei quali possono essere utilizzati da soli o sostituiti da altri framework.

L'uso di librerie, API e framework appropriati può semplificare lo sviluppo. Questi componenti si occupano dei problemi comuni e consentono al team di sviluppo di concentrarsi sui problemi specifici dell'applicazione.


2

Un framework è un passo avanti dalla libreria. Se la tua cassetta degli attrezzi è una biblioteca, il tuo laboratorio sarebbe un framework.

Dice Wikipedia

Un'API è un'astrazione che descrive un'interfaccia per l'interazione con un insieme di funzioni utilizzate dai componenti di un sistema software

L'importante distinzione tra un'API e un'interfaccia utente è che un'API consente ad altri software / servizi di interagire con la soluzione in modo programmatico.

Le API possono essere costruite sia per applicazioni (tramite dll o plugin) sia per siti Web e servizi (tramite REST e servizi Web)


Bella analogia ...
sunwukung

1

Le API definiscono come utilizzare qualcos'altro in termini di quali oggetti e metodi possono essere utilizzati da una fonte. Ad esempio, l'integrazione di Twitter o Facebook in un sito utilizza un'API di Twitter o Facebook per garantire l'aggiornamento dei dati corretti.

I frame tendono ad essere un po 'più voluminosi in un certo senso in quanto a volte possono quasi formare la propria lingua. jQuery è un esempio di un framework che ha la sua sintassi e ha un po 'più peso in termini di entrare nel mio codice in un certo senso. I framework possono anche essere piattaforme che li rendono simili alle API in un certo senso, ad esempio Win32API o .Net Framework dispongono ciascuno di numerosi metodi per la creazione di un'applicazione in modo che ci possano essere frame con API e API visualizzate anche come frameworks.

Le librerie tendono ad essere file binari che implementano un'API o un Framework e quindi sono i bit che è necessario utilizzare un'API o un Framework in alcuni casi. Almeno è così che vedo questi termini e le differenze tra loro.


1

Vai in una biblioteca e inizia a leggere libri. Se sei l'applicazione, la raccolta di libri è la biblioteca. Gli scaffali, gli armadi e il composto che ospita tutto ciò costituisce il quadro. Tutto ciò che viene in contatto durante l'esecuzione del compito di leggere i libri è l'API.


Questa è una risposta meravigliosa
Magus,

0

Una libreria è una raccolta di codice che viene utilizzata per semplificare attività comuni: può essere classi, funzioni o qualunque cosa sia specifica per la tua lingua o piattaforma. Un buon esempio potrebbe essere una libreria di manipolazione di stringhe che fornisce helper per attività comuni (costruzione, divisione, ricerca o ordinamento di stringhe, ecc.).

Un'API (interfaccia di programmazione dell'applicazione) è una definizione ('interfaccia') di come lavorare con un'altra applicazione, sistema o tecnologia. Definisce essenzialmente le operazioni disponibili per interagire con quell'altro sistema. Un'API può essere una libreria (il che significa che l'API è racchiusa in una libreria o in un insieme di classi), ma la distinzione è che un'API fa sempre riferimento a un sistema esterno, sia esso un database, un servizio Web, un'altra applicazione o il sistema operativo si.

Un Framework è un concetto più ampio: conterrà normalmente un numero di librerie e API per eseguire attività comuni. Esiste a un livello concettuale superiore: non è solo una raccolta di strumenti, ma anche una raccolta di modelli di progettazione, migliori pratiche e metodologie. Un Framework software è un'estensione di un framework generale - i suoi significati includono essere una base da cui sono costruite le cose, fornire supporto e struttura e fornire guida e definizione ai requisiti.


0

L'applicazione è sviluppata utilizzando librerie basate su un framework e comunica tramite un'API.

Se crei un'app, indica un'applicazione di elaborazione delle immagini online,

  • È possibile utilizzare alcune librerie di elaborazione delle immagini già scritte.
  • su qualsiasi framework tu sappia che ti guiderà a costruire l'applicazione.
  • Fornirai l'applicazione in qualche modo per interagire con il mondo esterno ... sarebbe l'API delle tue applicazioni per il resto del mondo.

Quando arriva una chiamata all'applicazione

  • sarebbe gestito in un modo come progettato con la guida del framework
  • elaborazione della chiamata effettuata dalla libreria
  • queste funzioni saranno accessibili tramite l'API dall'esterno

alla persona chiamante

ragioni per cui esistono:

  • libreria: ti salva dal reinventare la ruota
  • framework: ti salva da trappole inaspettate di progettazione e gestione del sistema a meno che il framework stesso non abbia dei difetti
  • API: garantisce la sicurezza dell'applicazione interfacciaendo il core dall'accesso al mondo reale
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.