Software maken met een framework vs bibliotheek: wat tech recruiters moeten weten

Gepubliceerd: Laatst bijgewerkt:
kader vs bibliotheek

Als technisch rekruteerder is het niet langer voldoende dat je alleen de namen van bepaalde programmeertalen kent - je moet ook de basis begrijpen van hoe software wordt gemaakt.

Als het gaat om het maken van productiesoftware, zijn er twee zeer belangrijke factoren om te overwegen: De eerste is dat het ontwikkelen van applicaties steeds complexer wordt. De tweede is dat programmeurs altijd proberen om effectiever en efficiënter te werken. Als gevolg daarvan moet elk team van programmeurs beslissen of het een applicatie bouwt met behulp van een software framework of een software library (of een aantal libraries). 

Om dezelfde reden moet je weten welke bibliotheken en frameworks relevant zijn voor een bepaalde functie waarvoor je werft. Op die manier kun je op zoek gaan naar ontwikkelaars die het beste passen bij die functie. Niet alleen dat, maar het is duidelijk aan bijna alle kandidaten als recruiters hun onderzoek niet hebben gedaan. Volledig begrijpen hoe programmeertalen, frameworks, en bibliotheken samenwerken zal je echt doen opvallen als een recruiter (maar ook om je zekerder te voelen als je over "techniek" praat) met kandidaten.

Het technische verschil tussen een raamwerk en een bibliotheek?

Zoals u in de onderstaande grafiek kunt zien, is het technische verschil tussen een framework en een library de vraag wie de controle heeft over bepaalde belangrijke acties tijdens het maken van software (en wanneer de software daadwerkelijk draait).

Wanneer een softwareontwikkelaar een functie uit een bibliotheek gebruikt, heeft de ontwikkelaar de controle - met andere woorden, de code van de ontwikkelaar heeft de volledige controle over de opeenvolging van gebeurtenissen. Met een framework is de richting van controle echter omgekeerd (dit staat bekend als Omkering van controle), aangezien het raamwerk de ontwikkelaar controleert - in dit geval controleert het raamwerk de code van de ontwikkelaar. In zekere zin werkt een framework op dezelfde manier als het zogenaamde Hollywood Principe: "Don't call Us, We'll call You".

kader vs bibliotheekBron: Fatos Morina

Wat zijn nu eigenlijk frameworks versus bibliotheken? In het bijzonder, wat is het verschil tussen deze twee concepten?

Wat is het doel van frameworks en bibliotheken?

Zoals u waarschijnlijk weet, verandert de door programmeurs geschreven applicatiecode voortdurend naarmate de applicatie waaraan zij werken evolueert en zich ontwikkelt. Raamwerken en bibliotheken zijn echter fundamentele bouwstenen die niet veranderen, en die worden gebruikt als de structuur van een bepaalde toepassing. Zowel bibliotheken als frameworks zijn door ontwikkelaars ontwikkeld om te voorkomen dat zij steeds dezelfde taken moeten uitvoeren. Zij kunnen ook bepaalde functionaliteit bieden zonder dat die functionaliteit van de grond af moet worden geïmplementeerd.

Wat zijn bibliotheken in codering?

Een bibliotheek is in wezen een verzameling functies die een ontwikkelaar kan oproepen ("call"). Tegenwoordig is een bibliotheek meestal georganiseerd in zogenaamde "klassen". Het idee achter zo'n bibliotheek is dat deze code bevat die herbruikbaar is voor een bepaald doel in een specifiek domein. Op die manier vereenvoudigt een bibliotheek specifieke taken door een reeks generieke functionaliteiten aan te bieden. Deze zijn dan klaar om te worden gebruikt in ("ingeplugd" in) een softwareprogramma. De meeste programmeertalen bieden bijvoorbeeld bibliotheken voor functionaliteit, zoals het formatteren van een string of het loggen van de uitzonderingen die tijdens runtime kunnen optreden. Door de juiste bibliotheken te gebruiken, kunnen ontwikkelaars de hoeveelheid code die zij moeten schrijven, beperken. Tegelijkertijd hebben bekende bibliotheken goede documentatie en zijn ze goed getest. Daarom is het in de meeste gevallen beter voor ontwikkelaars om een bibliotheek te gebruiken in plaats van de tijd en moeite te besteden aan het schrijven, testen en documenteren van hun eigen code.

Wat is een kader in programmeren?

Een framework kan worden omschreven als een architectuur die de implementatie van software op een overzichtelijke manier mogelijk maakt. Zo'n framework belichaamt dus een aantal voorgedefinieerde abstracte ontwerpen die gekoppeld zijn aan meer ingebouwd gedrag dan het geval is bij een library. In een framework is alle control flow al aanwezig en zijn er een aantal voorgedefinieerde hooks waar de ontwikkelaars hun eigen code kunnen plaatsen. Het resultaat is dat een framework een skelet definieert waar de ontwikkelaars van een bepaalde applicatie hun eigen functies definiëren om het skelet in te vullen. Met andere woorden, je kunt een framework zien als een verzameling patronen en bibliotheken die ontwikkelaars helpen om een applicatie te bouwen. Aan de andere kant dicteert een framework ook de architectuur van een bepaalde applicatie. Het definieert bijvoorbeeld de algemene structuur, de onderverdeling in klassen, de belangrijkste verantwoordelijkheden van klassen en de manier waarop objecten samenwerken.

