Skapa programvara med ett ramverk eller ett bibliotek: vad rekryterare inom teknikbranschen behöver veta

Som teknisk rekryterare räcker det inte längre med att du bara kan namnen på vissa programmeringsspråk - du bör också förstå grunderna i hur programvara tillverkas.
När det gäller att skapa produktionsprogram finns det två mycket viktiga faktorer att ta hänsyn till: Den första är att det blir allt mer komplicerat att utveckla program. Den andra är att programmerare alltid försöker bli effektivare och mer ändamålsenliga i sitt arbete. Därför måste varje grupp programmerare bestämma sig för om de ska bygga en applikation med hjälp av antingen ett ramverk eller ett programbibliotek (eller ett antal bibliotek).
Av samma anledning måste du veta vilka bibliotek och ramverk som är relevanta för en viss tjänst som du rekryterar till. På så sätt kan du söka efter utvecklare som passar bäst för den aktuella tjänsten. Inte bara det, utan det är också uppenbart till nästan alla kandidater när rekryterare inte har gjort sin research.. Att fullt ut förstå hur Programmeringsspråk.ramverk och bibliotek fungerar tillsammans gör att du verkligen sticker ut som en rekryterare (och få dig att känna dig säkrare när du pratar om teknik) med kandidater.
Den tekniska skillnaden mellan ett ramverk och ett bibliotek?
Som du kan se i diagrammet nedan är den tekniska skillnaden mellan ett ramverk och ett bibliotek frågan om vem som har kontroll över vissa nyckelåtgärder under skapandet av programvaran (och när programvaran faktiskt körs).
När en programvaruutvecklare använder en funktion från ett bibliotek har utvecklaren kontroll - med andra ord har utvecklarens kod full kontroll över händelseförloppet. Med ett ramverk är dock kontrollriktningen omvänd (detta kallas för Inversion av kontroll), eftersom ramverket kontrollerar utvecklaren - i det här fallet kontrollerar ramverket utvecklarens kod. På sätt och vis fungerar ett ramverk på samma sätt som den så kallade Hollywoodprincipen: "Ring inte oss, vi ringer dig".
Källa: Fatos Morina
Så vad exakt är ramverk respektive bibliotek? Vad är skillnaden mellan dessa två begrepp?
Vad är syftet med ramverk och bibliotek?
Som du säkert vet ändras programkoden som programmerare skriver hela tiden i takt med att programmet de arbetar med utvecklas och utvecklas. Ramverk och bibliotek är dock grundläggande byggstenar som inte förändras och som används som struktur för en viss tillämpning. Både bibliotek och ramverk har utvecklats av utvecklare för att förhindra att de behöver utföra repetitiva uppgifter om och om igen. De kan också tillhandahålla viss funktionalitet utan att man behöver implementera denna funktionalitet från grunden.
Vad är bibliotek i kodning?
Ett bibliotek är i princip en uppsättning funktioner som en utvecklare kan få tillgång till ("anropa"). Numera är ett bibliotek vanligtvis organiserat i så kallade "klasser". Hela idén med ett sådant bibliotek är att det innehåller kod som kan återanvändas för ett visst syfte inom en viss domän. På så sätt förenklar ett bibliotek specifika uppgifter genom att tillhandahålla en uppsättning generiska funktioner. Dessa är sedan redo att användas i ("pluggas in") ett programvaruprogram. De flesta programmeringsspråk tillhandahåller till exempel bibliotek för funktioner, t.ex. för att formatera en sträng eller logga undantag som kan uppstå under körning. Genom att använda lämpliga bibliotek kan utvecklare minska mängden kod som de behöver skriva. Samtidigt har välkända bibliotek bra dokumentation och har testats väl. Därför är det i de flesta fall bättre för utvecklare att använda ett bibliotek än att lägga ner tid och möda på att skriva, testa och dokumentera sin egen kod.
Vad är ett ramverk inom programmering?
Ett ramverk kan beskrivas som en arkitektur som underlättar genomförandet av programvara på ett välorganiserat sätt. Ett sådant ramverk innehåller därför en fördefinierad abstrakt design som är kopplad till fler inbyggda beteenden än vad som är fallet med ett bibliotek. I ett ramverk är allt kontrollflöde redan på plats och det finns en mängd fördefinierade krokar där utvecklarna kan placera sin egen kod. Som ett resultat av detta definierar ett ramverk ett skelett där utvecklarna av en viss tillämpning definierar sina egna funktioner för att fylla ut skelettet. Med andra ord kan man se ett ramverk som en samling mönster och bibliotek som hjälper utvecklarna att bygga en applikation. På den andra sidan dikterar ett ramverk också arkitekturen för en viss tillämpning. Det definierar till exempel den övergripande strukturen, indelningen i klasser, klassernas nyckelansvar och hur objekten samarbetar.
När är det bättre att använda ett ramverk än ett bibliotek?
Precis som med nästan alla andra frågor i det verkliga livet är det en komplex fråga som är svår att besvara klart och tydligt i varje enskilt fall. Ett team med många juniora utvecklare kan till exempel vara bättre med ett ramverk, som därför upprätthåller en viss struktur och särskilda standarder och dikterar för teamet hur de ska bygga programvara. Å andra sidan kan ett erfaret team som arbetar med en applikation som inte är vanlig och har nischad funktionalitet vara bättre lämpat att använda ett bibliotek (eller bibliotek) än att använda ett ramverk, eftersom det ger dem större flexibilitet och kontroll. I mer extrema fall kan det till och med vara bättre för ett visst team av utvecklare att bygga programvaran helt och hållet från grunden, utan att använda vare sig ett ramverk eller bibliotek.
Vad du ska tänka på när du granskar kandidater som behöver känna till vissa ramverk eller bibliotek
Här är en mini-FAQ om hur programmeringsspråk, ramverk och programvarubibliotek används i verkligheten. Där det är relevant har vi också lagt till några förslag på vad man bör tänka på när man granskar kandidater.
- F: Kan programmerare programmera ett program utan vare sig bibliotek eller ramverk, utan att använda sin egen kod som skrivits från grunden?
S: Ja, det kan de, men det tar alltid längre tid.
- F: Kan programmerare programmera en applikation med hjälp av ett ramverk och en del av sin egen kod?
S: Ja, det kan de.
- F: Kan programmerare programmera ett program med hjälp av antingen ett bibliotek (eller flera bibliotek) och en del av sin egen kod?
S: Ja, det kan de.
- F: Kan programmerare skriva sitt eget bibliotek?
S: Ja, och de flesta programmerare gör det i sitt eget arbete. Det är ett av de bästa sätten att undvika alla former av dubbelarbete, vilket alla programmerare ogillar. Utvecklare bestämmer sig ibland för att släppa ut bibliotek som har visat sig vara särskilt användbara till samhället. Som rekryterare är det värt att fråga kandidater om de har gjort några sådana bidrag till öppen källkod.
- F: Kan programmerare programmera en applikation med hjälp av ett ramverk plus antingen ett bibliotek (eller fler än ett bibliotek) plus sin egen kod?
S: Ja, det kan de. Om ett team av utvecklare redan är bekanta med ett ramverk och relevanta bibliotek, och om det specifika ramverket är en bra matchning för den domän där den nya programvaran ska fungera, är detta tillvägagångssätt sannolikt det mest effektiva och ändamålsenliga. Detta innebär att du när du rekryterar söker efter utvecklare som redan är bekanta med de ramverk och bibliotek som ditt team för närvarande använder.
- F: Är det möjligt för ett bibliotek att bli föråldrat?
Svar: Ja, men det är osannolikt att detta skulle hända med ett välkänt bibliotek som har en betydande funktionalitet.
- F: Är det möjligt att ett ramverk blir föråldrat?
S: Ja, och detta är en av de potentiella nackdelarna med att använda ett ramverk. Ramverk kommer och går, och även om ett ramverk är populärt under lång tid kan alla ramverk förändras dramatiskt från en större version till en annan större version. Naturligtvis försöker skaparna/underhållarna av populära ramverk begränsa sådana förändringar, men det kan hända och händer. Du bör försöka hålla dig uppdaterad om åtminstone större förändringar i de ramverk som ditt team använder.
- F: Kan programmerare skapa sitt eget ramverk?
Svar: Ja. När ett team av programmerare har skapat en ny typ av programvara händer det ofta att de, på grundval av sina särskilda erfarenheter, senare skapar en ram som är utformad för att göra det möjligt att skapa en liknande typ av programvara på ett sätt som är betydligt effektivare och mer ändamålsenligt. Det är en bra idé att granska CV:n för att se om kandidaterna har haft någon sådan erfarenhet.
Slutsats
Som teknisk rekryterare är det mycket viktigt att du inte bara granskar kandidater med avseende på programmeringsspråk, utan även med avseende på ramverk och bibliotek.
Vi vet att en del av det tekniska språk som används för att tala om programmeringsspråk, programvaruframverk och bibliotek kan vara förvirrande. Om du är osäker rekommenderar vi att du tar en titt på den ordlista som vi har utarbetat speciellt för detta ändamål: https://devskiller.com/glossary-it-terms-tech-recruiters/.
Dela inlägg