Det er svært at finde de bedste Vue.js udviklere. Du skal vide, hvor du skal lede, hvordan du kan spotte deres færdigheder, og endelig skal du sikre dig, at de passer til din virksomhed.
Heldigvis ved vi hos Proxify, hvordan vi kan gøre netop det.
Følg med og find svarene på disse spørgsmål (og flere andre) i denne praktiske, korte og præcise Vue.js-guide.
Hvad er Vue.js?
Tilbage i 2013 stødte en Google-ingeniør ved navn Evan You på et problem. Han og hans team skulle udvikle en ret kompleks UI-prototype (brugeroplevelse), men de havde brug for det hurtigt. At skrive masser af overflødig (jeg kan tilføje: kedelig) HTML-kode var ikke nok, så de valgte en anden fremgangsmåde.
Deres løsning: Ingenting. Til Evans og hans kollegers overraskelse var der dengang ikke noget værktøj, framework, program eller bibliotek, der kunne sætte dem i stand til at lave prototyper hurtigt. Med andre ord var de fastlåste!
De eksisterende værktøjer omfattede Angular.js (en proto-React.js) og Backbone.js, som primært blev brugt til store MVC-baserede applikationer og ikke rigtig var egnet til de projekter, de havde i tankerne.
Og her lå løsningen, lige foran næsen på dem: Angular.js. Evan tog de dele, som han kunne lide fra den, genanvendte dem og skabte Vue.js til glæde for hele Google Creative Lab-teamet.
Snart udgav de deres første Vue.js-iteration i 2013, tæt fulgt af den første stabile Vue.js-udgave i 2014. Du kan finde hele Vue.js-udgivelseshistorikken på GitHub.
Hvor populær er Vue.js?
Vue.js, et framework, der stammer fra programmeringssproget JavaScript, er i dag meget populært blandt alle slags udviklere, især inden for softwareudvikling, der kræver en letvægtstilgang til komplekse problemer.
Her er blot nogle få af de store webapplikationer og platforme, der er bygget med Vue.js:
- Gitlab
- Trivago
- Statista
- Behance
- Og det berygtede 9GAG, blandt andre
Når det drejer sig om gennemprøvede (ældre) teknologier, klarer de sig normalt bedre end nye frameworks i forhold til sikkerhed. Det skyldes primært, at ældre frameworks har været udsat for et stigende antal sårbarheder gennem årene, og at teamet bag dem har haft mere tid til at overveje og forbedre den overordnede arkitektur og derfor lappe disse problemer i tide.
Anvendelse af relativt "umodne" værktøjer indebærer en dobbelt risiko:
- Masser af fejl, sårbarheder eller udeladelser
- Mindre fællesskab med utilstrækkelig dokumentation, hvis der er behov for hjælp
Vue.js er et ældre open source-framework (2014), hvilket betyder at den klarer modenhedstesten med bravur.
Ifølge en JavaScript-undersøgelse fra 2020 var Vue.js det tredje mest populære JS framework det år, lige efter React.js (2.) og Svelte (1.). Derudover har udviklere også en overvejende positiv holdning til at arbejde med Vue.js. Omkring 42 % af respondenterne angav, at de ville bruge frameworket igen, mens 32 % udtrykte interesse for at lære mere om Vue.js i fremtiden.
Når vi taler om rå indtryk, så er Vue.js meget populær på GitHub. Det har i øjeblikket 194K+ stjerner og mere end 400 bidragydere, der støttes af et betydeligt antal sponsorer og andre bagmænd.
Hvor finder du Vue.js udviklere
Som jeg nævnte ovenfor, er det svært at få fat i højt kvalificerede Vue.js-udviklere. Faktisk er det generelt en meget vanskelig opgave at ansætte en udvikler, da der er mange ting, der kan gå galt - på mange uforudsigelige måder.
Heldigvis har vi hos Proxify fastlagt processen med at finde og ansætte Vue.js udviklere og gjort det til en videnskab.
Der er to hovedmetoder til at finde ekspertudviklere inden for Vue.js, herunder:
- Manuel (internt)
- Automatiseret (Sourced)
Den manuelle måde at gøre det på indebærer, at enten du selv eller en ansættelseschef i din virksomhed (eller måske en helt anden person) manuelt søger, finder og taler med den potentielle udvikler.
Den ansættende leder (eller du selv) skal vurdere deres soft skills, stack-færdigheder og andre færdigheder, jobkrav eller erhvervserfaring, som du mener vil være relevante for det kommende projekt. Men vi vender tilbage til dét at interviewe udviklere senere.
Her er nogle af de mest populære platforme, hvor du kan finde de bedste Vue.js-talenter:
- Upwork
- Toptal
- Proxify
- PeoplePerHour
- Ja
- Arbejdende nomader
- LinkedIn
Som en stolt Proxifier vil jeg anbefale, at du starter din søgning med Proxify og derefter går videre derfra. Det er en problemfri, gnidningsfri ansættelsesoplevelse og en tredobbelt win-win-win for kunden, udvikleren og vores platform også.
På den anden side kan du også samarbejde med et vikarbureau og automatisere/outsource hele ansættelsesprocessen, mens du kan fokusere på andre ting i din virksomhed.
Denne fremgangsmåde vil frigøre noget af din tid, men forbeholdet er, at "you never know what you’re going to get"-med tilladelse fra Forrest Gump. Vikarbureauer er ofte upålidelige og uegnede til at finde dedikerede teammedlemmer, der er oprigtigt interesserede i og brænder for at arbejde på dine projekter.
Faktisk kan det at finde den rette freelance Vue.js-udvikler være afgørende for udviklingsteamets succes-uanset applikationens udviklingsstadie.
Sådan interviewer du Vue.js-udviklere
Uanset om du leder efter fuldtids- eller deltidsudviklere, er der et par ting, du skal huske på under interviewprocessen:
- Mange års erfaring;
- Soft skills;
- Stack-ekspertise (frontend, backend, full-stack);
- Ekspertiseområde (webudvikling, mobiludvikling, hybridudviklingsmodel).
Kort sagt skal kandidaten være dedikeret til sit håndværk, altid ivrig efter at lære mere og forbedre sig, og have et godt øje for detaljer og for at identificere fejl i stor og kompleks kode.
De vigtigste tekniske færdigheder, som enhver Vue.js-udvikler bør have
Vue.js er et af de hurtigst voksende JavaScript frameworks i dag og har også etableret sig som et populært framework blandt udviklere på grund af dens tilgængelighed, alsidighed og ydeevne.
I lyset af dette er her de vigtigste tekniske færdigheder, som en lovende Vue.js-udvikler bør have.
HTML + CSS: Som de fleste af jer ved, er HTML og CSS rygraden i hele internettet. HTML fortæller siden, hvad den skal vise, og CSS fortæller internettet, hvordan siden skal se ud. Da Vue.js-applikationer oprettes med SFC (Single File Components), giver den samme model udviklerne mulighed for at definere Javascript-logikken, HTML-koden og CSS-stilene i applikationen.
Moderne JavaScript: Vue.js-apps arbejder med dynamiske i stedet for statiske data. Udviklere vil kunne bruge moderne JavaScript til at skrive, hvordan deres Vue.js-applikationer skal håndtere denne logik i SFC'en. Dette vil forbedre effektiviteten og hastigheden af hele udviklingsprocessen og give udviklerne mulighed for at skrive bedre kode.
Git: Enhver softwareudvikler bør være bekendt med Git. Git er et versionsstyringssystem (VSC), der gør det muligt for udviklere at spore ændringer i deres filer og gør det lettere at arbejde med flere personer på det samme projekt. Vue.js-udviklere bør være bekendt med GitHub eller Gitlab og bør kunne bruge dem uden problemer.
Vue, Vue CLI og Vue Native: Det siger sig selv, men succesfulde Vue.js-udviklere bør være intimt fortrolige med Vue-programmeringssproget. For kommende udviklere er Vue-dokumentationen et godt sted at starte.
Derudover er Vue.js også "udstyret" med en kommandolinjeinterface (CLI) for at gøre udviklingsprocessen hurtigere, nemmere og mere pålidelig. Den nyeste CLI opererer på en helt ny plugin-baseret arkitektur, som giver udviklere mulighed for at skabe deres egne unikke presets og plugins.
I øjeblikket er Vue Native blevet forældet. Vue.js-udviklere bør dog altid stræbe efter at lære nye frameworks, der kan hjælpe dem med at forbedre deres færdigheder inden for mobiludvikling (native, cross-platform, hybrid) i den nærmeste fremtid.
Ifølge en af vores Proxify-udviklere, Akin Oztorun, er de tre vigtigste tekniske begreber, som enhver Vue.js-udvikler bør kende, følgende:
- Reaktivitet
- Sammensætning API
- Watchers & beregnede egenskaber
På mit spørgsmål om Vue.js anvendelighed, blev Akin sat i tanke.
"Det er faktisk et svært spørgsmål, for jeg tror, at jeg kan skrive alle mulige enkeltsidede applikationer med Vue. Men jeg tror, at problemet begynder med kompleksiteten. At håndtere kompleksitet kræver mere erfaring med Vue, tror jeg. Den eneste måde at skrive komplekse apps med Vue.js på er ved at fokusere på ren, modulær og genanvendelig kode."
Akin Oztorun
"Hvis du bare skal skrive en mvp eller en app til en lille startup, er dit anciennitetsniveau ligegyldigt; du skal bare skrive den via Vue, fordi det er hurtigst på den måde", siger han.
Og hvad med optimering: Hvordan vil du optimere dine Vue.js applikationer med hensyn til ydeevne og hastighed? Akin er hurtig på fødderne:
"Den bedste måde at optimere koden på er vel at skabe genanvendelige, sammensætelige fælles filer via Composition API. Det kan være nyttigt at følge SOLID-principperne for at gøre det. Gør alle funktioner så små som muligt, og hver funktion bør have ét formål. Og gør dem også genanvendelige, hvis det er muligt."
Akin Oztorun
Mateus Ávila Isidoro, en anden udvikler fra Proxify-netværket, uddybede dette yderligere.
"For det første er Vue.js hurtig, virkelig hurtig. Det kan ses i nylige benchmarks som disse. Denne hastighed kommer med en masse øjne, der kigger på projektet, en af de mest indflydelsesrige på GitHub".
Her er hvad Mateus havde at sige til potentielle Vue.js-udviklere:
"Jeg tror, at en god Vue-udvikler kan skabe magi uden at gøre en stor indsats. De kan bare tilføje CDN-filen og instantiere Vue-objektet, og voilá! Legacy-projekter kan opdateres på få sekunder. Så hvis du er en ung udvikler, der kan HTML, CSS og JS, kan du sagtens blive en god Vue-udvikler. Indlæringskurven er lille, det er en fornøjelse at arbejde med, og dokumentationen er enestående."
Mateus Ávila Isidoro
Han tilføjer også, at nye udviklere hurtigt vil opdage, at HTML er en fornøjelse at arbejde med. "Deres nuværende måde at lære det på er let og giver god mening. For backend-udviklere betyder det, at de nemt kan implementere kompleks logik", tilføjer han.
Med hensyn til applikationskompleksitet holdt Mateus sig ikke tilbage.
"Vue 2 arbejder med klasser, men den nye version kommer med et kompositions-API, der giver en stor forbedring af modulariteten, ligesom React gjorde det med hooks. Små projekter kan ikke køre med React. Selv store virksomheder med komplekse logikdata kan nemt anvende Vue i deres kerne, og frameworket kører problemfrit."
Mateus Ávila Isidoro
Ifølge ham er Vue.js meget venlig over for applikationer af enhver art. Han tilføjer, at enhver applikation kan køre Vue. "Folk siger, at Vue.js ikke har god support som React Native eller Flutter. Det er en misforståelse, fordi Vue understøttes af Ionic og Tauri (dette fantastiske værktøj, som jeg opdagede sidste søndag på Fireship Channel-du kan se det her)."
"Fantastiske frameworks som Nuxt og Quasar kan lave alle slags applikationer. Selvfølgelig bruger store virksomheder som Facebook og Google mange penge og kræfter på at bygge applikationer som React og Flutter, men Vue kommer tættere på i alle scenarier."
Mateus Ávila Isidoro
Mateus sluttede med at sige et par ord om skaberen af Vue.js.
"Og endelig har skaberen af Vue.js, Evan You, skabt et andet fantastisk værktøj kaldet Vite. Dette værktøj bruger ES Modules. De er meget hurtigere at køre i browsere, og alle de nye browsere kører Vite ret godt", sagde han.
"Med dette værktøj kan du oprette små og ultraoptimerede pakker, der kan distribueres til HTTP 2/0 og HTTP 3/0. Dette er ikke et Vue-spørgsmål, men slutresultatet af en Vue-applikation er sammenligneligt med en React-applikation. Vue kører hurtigere i browseren, skaber små pakker på byggetidspunktet og er en fornøjelse at arbejde med, med Typescript-understøttelse og >ES6 ud over det sædvanlige også."
Mateus Ávila Isidoro
Til sidst kom Endrit Veseli, senior softwareingeniør hos Proxify, også til orde. Han er dygtig inden for Angular, Vue.js, Node.js og et par andre frameworks.
På mit spørgsmål om de tre vigtigste tekniske begreber i Vue.js svarede han således på mit spørgsmål om de tre vigtigste tekniske begreber i Vue.js:
- Reaktivitet og cyklus til påvisning af ændringer
- Databinding og komponenttilstand
- Virtuel DOM
Ifølge Endrit er Vue.js velegnet til alle slags applikationer. Han uddybede det yderligere.
"Alle former for applikationer i dag, men det er med de gamle applikationer, at den er bedst, vil jeg sige. Vue er nemlig et af de få biblioteker, der kan integreres i en eksisterende webapplikation ved blot at inkludere Vue-kildescriptet i en eksisterende HTML ved hjælp af et almindeligt < script >-tag og begynde at arbejde med dets API uden meget overhead og uden at skulle have en kompleks npm- eller node_modules-installation."
Endrit Veseli
Han fortsætter: "Selv om der er et minimalt overhead, da al kompilering sker on the fly, når du bruger det på denne måde, er der også en fordel ved at bruge Vue til at modernisere nogle sektioner af siden uden at skulle omskrive den eksisterende web-app (fra bunden)."
Med hensyn til optimering af ydeevne og hastighed var Endrit åben og ligefrem.
Brug stateless komponenter, når det er muligt. Cache data (for det meste ved at bruge beregnede egenskaber, som Vue automatisk cacher og ikke beregner igen, hvis der ikke er sket nye ændringer).
Endrit Veseli
Brug altid key attributes, når du gennemløber DOM-data. På denne måde holder Vue styr på elementerne og handler kun på disse ændringer og ikke på hele den del af den renderede HTML. Lazy loading af komponenterne når det er muligt."
Vue.js interviewspørgsmål + forventede svar
Her er nogle tekniske spørgsmål til at vurdere de tekniske færdigheder hos en potentiel Vue.js-udvikler:
- Hvad er forskellen mellem slots og scoped slots?
Forventet svar: En slot er en måde at videregive oplysninger til en komponent på. Det er en pladsholder, som du kan udfylde med data fra din overordnede komponent, som f.eks. et array af objekter, der tilhører et objekt. De er nyttige, når du ønsker at kommunikere oplysninger mellem overordnede og underordnede komponenter.
Scoped slots ligner hinanden, men de er mere specifikke og kan genbruges. Du kan definere dem som almindelige HTML-elementer, og deres indhold vil blive videregivet som props, når de bruges i andre komponenter.
- Hvad er fordele og ulemper ved at arbejde med mixins?
Forventet svar:
Fordele: Mixins er gode til at skabe genanvendelig funktionalitet, som du kan dele mellem flere komponenter uden at duplikerer kode eller skal skrive alt fra bunden hver gang. De gør det også nemmere for udviklere, der ikke er bekendt med Vue, at komme hurtigt i gang ved at bruge præfabrikerede funktioner i stedet for at skrive deres egen kode, hver gang noget nyt skal implementeres (hvilket kan ende med at være vanskeligere for dem, end hvis de brugte præskrevne funktioner).
Ulemper: En ulempe er, at det nogle gange er svært for udviklere, der ikke er bekendt med Vue eller selve JavaScript, at forstå, hvad der foregår i mixins, hvis de aldrig har set dem før.
- Hvad udgør en komponent med en single file?
Forventet svar: En single-file komponent er en HTML-fil, der indeholder al den nødvendige JavaScript-kode, der er nødvendig for at den kan fungere.
- Definer den virtuelle DOM og dens anvendelse i forhold til Vue.js;
Forventet svar: Den virtuelle DOM er en repræsentation af HTML-dokumentet, som gemmes i hukommelsen. Den bruges til at fremskynde opdateringsprocessen af det faktiske dokument.
Vue.js bruger som standard den virtuelle DOM, hvilket betyder, at alle ændringer af dens egenskaber først foretages på klientsiden og derefter afspejles i den faktiske DOM, når de er klar. Dette sikrer, at der ikke er nogen forsinkelse mellem at foretage en ændring og se den på skærmen.
- Hvad er ifølge dig fordelene og ulemperne ved at bruge Vue.js?
Forventet svar: Der er flere fordele ved at bruge Vue.js: Det er nemt at lære, det er hurtigt i både udvikling og produktion, og det har en god dokumentation. Der er dog også nogle ulemper - det understøtter kun moderne browsere (IE9+), da der endnu ikke er nogen native mobilunderstøttelse (selvom der findes tredjepartsbiblioteker som NativeScript), og der mangler plugins.
- Hvad er attributbindinger i Vue?
Forventet svar: Attribute bindings i Vue er en måde at kommunikere mellem komponenter på, og de kan bruges til f.eks.at sende data fra en komponent til en anden.
- Beskriv, hvordan data flyder mellem komponenter i en Vue.
Forventet svar: Dataene flyder mellem komponenter i Vue gennem props. Props svarer til HTML-attributter, og de videregives fra forælder til barn. Hvis du f.eks. har en overordnet komponent, der har en liste over produkter, vil hvert produkt have sin egen underordnede komponent, der er ansvarlig for at vise produktets oplysninger. Forælderen vil videregive produktoplysningerne som props, så barnet ved, hvad det skal vise.
- Hvad er direktiver i Vue?
Forventet svar: Directives er en af kernekomponenterne i Vue.js. De giver dig mulighed for at udvide funktionaliteten af dine komponenter ved at tilføje brugerdefinerede HTML-attributter og adfærd.
- Er det muligt at kombinere lokale og globale stilarter?
Forventet svar: Det er muligt at kombinere lokale og globale stilarter ved at bruge style-objekter, som kan oprettes med v-bind:style på elementer eller med {} parenteser i din JavaScript-kode. Dette giver dig mulighed for at opretholde en korrekt adskillelse mellem stilarter uden at skulle bekymre dig om, at de overskriver hinanden.
- Hvorfor skulle du vælge Vue.js frem for andre front-end frameworks?
Forventet svar: Du vælger måske Vue frem for andre front-end frameworks, fordi det er nemt at lære og implementere, og fordi det er kraftfuldt nok til store applikationer med komplekse krav.
Hvorfor skal du hyre en Vue.js-udvikler?
Der er flere grunde til at hyre en professionel Vue.js-udvikler eller oprette et team af flere udviklere afhængigt af projektets størrelse og omfang.
Først og fremmest er Vue.js enkelt at bygge med, nemt at bruge og fejlfinde i. Dets enkelhed fører til bedre fejlsporing i forhold til andre webframeworks. Din webapplikation bliver mindre modtagelig over for fejl og andre "hick ups" i koden.
Som nogle af vores Proxify-udviklere sagde ovenfor, er Vue.js også meget fleksibelt og tilpasningsdygtigt. Det kan fungere med enhver eksisterende populær applikation og framework, uanset hvor langt udviklingscyklussen allerede er kommet.
Endelig giver Vue.js en enkel tilgang til det, der ellers ville være en kompleks udviklingsproces. Dygtige Vue.js-udviklere vil være i stand til at udnytte dette begreb til deres fordel for at bygge bedre apps.