Wanneer is het beter om een framework vs een library te gebruiken?

Zoals met zowat elke reële vraag, is het een complexe vraag die moeilijk in elk geval duidelijk te beantwoorden is. Een team met veel junior ontwikkelaars kan bijvoorbeeld beter af zijn met een framework, dat dus een bepaalde structuur en bepaalde standaarden afdwingt, en het team dicteert hoe het software moet bouwen. Aan de andere kant kan een ervaren team dat werkt aan een applicatie die niet alledaags is en niche-functionaliteit heeft, beter af zijn met een library (of libraries) dan met een framework, omdat dit hen meer flexibiliteit en controle geeft. In extremere gevallen kan het voor een bepaald team van ontwikkelaars zelfs beter zijn om software helemaal vanaf nul te bouwen, zonder gebruik te maken van een framework of bibliotheken.

Waar moet je op letten bij het screenen van kandidaten die bepaalde frameworks of bibliotheken moeten kennen

Hier is een mini-FAQ over hoe programmeertalen, frameworks, en software libraries in de echte wereld worden gebruikt. Waar relevant hebben we ook enkele suggesties toegevoegd over waar je op moet letten bij het screenen van kandidaten.

  • V: Kunnen programmeurs een toepassing programmeren zonder gebruik te maken van een bibliotheek of een raamwerk, maar met alleen hun eigen, vanaf nul geschreven code?

A: Ja, dat kan, maar dit zal altijd langer duren.

  • V: Kunnen programmeurs een applicatie bouwen met behulp van een framework plus wat eigen code?

A: Ja, dat kunnen ze.

  • V: Kunnen programmeurs een toepassing coderen met gebruikmaking van één bibliotheek (of meer dan één bibliotheek) plus een deel van hun eigen code?

A: Ja, dat kunnen ze.

  • V: Kunnen programmeurs hun eigen bibliotheek schrijven?

A: Ja, en de meeste programmeurs doen dit in de loop van hun eigen werk. Het is een van de beste manieren om elke vorm van duplicatie te vermijden, waar alle programmeurs een hekel aan hebben. Ontwikkelaars besluiten soms om bibliotheken die bijzonder nuttig zijn gebleken, vrij te geven aan de gemeenschap. Als recruiter is het de moeite waard kandidaten te vragen of zij dergelijke open-source bijdragen hebben geleverd.

  • V: Kunnen programmeurs een toepassing programmeren met gebruikmaking van een framework plus één bibliotheek (of meer dan één bibliotheek) plus hun eigen code?

A: Ja, dat kan. Als een team van ontwikkelaars al bekend is met een framework en relevante bibliotheken, en het specifieke framework een goede match is voor het domein waarin de nieuwe software zal werken, dan is deze aanpak waarschijnlijk de meest efficiënte en effectieve. Dit betekent dat u bij de werving op zoek gaat naar ontwikkelaars die al vertrouwd zijn met de frameworks en bibliotheken die uw team momenteel gebruikt.

  • V: Is het mogelijk dat een bibliotheek verouderd raakt?

A: Ja, maar het is onwaarschijnlijk dat dit gebeurt met een bekende bibliotheek die belangrijke functionaliteit biedt.

  • V: Is het mogelijk dat een kader verouderd raakt?

A: Ja, en dit is een van de potentiële nadelen van het gebruik van een framework. Frameworks komen en gaan, en zelfs als een framework lange tijd populair is, kan een framework dramatisch veranderen van de ene grote versie naar de andere grote versie. Natuurlijk proberen de makers/beheerders van populaire frameworks dergelijke veranderingen te beperken, maar het kan en gebeurt. U moet proberen op de hoogte te blijven van, op zijn minst, de belangrijkste wijzigingen in de frameworks die uw team gebruikt.

  • V: Kunnen programmeurs hun eigen framework maken?

A: Ja. Nadat een team van programmeurs klaar is met het maken van een nieuw soort software, gebeurt het vaak dat zij, op basis van hun specifieke ervaring, later een raamwerk maken dat ontworpen is om het mogelijk te maken een soortgelijk soort software te maken op een manier die aanzienlijk effectiever en efficiënter is. Het is een goed idee om cv's door te nemen om te zien of kandidaten dergelijke ervaring hebben opgedaan.

Conclusie

Nogmaals, als technisch rekruteerder is het heel belangrijk dat je kandidaten niet alleen screent op programmeertalen, maar ook op frameworks en bibliotheken.

Wij weten dat sommige technische termen over programmeertalen, software frameworks en bibliotheken verwarrend kunnen zijn. Als u twijfels hebt, raden wij u aan de woordenlijst te raadplegen die wij speciaal voor dit doel hebben opgesteld: https://devskiller.com/glossary-it-terms-tech-recruiters/.

Post delen

Meer informatie over het inhuren van tech

Abonneer u op onze Learning Hub en ontvang nuttige inzichten rechtstreeks in uw inbox.

Verifieer en ontwikkel coderingsvaardigheden naadloos.

Zie DevSkiller producten in actie.

Beveiligingscertificeringen & naleving. Wij zorgen ervoor dat uw gegevens veilig en beveiligd zijn.

DevSkiller logo TalentBoost logo TalentScore logo