Differenza tra framework vs Library vs IDE vs API vs SDK vs Toolkit? [chiuso]


144

Voglio alcuni esempi. Mi confondo sempre, quindi con alcuni esempi potrei riuscire a capirlo meglio.

Inoltre: Eclipse è un'API o un IDE?


1
eclipse è un IDE
Thielicious

Risposte:


294

Un IDE è un ambiente di sviluppo integrato - un editor di testo su-up con supporto aggiuntivo per lo sviluppo (come progettisti di moduli, editor di risorse, ecc.), Compilazione e debug di applicazioni. ad esempio Eclipse, Visual Studio.

Una biblioteca è un pezzo di codice che puoi chiamare dal tuo codice, per aiutarti a fare le cose più rapidamente / facilmente. Ad esempio, una libreria di elaborazione bitmap fornirà funzionalità per caricare e manipolare immagini bitmap, evitando di dover scrivere tutto quel codice per te stesso. In genere una libreria offre solo un'area di funzionalità (elaborazione di immagini o funzionamento su file zip)

Un API (Application Programming Interface) è un termine che significa le funzioni / metodi in una libreria che è possibile chiamare per chiedergli di fare le cose per voi - l'interfaccia alla libreria.

Un SDK (kit di sviluppo software) è una libreria o un gruppo di librerie (spesso con applicazioni di strumenti extra, file di dati e codice di esempio) che ti aiutano a sviluppare codice che utilizza un particolare sistema (ad esempio il codice di estensione per l'utilizzo delle funzionalità di un sistema operativo ( Windows SDK), disegnare grafica 3D tramite un particolare sistema (DirectX SDK), scrivere componenti aggiuntivi per estendere altre applicazioni (Office SDK) o scrivere codice per fare in modo che un dispositivo come un Arduino o un telefono cellulare facciano ciò che desideri). Un SDK di solito ha ancora un singolo focus.

Un toolkit è come un SDK: è un gruppo di strumenti (e spesso librerie di codici) che puoi usare per rendere più facile l'accesso a un dispositivo o sistema ... Anche se forse con più attenzione alla fornitura di strumenti e applicazioni che non solo alle librerie di codici .

Un framework è una grande libreria o un gruppo di librerie che fornisce molti servizi (piuttosto che forse solo una capacità focalizzata come fanno la maggior parte delle librerie / SDK). Ad esempio, .NET fornisce un framework applicativo - semplifica l'utilizzo della maggior parte (se non di tutti) dei diversi servizi di cui hai bisogno (ad es. Windows, grafica, stampa, comunicazioni, ecc.) Per scrivere una vasta gamma di applicazioni, quindi uno "library" fornisce supporto per praticamente tutto ciò che devi fare. Spesso un framework fornisce una base completa su cui costruire il proprio codice, piuttosto che creare un'applicazione che consuma il codice della libreria per svolgere parte del suo lavoro.

Ovviamente ci sono molti esempi in natura che non corrispondono esattamente a queste descrizioni.


3
Puoi dire che un SDK, una libreria o un framework contengono API.
Bastien Vandamme,

6
Un SDK è un'implementazione specifica del client per facilitare il consumo di un'API, ad esempio l'SDK javascript per l'API di Facebook. Spesso vedrai più lingue rappresentate nella sezione SDK della documentazione dell'API, ad esempio l'API twilio ha un python, ruby, C # e Java sdk per la loro API. Solo per confondere un po 'di più le cose, le chiamano Librerie API e SDK e ho sentito entrambi questi termini usati in modo intercambiabile.
Rob,

97

L'analogia con l'auto

inserisci qui la descrizione dell'immagine

IDE: MS Office of Programming. È dove digiti il ​​tuo codice, oltre ad alcune funzionalità aggiunte per renderti un programmatore più felice. (ad esempio Eclipse, Netbeans ). Carrozzeria: è ciò che tocchi, vedi e lavori davvero.

Libreria: una libreria è una raccolta di funzioni, spesso raggruppate in più file di programma, ma raggruppate in un singolo file di archivio. Questo contiene programmi creati da altre persone, in modo da non dover reinventare la ruota. (ad es. junit.jar, log4j.jar ). Una libreria ha generalmente un ruolo chiave, ma fa tutto il suo lavoro dietro le quinte, non ha una GUI. Motore dell'auto.

API: la documentazione dell'editore della biblioteca. Ecco come dovresti usare la mia biblioteca. (es. API log4j , API junit ). Manuale d'uso dell'auto - sì, anche le auto ne vengono fornite!


Kit

Cos'è un kit? È una raccolta di molti articoli correlati che collaborano per fornire un servizio specifico. Quando qualcuno dice un kit di medicinali, ottieni tutto il necessario per un'emergenza: cerotti, aspirina, garza e antisettico, ecc.

inserisci qui la descrizione dell'immagine

SDK : McDonald's Happy Meal . Hai tutto ciò di cui hai bisogno (e non hai bisogno) inscatolato ordinatamente: piatto principale, bevanda, dessert e un bonus giocattolo. Un SDK è un insieme di diversi componenti software assemblati in un pacchetto, in modo tale da essere "pronti all'uso" immediatamente. Spesso include più librerie e può , ma potrebbe non includere necessariamente plug-in, documentazione API e persino un IDE stesso. (ad es . kit di sviluppo iOS ).

Toolkit : GUI. GUI. GUI. Quando ascolti "toolkit" in un contesto di programmazione, spesso farà riferimento a una serie di librerie destinate allo sviluppo della GUI. Poiché i toolkit sono incentrati sull'interfaccia utente, spesso vengono forniti con plug-in (o IDE autonomi) che forniscono utilità di disegno dello schermo. (ad es. GWT )

Framework : sebbene non sia la nozione prevalente, un framework può essere visto come un kit. Ha anche una libreria (o una raccolta di librerie che lavorano insieme) che fornisce una struttura e un modello di codifica specifici (quindi la parola, framework ). (ad esempio Spring Framework)


41
Un'API non è solo la documentazione. In realtà non è affatto documentazione. Capisco la tua analogia, ma la documentazione o la documentazione API è il manuale della tua auto e l'API è più la scheda e i pulsanti della tua auto.
Bastien Vandamme,

1
Puoi fare la differenza tra la GUI e l'API. La GUI (Graphical User Interface) è l'interfaccia per l'utente finale non professionale. L'API (Application Programming Interface) è l'interfaccia per altri programmi. Durante lo sviluppo e l'applicazione è possibile creare una GUI o un'API o entrambe. Puoi anche creare altri tipi di interfacce.
Bastien Vandamme,

C'è sempre un'API dietro una GUI. Le GUI semplificano solo il caso d'uso. Nell'IT è più per ragioni non professionali come interfacce grafiche anziché codice. Eppure sulla logica della tua auto: potresti non essere in grado di guidare una macchina da solo, devi imparare e sapere come guidare (considera le lezioni di guida come un tutorial o documentazione). Se non vuoi raggiungerlo, potresti voler salire su un autobus o su un taxi poiché non sono richieste abilità di guida (in questo caso qui non sono necessarie capacità di programmazione) - quindi considererei i mezzi pubblici di trasporto come GUI. Sembra divertente ma dannatamente vero.
Thielicious il

Non sono d'accordo con "[library] non ha una GUI". Nel mondo JavaScript è molto comune che le librerie contengano una GUI.
user1505520

5

Valuta lo sviluppo Android:

IDE: Eclipse ecc.

Libreria: libreria android.app.Activity (Classe con tutto il codice)

API: interfaccia sostanzialmente tutte le funzioni con cui chiamiamo

SDK: Android SDK fornisce le librerie API e gli strumenti per sviluppatori necessari per creare, testare ed eseguire il debug di app per Android (---- strumenti - DDMS, emulatore ---- piattaforme - versioni del sistema operativo Android, ---- piattaforma- strumenti - ADB, ---- Documenti API)

ToolKit: potrebbe essere un pacchetto ADT

Framework: grande biblioteca ma più orientata all'architettura


3

In altre parole...

IDE Anche il tuo blocco note è un IDE. Ogni software con cui scrivi / compili il codice è un IDE.

Libreria Un gruppo di codice che semplifica le funzioni / i metodi per un rapido utilizzo.

API Un'interfaccia di programmazione per funzioni / configurazione con cui lavori, il suo utilizzo è spesso documentato.

SDK Extra e / o per scopi di sviluppo / test.

ToolKit Piccole app per un uso rapido, spesso GUI.

Le app della GUI con un'interfaccia grafica non richiedono conoscenze di programmazione diverse dalle API.

Mazzo di API / enorme libreria / frammenti di framework racchiusi in uno spazio dei nomi / o incapsulati dall'ambito esterno per una gestione compatta senza conflitti con altri codici.

MVC Un modello di progettazione separato in Modelli, Viste e Controller per applicazioni di grandi dimensioni. Non dipendono l'uno dall'altro e possono essere modificati / migliorati / sostituiti senza occuparsi di altro codice.

Esempio:

Automobile (modello)
L'oggetto che viene presentato.
Esempio in IT: un modulo HTML.


Videocamera (vista)
Qualcosa che è in grado di vedere l'oggetto (macchina).
Esempio in IT: browser che esegue il rendering di un sito Web con il modulo.


Driver (controller)
Qualcuno che guida quella macchina.
Esempio in IT: funzioni che gestiscono i dati dei moduli inviati.

Frammenti Piccoli codici di poche righe, potrebbero non essere nemmeno completi, ma vale la pena condividerli rapidamente.

Plug-in Funzioni esclusive solo per framework / API / librerie specificate.

Componenti aggiuntivi Moduli o servizi aggiuntivi per GUI specifiche.


2

SDK rappresenta il kit di sviluppo software e IDE rappresenta l'ambiente di sviluppo integrato. L'IDE è il software o il programma viene utilizzato per scrivere, compilare, eseguire ed eseguire il debug come Xcode. L'SDK è il motore sottostante dell'IDE, include tutte le librerie della piattaforma a cui un'app deve accedere. È più semplice di un IDE perché di solito non ha strumenti grafici.

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.