Valg af det rigtige værktøj eller teknologi til et givet problem er et af de vigtigste aspekter ved programmering. Det rigtige værktøj er nøglen til et projekts succes. Det er her de fleste programmerere fejler, fordi de normalt beskæftiger sig med mange værktøjer. Dette angår det ultimative spørgsmål, "skal du bygge din ansøgning med et bibliotek eller en ramme?" Dette er et af de mest diskuterede diskussionsemner inden for programmørernes samfund og ofte en kilde til forvirring. Et lille team med en håndfuld udviklere, mest begyndere, kan have det bedre med at arbejde med en ramme, mens biblioteker er byggesten, der kan bruges overalt og giver mulighed for større fleksibilitet og kontrol.
Den vigtigste forskel mellem et bibliotek og en ramme er “Inversion of Control” (IoC). Man kan sige, at rammer er en samling biblioteker, men hele ideen er på en eller anden måde anderledes.
Bibliotek er en samling af genanvendelige funktioner, der bruges af computerprogrammer, hvilket betyder, hvilke ressourcer du kan genbruge, som kan omfatte klasser, underprogrammer, forudkompileret kode, beskedskabeloner osv. For det meste har programmeringssprog deres egne standardbiblioteker, men programmerere kan også oprette deres egne brugerdefinerede biblioteker. Det er ganske enkelt et stykke kode skrevet af andre udviklere, der kan genbruges overalt. Biblioteker kan integreres problemfrit i eksisterende projekter for at tilføje funktionalitet, som du yderligere kan få adgang til ved hjælp af en API. For at komme i gang kræves det en lille viden.
Framework er et stykke kode, der dikterer, hvordan projektet skal struktureres og køres. Det kræver simpelthen arkitekturen i dit projekt som at definere designparametrene for en applikation, så du kan fokusere på det specifikke ved projektet og derved understrege på genanvendelighed af design snarere end genanvendelse af kode. I modsætning til biblioteker inverteres kontrollen i tilfælde af rammer, og koden kaldes aldrig ind i en ramme, i stedet kalder rammen dig. I modsætning til biblioteker lægger rammer vægt på struktur og standarder.
I programmering er bibliotek en samling af genanvendelige funktioner - hvilket betyder de ressourcer, du kan genbruge - brugt af computerprogrammer. Ressourcerne, sommetider kaldes som moduler, gemmes normalt i objektformat. De fleste programmeringssprog har deres egne standardbiblioteker, men programmerere kan også oprette deres egne brugerdefinerede biblioteker. Enkelt sagt er et bibliotek et sæt funktioner, som du kan kalde, mens en ramme er et stykke kode, der dikterer arkitekturen for dit projekt. På en måde er rammer og programmeringssprog sammenflettet, der sammen hjælper med computerprogrammer.
"Inversion of Control" er den vigtigste forskel, der adskiller en ramme fra et bibliotek. Et bibliotek er et sæt funktioner og rutiner, der bruges af andre programmer, og du har fuld kontrol, hvis det når du kalder en metode fra et bibliotek. Imidlertid inverteres kontrollen i tilfælde af en ramme. Det dikterer strukturen af dit projekt, og koden kaldes aldrig ind i en ramme, i stedet for den kalder dig. Kort sagt kan du simpelthen tænke på bibliotek som en funktion af en applikation og en ramme som skelet af den applikation, hvor applikationen definerer sine egne funktioner.
Biblioteker er et sæt funktioner, der kan bruges overalt, hvilket betyder, at det ganske enkelt er et stykke kode skrevet af andre udviklere, som kan genbruges. De integreres problemfrit i eksisterende projekter for at tilføje funktionalitet, som du kan få adgang til ved hjælp af en API. De bruges mest til ofte anvendte moduler, fordi du ikke behøver at eksplicit knytte dem til hvert program, der bruger dem. De er vigtige i programforbindelses- og bindingsprocessen. Rammer giver på den anden side en standardmåde til at opbygge og implementere applikationer og kan mest bruges, når man starter et nyt projekt snarere end integreret i eksisterende..
For bedre at forstå forskellen mellem et bibliotek og en ramme, lad os se på jQuery og AngularJS. jQuery er et cross-platform JavaScript-bibliotek, der forenkler DOM-manipulation sammen med en masse andre komplicerede ting, såsom CSS-manipulation, HTML-hændelsesmetoder, AJAX-opkald osv. Formålet med jQuery er at forenkle brugen af JavaScript på din hjemmeside. AngularJS er på den anden side en strukturel ramme baseret på MVC-arkitekturen, der bruges til at skabe dynamiske webapplikationer. Det er helt baseret på HTML og JavaScript og i modsætning til jQuery kan det ikke integreres i eksisterende projekter, fordi det som en ramme dikterer, hvordan din kode skal struktureres og køres.
Når der er forvirring ved at beslutte, om du skal bruge et bibliotek eller en ramme til opbygning af en applikation, kommer det hele til kontrol. Biblioteker er et sæt funktioner, som du kan ringe til, og hvert opkald udfører en eller anden opgave og returnerer kontrollen til dig. De kan integreres problemfrit i eksisterende projekter, og der kræves lidt viden for at komme i gang. Rammer på den anden side dikterer det overordnede struktur for dit projekt, og i modsætning til biblioteker ringer rammer dig, og koden ringer aldrig ind i en ramme. Den vigtigste forskel er naturligvis Inversion of Control. Enkelt sagt er biblioteker mere fleksible med større grad af kontrol, mens rammer håndhæver struktur og standarder.