it-swarm-eu.dev

Knihovna vs. rámec vs API?

Jaký je rozdíl mezi knihovnou, frameworkem a API? Všechny se mi zdají stejné. Chtěl bych slyšet, jak si o tom lidé myslí.

33
Bob Dole

Knihovna je kolekce funkcí/objektů, které slouží jednomu konkrétnímu účelu. můžete použít knihovnu v různých projektech.

Rámec je kolekce vzorů a knihoven, které pomáhají s vytvářením aplikace.

Rozhraní API je rozhraní pro ostatní programy, které komunikují s programem bez přímého přístupu.

Jinými slovy, myslíme na knihovnu jako na doplněk/kus aplikace, rámec jako kostru aplikace a API jako část aplikace směřující ven.

35
GSto

Dosud dobré odpovědi, ale chybí jim jeden klíčový bod - rámec používá IoC . Váš kód je obklopen rámcem. Žije v něm. Naproti tomu váš kód používá knihovnu nebo API. Žije mimo ni. IoC je rozdíl.

14
Scant Roger

Knihovna je kolekce kódu vytvořeného k provádění běžných úkolů. Kód knihovny má tendenci být relativně stabilní a bez chyb. Použití vhodných knihoven může snížit množství kódu, který je třeba napsat. To bude mít tendenci snižovat počet řádků kódu pro aplikaci, což zvýší rychlost, jakou je funkce dodána. Ve většině případů je lepší použít knihovní rutinu, než napsat vlastní kód.

Rozhraní API (Application Programming Interface) je rozhraní k některým funkcím, které umožňují aplikaci získat přístup k dostupným funkcím. Rozhraní API lze označit jako rozhraní. API existuje na mnoha úrovních, včetně systému, knihovny, frameworku, programu a aplikace. API by měla být definována před implementací kódu, který je implementuje.

API by měla být stabilní, ačkoli části API mohou být z různých důvodů zastaralé. Čím více se API používá, tím je obtížnější jej změnit. Většina, ne-li všechna rozhraní API Java 1.0 API je stále k dispozici, i když mnoho metod již není podporováno).

Framework je kolekce API navržených pro zjednodušení vytváření aplikací. Rámce poskytují implementace pro opakovaně použitelné komponenty. Dobré rámce bývají specializovány na jejich aplikaci.

The Java Collection Framework je kolekce API pro různé typy objektů, které lze použít ke zpracování kolekcí. Poskytuje hierarchii API pro různé kolekce. The Java Kolekce Framework, které rozšiřuje rozhraní SortedSet Set rozhraní, které zase rozšiřuje rozhraní Collection. Tato API jsou abstraktní rozhraní a skutečné implementace mají různé názvy. Kolekce Framework zjednodušuje implementaci kolekcí a zjednodušuje měnící se implementace během vývoje.

Rámce mohou být postaveny z menších rámců, jak je vidět v Java Jarní rámec zaměřený na vývoj J2EE. Jaro se skládá z více než tuctu rámců, z nichž mnohé lze použít samostatně nebo je nahradit jinými rámce.

Použití příslušných knihoven, API a frameworků může vývoj zjednodušit. Tyto komponenty se starají o běžné problémy a umožňují vývojovému týmu soustředit se na problémy specifické pro aplikaci.

3
BillThor

Rámec je krok z knihovny nahoru. Pokud je vaše sada nástrojů knihovna, pak by vaše dílna byla rámcem.

Wikipedia říká

API je abstrakce, která popisuje rozhraní pro interakci se sadou funkcí používaných součástmi softwarového systému

Důležité rozlišení mezi API a uživatelským rozhraním je v tom, že API umožňuje programově interagovat s Vaším řešením jiný software/služby.

Rozhraní API lze vytvořit jak pro aplikace (prostřednictvím dll nebo pluginů), tak pro webové stránky a služby (prostřednictvím REST a webových služeb)

2
Homde

Jděte do knihovny a začněte číst knihy. Pokud jste aplikace, pak sbírka knih je knihovna. Rámy tvoří police, skříně a směs, ve které se nachází vše. Vše, co přijdeš do kontaktu při plnění úkolu čtení knih, je API.

1
explorest

API definují, jak používat něco jiného z hlediska toho, jaké objekty a metody lze použít ze zdroje. Například integrace Twitteru nebo Facebooku do webu používá API z Twitteru nebo Facebooku k zajištění toho, aby byla aktualizována správná data.

Rámce bývají v určitém smyslu trochu objemnější, protože to občas může téměř vytvořit vlastní jazyk. jQuery je příkladem rámce, který má svou vlastní syntaxi a přináší trochu větší váhu, pokud jde o to, abych se do mého kódu dostal v jistém smyslu. Rámce mohou být také platformy, které je v jistém smyslu podobají API. Win32API nebo .Net Framework každý má mnoho metod pro vytváření aplikace, takže mohou existovat Frameworks, které mají API v nich a API, které jsou také považovány za Frameworks.

Knihovny bývají binární soubory, které implementují API nebo Framework, a proto jsou to bity, které musíte v některých případech použít API nebo Framework. Alespoň takto vidím tyto termíny a rozdíly mezi nimi.

1
JB King

Aplikace je vyvíjena pomocí knihoven založených na rámci a komunikuje prostřednictvím API.

Pokud sestavujete aplikaci, která říká online aplikaci pro zpracování obrázků,

  • Můžete použít některé předem napsané knihovny pro zpracování obrázků.
  • v jakémkoli rámci, který znáte, který vás provede sestavením aplikace.
  • Aplikaci poskytnete nějaký způsob interakce s vnějším světem .. to by bylo vaše aplikační API do zbytku světa.

Když přijde hovor do vaší aplikace

  • bylo by to řešeno tak, jak jste navrhli s vedením rámce
  • zpracování hovoru prováděného knihovnou
  • k těmto funkcím bude přistupováno prostřednictvím vašeho API z vnějšího světa

volající osobě

důvody, proč existují:

  • knihovna: zachrání vás před znovuobjevením kola
  • framework: zachrání vás před neočekávanými nástrahami návrhu systému a manipulace s ním, pokud rámec sám o sobě nemá nedostatky
  • API: zajišťuje bezpečnost aplikace propojením jádra ze skutečného světa
0
ganesh

Knihovna je kolekce kódu, která se používá ke zjednodušení běžných úkolů - mohou to být třídy, funkce nebo cokoli, co je specifické pro váš jazyk nebo platformu. Dobrým příkladem může být knihovna manipulace s řetězci, která poskytuje pomocníky pro běžné úkoly (vytváření, dělení, prohledávání nebo třídění řetězců atd.).

API (rozhraní pro programování aplikací) je definice („rozhraní“), jak pracovat s jinou aplikací, systémem nebo technologií. V podstatě definuje operace, které jsou k dispozici pro interakci s tímto jiným systémem. API může být knihovna (což znamená, že API je zabaleno do knihovny nebo sady tříd), ale rozdíl je v tom, že API vždy odkazuje na externí systém - ať už se jedná o databázi, webovou službu, jinou aplikaci nebo samotný operační systém.

Framework je širší koncept - obvykle bude obsahovat řadu knihoven a API pro provádění běžných úkolů. Existuje na vyšší koncepční úrovni - nejedná se pouze o soubor nástrojů, ale také o soubor návrhových vzorů, osvědčených postupů a metodik. Softwarový rámec je rozšířením obecného framework - mezi jeho významy patří, že je základem, ze kterého jsou věci stavěny, poskytuje podporu a strukturu a poskytuje pokyny a definici požadavkům.

0
Kirk Broadhurst