Å velge riktig verktøy eller teknologi for et gitt problem er et av de viktigste aspektene ved programmering. Riktig verktøy er nøkkelen til et prosjekts suksess. Det er her de fleste programmører feiler fordi de vanligvis håndterer mange verktøy. Dette gjelder det ultimate spørsmålet, "bør du bygge din søknad med et bibliotek eller et rammeverk?" Dette er et av de mest diskutable temaene for diskusjon innen programmørens samfunn og ofte en forvirringskilde. Et lite team med en håndfull utviklere, for det meste nybegynnere, kan være bedre å jobbe med et rammeverk, mens biblioteker er byggeklosser som kan brukes hvor som helst og gir større fleksibilitet og kontroll.
Hovedforskjellen mellom et bibliotek og et rammeverk er "Inversion of Control" (IoC). Man kan si at rammen er en samling av biblioteker, men hele ideen er noe annerledes.
Bibliotek er en samling av gjenbrukbare funksjoner som brukes av dataprogrammer som betyr ressursene som du kan gjenbruke som kan inkludere klasser, underrutiner, forhåndskompilert kode, meldingsmaler etc. De fleste programmeringsspråk har egne standardbiblioteker, men programmerere kan også lage egne tilpassede biblioteker. Det er bare et stykke kode skrevet av andre utviklere som kan gjenbrukes hvor som helst. Biblioteker kan sømløst inkorporeres i eksisterende prosjekter for å legge til funksjonalitet som du kan få tilgang til ved hjelp av en API. Det kreves litt kunnskap om at du skal komme i gang.
Ramme er et stykke kode som dikterer hvordan prosjektet skal struktureres og kjøre. Det oppfordrer rett og slett arkitekturen til prosjektet ditt som å definere designparametere for en applikasjon, slik at du kan fokusere på prosjektets spesifikasjoner og derved legge vekt på gjenbruk av design i stedet for gjenbruk av kode. I motsetning til biblioteker, er kontrollen omvendt i tilfelle rammeverk og koden kaller aldri inn i et rammeverk, men rammen kaller deg. I motsetning til biblioteker legger rammene vekt på struktur og standarder.
I programmeringen er biblioteket en samling av gjenbrukbare funksjoner - som betyr ressursene du kan gjenbruke - brukt av dataprogrammer. Ressursene, noen ganger kalt som moduler, lagres vanligvis i objektformat. De fleste programmeringsspråk har egne standardbiblioteker, men programmerere kan også lage egne tilpassede biblioteker. Enkelt sagt, et bibliotek er et sett med funksjoner du kan ringe, mens et rammeverk er et stykke kode som dikterer arkitekturen til prosjektet ditt. På en måte er rammebetingelser og programmeringsspråk sammenflettet som sammen hjelper i dataprogrammer.
"Inversion of Control" er nøkkeldifferansen som skiller et rammeverk fra et bibliotek. Et bibliotek er et sett med funksjoner og rutiner som brukes av andre programmer, og du er i full kontroll hvis den kaller en metode fra et bibliotek. Imidlertid er kontrollen omvendt i tilfelle rammeverk. Det dikterer prosjektets struktur og koden kaller aldri inn i et rammeverk, men det kaller deg. Enkelt sagt kan du bare tenke på biblioteket som en funksjon av en applikasjon og et rammeverk som skjelett av applikasjonen der applikasjonen definerer sine egne funksjoner.
Biblioteker er et sett med funksjoner som kan brukes hvor som helst, noe som betyr at det bare er et stykke kode skrevet av andre utviklere som kan gjenbrukes. De er integrert sømløst i eksisterende prosjekter for å legge til funksjonalitet som du kan få tilgang til ved hjelp av en API. De brukes mest til ofte brukte moduler fordi du ikke trenger å koble dem eksplisitt til hvert program som bruker dem. De er viktige i programkobling og bindingsprosess. Rammer, derimot, gir en standard måte å bygge og distribuere applikasjoner på, og kan mest brukes når man starter et nytt prosjekt snarere enn integrert i eksisterende.
For bedre å forstå forskjellen mellom et bibliotek og et rammeverk, la oss ta en titt på jQuery og AngularJS. jQuery er et kryptert JavaScript-bibliotek som forenkler DOM-manipulering sammen med mange andre kompliserte ting som CSS-manipulering, HTML-hendelsesmetoder, AJAX-samtaler etc. Formålet med jQuery er å forenkle bruk av JavaScript på nettstedet ditt. AngularJS, derimot, er et strukturelt rammeverk basert på MVC-arkitekturen som brukes til å lage dynamiske webapplikasjoner. Det er helt basert på HTML og JavaScript, og i motsetning til jQuery, kan det ikke integreres i eksisterende prosjekter fordi det som rammeverk dikterer hvordan koden din skal struktureres og løpe.
Når det er forvirring om å avgjøre om du skal bruke et bibliotek eller et rammeverk for å bygge et program, kommer det hele ned til kontroll. Biblioteker er et sett med funksjoner som du kan ringe og hver samtale utfører en oppgave og gir tilbake kontrollen til deg. De kan integreres sømløst i eksisterende prosjekter, og litt kunnskap er nødvendig for å komme i gang. Rammer på den annen side dikterer prosjektets overordnede struktur og i motsetning til biblioteker, kaller rammeverk deg og koden kaller aldri inn i et rammeverk. Hovedforskjellen er selvfølgelig Inversion of Control. Enkelt sagt, biblioteker er mer fleksible med større grad av kontroll, mens rammeverk håndhever struktur og standarder.