Knihovna a rámec
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 se obvykle zabývají mnoha nástroji. To se týká konečné otázky: "Máte-li vytvořit svou aplikaci s knihovnou nebo rámcem?" Jedná se o jednu z nejdiskutovatelnějších témat diskuse v komunitě programátorů a často je zdrojem zmatek. Malý tým s hrstkou vývojářů, většinou začátečníci, může být lépe pracovat s rámcem, zatímco knihovny jsou stavebními 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 řízení" (IoC). Dalo by se říci, že rámec je sbírka knihoven, ale celá myšlenka je poněkud odlišná.
Co je Knihovna?
Knihovna je sbírka opakovaně použitelných funkcí používaných v počítačových programech, což znamená zdroje, které můžete znovu použít, což může 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 mohou také vytvářet vlastní vlastní knihovny. Jedná se prostě o kus kódu, který napsali jiní vývojáři, které mohou být znovu použity kdekoli. Knihovny lze bezproblémově zapracovat do stávajících projektů a přidat funkce, které můžete dále využívat pomocí rozhraní API. Je zapotřebí jen málo znalostí, abyste mohli začít.
Co je rámec?
Rámeček je kód, který diktuje, jak by měl být projekt uspořádán a provozován. Jednoduše pověří architekturu vašeho projektu, jako je definování návrhových parametrů aplikace tak, abyste se mohli zaměřit na specifika projektu, a tak zdůrazňovat opětovnou použitelnost návrhu spíše než opakovanou použitelnost kódu. Na rozdíl od knihoven je kontrola obrácena v případě rámců a kód nikdy volá do rámce, místo toho vás volá rámec. Na rozdíl od knihoven rámce zdůrazňují strukturu a standardy.
Rozdíl mezi knihovnou a rámcem
Při programování je knihovna sbírkou opakovaně použitelných funkcí - tedy zdrojů, které můžete znovu použít - používané počítačovými programy. Zdroje, někdy označované jako moduly, jsou obecně uloženy ve formátu objektu. Většina programovacích jazyků má své vlastní standardní knihovny, ale programátoři mohou také vytvářet vlastní vlastní knihovny. Jednoduše řečeno, knihovna je sada funkcí, které můžete volat, zatímco rámec je částí kódu, který diktuje architekturu vašeho projektu. Rámečky a programovací jazyky se vzájemně propojují, což společně pomáhá v počítačových programech.
Inverze řízení 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, pokud při volání metody z knihovny. Ovládání je však v případě rámce obráceno. 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 prostě myslet na knihovnu jako funkci aplikace a rámce jako kostra aplikace, ve které aplikace definuje své vlastní rysy.
Knihovny jsou sada funkcí, které lze použít kdekoli, což znamená, že prostě je to kus kódu napsaný dalšími vývojáři, kteří mohou být znovu použiti. Jsou integrovány bezproblémově do stávajících projektů a přidávají tak funkčnost, ke které máte přístup pomocí rozhraní API. Nejčastěji se používají pro často používané moduly, protože nemusíte je explicitně propojovat s každým programem, který je používá. Jsou důležité v procesu propojení a vazby programů. Rámečky na druhou stranu poskytují standardní způsob budování a zavádění aplikací a mohou být většinou používány při spuštění nového projektu spíše než integrovány do stávajících.
Abychom lépe porozuměli rozdílu mezi knihovnou a strukturou, podívejme se na jQuery a AngularJS. jQuery je křížová platforma JavaScriptu, která zjednodušuje manipulaci s DOM spolu s mnoha dalšími komplikovanými věcmi, jako je manipulace s CSS, metody událostí HTML, volání AJAX atd. Účelem jQuery je zjednodušit používání JavaScript na vašich webových stránkách. AngularJS, na druhé straně, je strukturální rámec založený na architektuře MVC používanou pro vytváření dynamických webových aplikací. Je to zcela založeno na jazycích HTML a JavaScript a na rozdíl od jQuery, nemůže být integrováno do stávajících projektů, protože jako rámec určuje, jak má být váš kód strukturován a spuštěn.
Knihovna vs. rámec: Srovnávací graf
Shrnutí knihovny vs. rámce
Když je nejasné, že byste měli rozhodovat o tom, zda byste měli používat knihovnu nebo rámec pro vytváření aplikací, vše se dá ovládat. Knihovny jsou množinou funkcí, které můžete volat a každé volání provádí nějakou úlohu a vrátí zpět kontrolu. Mohou být bezproblémově začleněny do stávajících projektů a potřebujete trochu znalostí, abyste mohli začít. Rámečky na druhou stranu diktují celkovou strukturu vašeho projektu a na rozdíl od knihoven, rámce vás zavolávají a kód nikdy nevyvolává rámec. Klíčovým rozdílem je samozřejmě Inverze řízení.Jednoduše řečeno, knihovny jsou flexibilnější a mají větší stupeň kontroly, zatímco rámce prosazují strukturu a standardy.