Výběr správného nástroje nebo technologie pro daný problém je jedním z nejdůležitějších aspektů programování. Správný nástroj je klíčem k úspěchu projektu. To je místo, kde většina programátorů selže, protože obvykle řeší mnoho nástrojů. To se týká konečné otázky: „měli byste sestavit svou aplikaci s knihovnou nebo rámcem?“ Toto je jedno z nejvíce diskutabilních témat diskuse v komunitě programátorů a často zdroj zmatku. Malý tým s hrstkou vývojářů, většinou začátečníků, může být lepší pracovat s rámcem, zatímco knihovny jsou stavební kameny, které lze použít kdekoli a umožňují větší flexibilitu a kontrolu.
Klíčovým rozdílem mezi knihovnou a rámcem je „inverze kontroly“ (IoC). Dalo by se říci, že rámec je sbírka knihoven, ale celá myšlenka je nějak jiná.
Knihovna je sbírka opakovaně použitelných funkcí používaných počítačovými programy, což znamená prostředky, které můžete znovu použít a které mohou zahrnovat třídy, podprogramy, předkompilovaný kód, šablony zpráv atd. Většinou programovací jazyky mají své vlastní standardní knihovny, ale programátoři si také mohou vytvořit své vlastní vlastní knihovny. Je to prostě kus kódu napsaný jinými vývojáři, který lze znovu použít kdekoli. Knihovny lze bez problémů začlenit do stávajících projektů a přidat tak funkčnost, ke které můžete dále přistupovat pomocí API. Musíte začít trochu znalostí.
Framework je část kódu, která určuje, jak by měl být projekt strukturován a spuštěn. Jednoduše pověřuje architekturu vašeho projektu, jako je definování návrhových parametrů aplikace, takže se můžete zaměřit na specifika projektu, čímž se klade důraz na opakovanou použitelnost návrhu než na opakovanou použitelnost kódu. Na rozdíl od knihoven je řízení invertováno v případě rámců a kód nikdy nevolá do rámce, místo toho vás volá rámec. Na rozdíl od knihoven rámce zdůrazňují strukturu a standardy.
V programování je knihovna kolekce opakovaně použitelných funkcí - tj. Prostředků, které můžete znovu použít - používané počítačovými programy. Zdroje, někdy nazývané jako moduly, jsou obvykle uloženy v objektovém formátu. Většina programovacích jazyků má své vlastní standardní knihovny, ale programátoři mohou také vytvářet své vlastní knihovny. Jednoduše řečeno, knihovna je sada funkcí, které můžete volat, zatímco rámec je část kódu, která určuje architekturu vašeho projektu. Svým způsobem jsou vzájemně propojeny rámce a programovací jazyky, které společně pomáhají v počítačových programech.
„Inverze kontroly“ je klíčový rozdíl, který odděluje rámec od knihovny. Knihovna je sada funkcí a rutin používaných jinými programy a máte plnou kontrolu nad tím, zda zavoláte metodu z knihovny. Ovládání je však v případě rámce invertováno. Diktuje strukturu vašeho projektu a kód nikdy nevolá do rámce, místo toho vás volá. Jednoduše řečeno, můžete jednoduše myslet na knihovnu jako na funkci aplikace a rámec jako kostru aplikace, ve které aplikace definuje své vlastní funkce..
Knihovny jsou sadou funkcí, které lze použít kdekoli, což znamená, že jde jednoduše o kus kódu napsaný jinými vývojáři, který lze znovu použít. Bezproblémově jsou začleněny do stávajících projektů, aby přidaly funkce, ke kterým máte přístup pomocí API. Většinou se používají pro často používané moduly, protože je nemusíte explicitně propojovat s každým programem, který je používá. Jsou důležité při propojování programů a procesu vazby. Rámce na druhé straně poskytují standardní způsob vytváření a nasazování aplikací a lze je většinou použít při zahájení nového projektu, nikoli integrovat do existujících..
Abychom lépe porozuměli rozdílu mezi knihovnou a rámcem, podívejme se na jQuery a AngularJS. jQuery je multiplatformní knihovna JavaScript, která zjednodušuje manipulaci s DOM a spoustu dalších komplikovaných věcí, jako je manipulace s CSS, metody HTML událostí, volání AJAX atd. Účelem jQuery je zjednodušit používání JavaScriptu na vašem webu. AngularJS, na druhé straně, je strukturální rámec založený na architektuře MVC, který se používá pro vytváření dynamických webových aplikací. Je zcela založeno na HTML a JavaScript a na rozdíl od jQuery jej nelze integrovat do existujících projektů, protože jako rámec určuje, jak má být váš kód strukturován a spuštěn..
Když existuje zmatek ohledně rozhodnutí, zda byste měli používat knihovnu nebo rámec pro sestavení aplikace, vše se dostane pod kontrolu. Knihovny jsou sadou funkcí, které můžete volat, a každé volání provede nějakou úlohu a vrátí vám ovládací prvek zpět. Mohou být bez problémů začleněny do stávajících projektů a je zapotřebí trochu znalostí, abyste mohli začít. Na druhou stranu rámce diktují celkovou strukturu vašeho projektu a na rozdíl od knihoven vás rámce volají a kód nikdy nevolá do rámce. Klíčovým rozdílem je samozřejmě inverze kontroly. Zjednodušeně řečeno, knihovny jsou flexibilnější a mají vyšší stupeň kontroly, zatímco rámce vynucují strukturu a standardy.