Het kiezen van de juiste tool of technologie voor een bepaald probleem is een van de belangrijkste aspecten van programmeren. De juiste tool is de sleutel tot het succes van een project. Dit is waar de meeste programmeurs falen omdat ze meestal met veel tools omgaan. Dit heeft betrekking op de ultieme vraag: "zou u uw applicatie moeten bouwen met een bibliotheek of een framework?" Dit is een van de meest omstreden gespreksonderwerpen binnen de gemeenschap van programmeurs en vaak een bron van verwarring. Een klein team met een handjevol ontwikkelaars, meestal beginners, kan beter af zijn met een raamwerk, terwijl bibliotheken bouwstenen zijn die overal kunnen worden gebruikt en zorgen voor meer flexibiliteit en controle.
Het belangrijkste verschil tussen een bibliotheek en een raamwerk is de "Inversion of Control" (IoC). Je zou kunnen zeggen dat framework een verzameling bibliotheken is, maar het hele idee is op de een of andere manier anders.
Bibliotheek is een verzameling van herbruikbare functies die worden gebruikt door computerprogramma's. Dit zijn de bronnen die u kunt hergebruiken, waaronder klassen, subroutines, voorgecompileerde code, berichtsjablonen, enz. Meestal hebben programmeertalen hun eigen standaardbibliotheken, maar programmeurs kunnen ook hun eigen standaardbibliotheken maken aangepaste bibliotheken. Het is gewoon een stuk code geschreven door andere ontwikkelaars dat overal kan worden hergebruikt. Bibliotheken kunnen naadloos worden geïntegreerd in bestaande projecten om functionaliteit toe te voegen die u verder kunt gebruiken met behulp van een API. Een beetje kennis is vereist om aan de slag te gaan.
Framework is een stukje code dat bepaalt hoe het project moet worden gestructureerd en uitgevoerd. Het geeft eenvoudig de architectuur van uw project opdracht, zoals het definiëren van de ontwerpparameters van een toepassing, zodat u zich kunt concentreren op de specifieke kenmerken van het project, en daarbij de nadruk legt op herbruikbaarheid van ontwerp in plaats van herbruikbaarheid van code. In tegenstelling tot bibliotheken, wordt het besturingselement omgekeerd in het geval van frameworks en de code roept nooit een framework op, in plaats daarvan roept het framework u op. In tegenstelling tot bibliotheken benadrukken frameworks structuur en normen.
Tijdens het programmeren is de bibliotheek een verzameling van herbruikbare functies - dwz de bronnen die u opnieuw kunt gebruiken - die worden gebruikt door computerprogramma's. De bronnen, soms modules genoemd, worden over het algemeen opgeslagen in het objectformaat. De meeste programmeertalen hebben hun eigen standaardbibliotheken, maar programmeurs kunnen ook hun eigen aangepaste bibliotheken maken. Eenvoudig gezegd is een bibliotheek een reeks functies die u kunt gebruiken, terwijl een framework een stuk code is dat de architectuur van uw project dicteert. In zekere zin zijn kaders en programmeertalen met elkaar verweven die samen helpen in computerprogramma's.
De "Inversie van Controle" is het belangrijkste verschil dat een kader van een bibliotheek scheidt. Een bibliotheek is een verzameling functies en routines die door andere programma's worden gebruikt en u hebt volledige controle als het een methode uit een bibliotheek aanroept. De besturing is echter omgekeerd in het geval van een raamwerk. Het dicteert de structuur van uw project en de code roept nooit een kader op, in plaats daarvan roept het u op. Simpel gezegd, u kunt bibliotheek eenvoudigweg beschouwen als een functie van een toepassing en een raamwerk als het skelet van de toepassing waarin de toepassing zijn eigen kenmerken definieert.
Bibliotheken zijn een reeks functies die overal kunnen worden gebruikt, wat betekent dat het eenvoudigweg een stuk code is dat is geschreven door andere ontwikkelaars en dat kan worden hergebruikt. Ze zijn naadloos geïntegreerd in bestaande projecten om functionaliteit toe te voegen die u kunt openen met behulp van een API. Ze worden meestal gebruikt voor veelgebruikte modules, omdat u ze niet expliciet hoeft te koppelen aan elk programma dat ze gebruikt. Ze zijn belangrijk bij het koppelen en binden van programma's. Frameworks bieden een standaardmanier om applicaties te bouwen en in te zetten en kunnen meestal worden gebruikt bij het starten van een nieuw project in plaats van te worden geïntegreerd in bestaande projecten.
Om een beter begrip te krijgen van het verschil tussen een bibliotheek en een raamwerk, laten we eens kijken naar jQuery en AngularJS. jQuery is een cross-platform JavaScript-bibliotheek die DOM-manipulatie vereenvoudigt, samen met een heleboel andere gecompliceerde dingen zoals CSS-manipulatie, HTML-gebeurtenismethoden, AJAX-oproepen, enz. Het doel van jQuery is om het gebruik van JavaScript op uw website te vereenvoudigen. AngularJS, aan de andere kant, is een structureel raamwerk gebaseerd op de MVC-architectuur die wordt gebruikt voor het maken van dynamische webtoepassingen. Het is volledig gebaseerd op HTML en JavaScript en in tegenstelling tot jQuery kan het niet worden geïntegreerd in bestaande projecten, omdat het als een kader bepaalt hoe uw code moet worden gestructureerd en uitgevoerd.
Wanneer er verwarring is over de vraag of u een bibliotheek of een framework voor het bouwen van een applicatie moet gebruiken, komt het allemaal neer op controle. Bibliotheken zijn een reeks functies die u kunt gebruiken en elke oproep voert een of andere taak uit en stuurt de besturing terug naar u. Ze kunnen naadloos worden geïntegreerd in bestaande projecten en een beetje kennis is vereist om u op weg te helpen. Frameworks, aan de andere kant, dicteren de algemene structuur van uw project en in tegenstelling tot bibliotheken, kaders bellen u en de code roept nooit in een raamwerk. Het belangrijkste verschil is natuurlijk de Inversion of Control. In eenvoudige bewoordingen zijn bibliotheken flexibeler met meer controle, terwijl frameworks structuur en standaarden afdwingen.