Výber správneho nástroja alebo technológie pre daný problém je jedným z najdôležitejších aspektov programovania. Správny nástroj je kľúčom k úspechu projektu. To je miesto, kde väčšina programátorov zlyhá, pretože sa zvyčajne zaoberajú mnohými nástrojmi. To sa týka poslednej otázky: „Mali by ste zostaviť svoju aplikáciu pomocou knižnice alebo rámca?“ Toto je jedna z najdiskutovanejších tém diskusie v komunite programátorov a často zdroj zmätku. Malý tím s hŕstkou vývojárov, väčšinou začiatočníkov, môže mať lepšiu prácu s rámcom, zatiaľ čo knižnice sú stavebnými kameňmi, ktoré sa dajú použiť kdekoľvek a umožňujú väčšiu flexibilitu a kontrolu..
Kľúčový rozdiel medzi knižnicou a rámcom je „inverzia kontroly“ (IoC). Dalo by sa povedať, že rámec je zbierka knižníc, ale celá myšlienka je nejako iná.
Knižnica je súbor opakovane použiteľných funkcií používaných počítačovými programami, čo znamená prostriedky, ktoré môžete znova použiť, ktoré môžu zahŕňať triedy, podprogramy, predkompilovaný kód, šablóny správ atď. Väčšinou programovacie jazyky majú svoje vlastné štandardné knižnice, ale programátori si môžu tiež vytvoriť svoje vlastné vlastné knižnice. Je to jednoducho časť kódu napísaná inými vývojármi, ktorú je možné znova použiť kdekoľvek. Knižnice sa dajú bez problémov začleniť do existujúcich projektov a pridať tak funkcie, ku ktorým môžete ďalej pristupovať pomocou API. Potrebujete trochu vedomostí, aby ste mohli začať.
Framework je časť kódu, ktorý určuje, ako by mal byť projekt štruktúrovaný a spustený. Jednoducho nariaďuje architektúru vášho projektu, ako je definovanie parametrov návrhu aplikácie, takže sa môžete zamerať na špecifiká projektu, a tým zdôrazniť skôr opakovanú použiteľnosť dizajnu ako opakovanú použiteľnosť kódu. Na rozdiel od knižníc je riadenie invertované v prípade rámcov a kód nikdy nevolá do rámca, ale rámec vás volá. Na rozdiel od knižníc, rámce zdôrazňujú štruktúru a štandardy.
V programovaní je knižnica súbor opakovane použiteľných funkcií - to znamená prostriedkov, ktoré môžete opätovne použiť - používané počítačovými programami. Prostriedky, niekedy nazývané ako moduly, sa zvyčajne ukladajú v objektovom formáte. Väčšina programovacích jazykov má svoje vlastné štandardné knižnice, ale programátori si môžu vytvoriť aj vlastné vlastné knižnice. Zjednodušene povedané, knižnica je sada funkcií, ktoré môžete volať, zatiaľ čo rámec je časť kódu, ktorá určuje architektúru vášho projektu. Svojím spôsobom sú prepojené rámce a programovacie jazyky, ktoré spolu pomáhajú v počítačových programoch.
„Inverzia kontroly“ je kľúčový rozdiel, ktorý oddeľuje rámec od knižnice. Knižnica je sada funkcií a rutín používaných inými programami a máte úplnú kontrolu nad tým, či zavoláte metódu z knižnice. V prípade rámca je však kontrola invertovaná. Diktuje štruktúru vášho projektu a kód nikdy nevolá do rámca, namiesto toho vás volá. Jednoducho povedané, môžete jednoducho myslieť na knižnicu ako na funkciu aplikácie a rámec ako kostru aplikácie, v ktorej aplikácia definuje svoje vlastné vlastnosti..
Knižnice sú skupinou funkcií, ktoré sa dajú použiť kdekoľvek, čo znamená, že ide jednoducho o časť kódu napísanú inými vývojármi, ktorú je možné opätovne použiť. Sú bezproblémovo začlenené do existujúcich projektov, čím zvyšujú funkčnosť, ku ktorej máte prístup pomocou rozhrania API. Väčšinou sa používajú pre často používané moduly, pretože ich nemusíte explicitne spájať s každým programom, ktorý ich používa. Sú dôležité pri prepojení programov a procese viazania. Rámce na druhej strane poskytujú štandardný spôsob vytvárania a nasadzovania aplikácií a môžu sa väčšinou používať skôr pri začatí nového projektu ako pri integrácii do existujúcich..
Aby sme lepšie porozumeli rozdielu medzi knižnicou a rámcom, poďme sa pozrieť na jQuery a AngularJS. jQuery je multiplatformová knižnica JavaScript, ktorá zjednodušuje manipuláciu s DOM a mnoho ďalších komplikovaných vecí, ako je manipulácia s CSS, metódy HTML udalostí, volania AJAX atď. Účelom jQuery je zjednodušiť používanie JavaScriptu na vašom webe. Na druhej strane AngularJS je štrukturálny rámec založený na architektúre MVC, ktorý sa používa na vytváranie dynamických webových aplikácií. Je úplne založený na HTML a JavaScripte a na rozdiel od jQuery ho nemožno integrovať do existujúcich projektov, pretože ako rámec určuje, ako sa má kód štruktúrovať a spúšťať..
Ak dôjde k nejasnostiam pri rozhodovaní o tom, či by ste na vytvorenie aplikácie mali používať knižnicu alebo rámec, všetko sa deje pod kontrolu. Knižnice sú skupinou funkcií, ktoré môžete volať, a každý hovor vykoná nejakú úlohu a vráti vám ovládací prvok späť. Môžu byť bez problémov začlenené do existujúcich projektov a na začatie činnosti sú potrebné určité znalosti. Na druhej strane sú to rámce, ktoré určujú celkovú štruktúru vášho projektu a na rozdiel od knižníc vás tieto rámce volajú a kód sa nikdy nevytvorí do rámca. Kľúčovým rozdielom je samozrejme inverzia kontroly. Zjednodušene povedané, knižnice sú flexibilnejšie s vyšším stupňom kontroly, zatiaľ čo rámce presadzujú štruktúru a štandardy.