Forskellen mellem en ramme og et bibliotek

Udviklere bruger ofte begreberne "bibliotek" og "ramme" om hverandre. Men der er forskel.

Både rammer og biblioteker er kode skrevet af en anden, der bruges til at hjælpe med at løse almindelige problemer.

Lad os for eksempel sige, at du har et program, hvor du planlægger at arbejde med strenge. Du beslutter at holde din kode TØR (gentag ikke dig selv) og skriv nogle genanvendelige funktioner som disse:

function getWords(str) { const words = str.split(' '); return words; } function createSentence(words) { const sentence = words.join(' '); return sentence; }

Tillykke. Du har oprettet et bibliotek.

Der er ikke noget magisk ved rammer eller bibliotek. Både biblioteker og rammer er genanvendelig kode skrevet af en anden. Deres formål er at hjælpe dig med at løse almindelige problemer på lettere måder.

Jeg bruger ofte et hus som en metafor for webudviklingskoncepter.

Et bibliotek er som at gå til Ikea. Du har allerede et hjem, men du har brug for lidt hjælp til møbler. Du har ikke lyst til at lave dit eget bord fra bunden. Ikea giver dig mulighed for at vælge og vælge forskellige ting at gå i dit hjem. Du har kontrol.

En ramme er derimod som at bygge et modelhjem. Du har et sæt tegninger og et par begrænsede valg, når det kommer til arkitektur og design. I sidste ende er entreprenøren og tegningen i kontrol. Og de fortæller dig, hvornår og hvor du kan give dine input.

Den tekniske forskel

Den tekniske forskel mellem en ramme og et bibliotek ligger i et udtryk kaldet inversion af kontrol.

When you use a library, you are in charge of the flow of the application. You are choosing when and where to call the library. When you use a framework, the framework is in charge of the flow. It provides some places for you to plug in your code, but it calls the code you plugged in as needed.

Let’s look at an example using jQuery (a library) and Vue.js (a framework).

Imagine we want to display an error message when an error is present. In our example, we will click a button, and pretend an error occurs.

With jQuery:

// index.html