Oprettelse af en solid jobannonce til ansættelse af en Symfony-udvikler er ikke en breezer. Det kræver tid og viden om teknikaliteter og detaljer, og det er kun starten på hele ansættelsesprocessen, herunder promovering af annoncen, søgning efter tekniske eksperter de rigtige steder, omhyggelig udvælgelse af kandidater og planlægning af samtaler. Og hvis du gør alt dette alene, bliver det endnu mere udfordrende.
Du skal overveje alle tekniske faktorer, før du starter rekrutteringen - professionel baggrund, ekspertise, uddannelse, arbejdserfaring, interviewspørgsmål, tekniske testresultater og lignende. Lad os komme i gang.
Om Symfony
Symfony repræsenterer en anerkendt og stabil PHP-ramme til webudvikling og samtidig også et komplet sæt genanvendelige PHP-komponenter. Som ramme fremskynder den oprettelsen og vedligeholdelsen af webapps, og som et sæt komponenter tilbyder den 50 genanvendelige, selvstændige komponenter, der reducerer omkostningerne i det lange løb og danner grundlag for PHP-apps af høj kvalitet.
Den bedste måde, udviklere bruger Symfony på, er som en klar-til-brug fullstack-ramme til opbygning af skalerbare webapps og nye rammer. Arkitekturen i Symfony er MVC (model-view-controller), som hjælper med at skabe webapps hurtigt, på en velstruktureret, lagdelt og logisk måde. Med Symfony kan udviklere nemt opdele software i mindre dele for at gøre det nemmere at implementere og vedligeholde. Denne ramme er også populær, fordi den gør kodning enklere, tilbyder en modulær struktur, brugervenlige funktioner, smidig funktionalitet og open source-kode.
At finde og interviewe en Symfony-udvikler
Lad os gennemgå de praktiske forhold omkring rekruttering og interview af Symfony-udviklere med flere aspekter, man skal huske på.
Tips til rekrutteringsansvarlige og ansættende ledere
Søgningen efter en god Symfony-udvikler er kun vellykket, hvis du starter med en velkonstrueret jobannonce. Jobannonceskabelonen skal være præcist formuleret, ansøgeren skal forstå præcist, hvad der kræves for den pågældende rolle, og hele skabelonen skal være så kortfattet som muligt. Hvis du stadig er i tvivl om, hvilken annoncestruktur du skal bruge, kan du nemt bruge og redigere eksisterende jobskabeloner. At promovere jobannoncen på jobsøgningsplatforme er en ret populær måde at finde og ansætte Symfony-udviklere på, men du kan også finde en teknisk ekspert i din base fra før.
Lad os se, hvad jobannoncen skal dække, dvs. færdigheder og forudsætninger.
Tjekliste for tekniske færdigheder
En fremragende Symfony-udvikler vil ideelt set have omfattende viden om og erfaring med:
-
Symfony - En Symfony-udvikler skal vide, hvordan man arbejder med denne ramme udenad og bygger apps effektivt og hurtigt. De skal have mindst tre års erfaring med dette.
-
PHP - Der er mange PHP komponenter i Symfony, så det er også et must at have arbejdet med PHP i mindst fire år.
-
Frontend-teknologier - Et avanceret kendskab til frontend-teknologier, såsom JavaScript, HTML og CSS, er påkrævet for at kunne kommunikere problemfrit med andre frontend-udviklere.
-
TDD (Test-Driven Development) - Det er vigtigt at bruge TDD for at producere fremragende, ren kode.
-
OOP (Object Oriented Programming) - OOP gør det nemt at vedligeholde og ændre koden. Udvikleren kan oprette nye objekter over eksisterende med minimale ændringer.
-
Git og versionskontrol - Med Git og andre versionskontroller kan udviklere øge deres samlede effektivitet, fremskynde udviklingen og spore og styre koden mere effektivt.
-
MySQL - Udvikleren skal arbejde med MySQL for at gøre det lettere at administrere databasesystemet og få en mere effektiv datalagring.
Tjekliste over foretrukne forudsætninger
-
En grad (bachelor) i datalogi
-
Godt kendskab til Docker og Kubernetes containerisering
-
Erfaring med andre sprog, der er relevante for denne rolle; Java, Go, C# og Python
-
Erfaring med React.js, men også andre frameworks (Vue.js, Node.js, Angular)
-
Erfaring med andre PHP-frameworks som Laravel og Slim
-
Godt kendskab til cloud-platforme som AWS (f.eks. Dynamo, EC2, S3, Lambda, ECS, IoT og Cognito)
-
Solid forståelse af NoSQL-databaser såsom MongoDB, Redis, Neo4J, Cosmos DB m.fl.
Vi har talt med Ben Kachoud Hicham, Fullstack Developer hos Proxify, og spurgt mere ind til, hvad en Symfony-udvikler skal vide:
"En god Symfony-udvikler skal kunne tilpasse sig ændringer og ofte følge med i, hvad der er nyt i udviklerfællesskabet. De skal forstå Symfony-komponenterne og lægge vægt på blandt andet sikkerhed og formular. Symfony-udvikleren skal også have god erfaring med designmønstre, OOP og SOLID-principper. De skal også beherske Symfonys bedste praksis og fokusere på at læse den officielle dokumentation grundigt."
Interviewspørgsmål og svar
Du kan bruge nedenstående spørgsmål til at interviewe Symfony-udvikleren og vurdere deres viden ud fra disse forventede svar.
1. Kan du forklare sammenhængen mellem Symfony og Laravel?
Eksempel på svar: Den primære forbindelse mellem de to er i databaseinteraktionen. Laravel bruger Eloquent (object-relational mapper - ORM) som sit uafhængige bibliotek, mens Symfony bruger Doctrine (et tredjepartsprojekt) til databaseinteraktion. Disse to har mange ting til fælles, men Laravel bruger oprindeligt mange Symfony-komponenter.
2. Hvad er Symfony Controller?
Eksempel på svar: En Symfony-controller repræsenterer en klassemetode til at acceptere og returnere et Response-objekt. Controlleren er tilgængelig og kan ses, når den kortlægges med URL'en på forhånd. Kort sagt er Symfony-controlleren en PHP-funktion, der henter HTTP-anmodningsoplysninger og omdanner dem til et HTTP-svar. Dette svar kan variere og vises som XML-format, 404-fejl, omdirigering eller HTML-side, blandt andre.
3. Hvad er Symfony-annotationer?
Eksempel på svar: Vi bruger annotationer til kortlægning af information (validering af doktrin og konfiguration). Vi kan gøre dette med YAML, XML og PHP, og fordelen ved annotationer er, at de er nemmere at definere i én fil. For bedre understøttelse af annotationer er der også bundterne JMSSecurityExtraBundle og SensioFrameworkExtraBundle. Den sidstnævnte pakke af disse to anbefales ikke som en del af den seneste Symfony-version, og hver annotation i denne pakke er en indbygget PHP-attribut i Symfony nu.
4. Er der serverkrav til Symfony-installationen? Hvis ja, hvad er de så?
Eksempel på svar: Ved installation af Symfony skal du sikre dig, at du har PHP 8.1 eller højere, og husk, at v.8.2 allerede er udgivet. Du skal også installere Install Composer. Du skal også bruge PHP-udvidelser (for eksempel Session, Ctype, PCRE, iconv, Tokenizer og SimpleXML. Alternativt kan du installere Symfony CLI som en anden mulighed, hvilket giver dig en værktøjsfyldt binær fil til den lokale app, der kører.
5. Hvad er Symfony Bundles?
Eksempel på svar: Bundterne i Symfony er mapper og filer, der er organiseret i en bestemt struktur. Vi kan pakke pakken specifikt til en app som AdminBundle eller BlogBundle. Bundles er plugins i Symfony:
- Ressourcer/visninger/Mappe
- Ressourcer/offentlig/fortegnelse
- Ressourcer/konfig/mappe
- Katalog over afhængighedsinjektion
- Controller-katalog
- Test/Directory
Efter Symfony v 4.0 anbefales det, at bundles udelukkende bruges til kodedeling og deling af funktioner mellem flere apps.
6. Kan du forklare oprettelsen af et nyt bundt i Symfony med alle dets trin?
Eksempel på svar: Vi kan oprette et nyt bundt med følgende enkle trin.
- Til bundtet skal vi først oprette en ny mappe i Symfony-projektet under /src directory.
- I den nye mappe laver vi så en ny PHP-klasse til bundtet. Der skal være en udvidelse fra denne nye klasse til Symfony\Component\HttpKernel\Bundle\Bundle-klassen.
- For det tredje er det tid til bundtregistrering i filen app/AppKernel.php.file.
- Dernæst skal bundtets routing konfigureres i filen app/config/routing.yml.
- Hvis vi har brug for nogle controller-klasser til bundtet nu, er dette det rigtige tidspunkt at oprette dem. Det samme gælder for alle nødvendige skabelonfiler.
7. Hvilken mappe gemmer Symfony-logfiler?
Eksempel på svar: Vi kan finde alle Symfony-logs gemt i myproject/log/directory. Der er kun én fil pr. miljø og applikation. Standardmappestrukturen kan også tilpasses (tilsidesættelse af cachemappen, logmappen, webmappen og leverandørmappen)
8. Hvad er Symfony Forms?
Eksempel på svar: Symfony Forms hjælper os udviklere med at lave og behandle HTML-formularer, og det gør vi ved at abstrahere fra gentagne ting. Med formularfelthjælperne får vi værdifulde værktøjer til at gengive formularindhold fra render-all.
9. Hvad er en Symfony-standardport, eller hvordan hedder den?
Eksempel på svar: En standardport er en webserverport som et logisk slutpunkt for forbindelsen med et netværk. Symfonys standardport er 8000. For at bruge den indbyggede PHP-webserver bedst muligt skal vi udføre server:start-kommandoen: $ php bin/console server:start, som får serveren til at starte på localhost:8000 i baggrunden af Symfony-appen.
10. Kan du uddybe mere om Symfony Console-komponenten?
Eksempel på svar: Symfony Console-komponenten er et kraftfuldt værktøj, der hjælper udviklere med at lave kommandolinje-apps med sin objektorienterede grænseflade. Der er også 'kommandoargumenter', input/output-hjælpere, optionsparsing og interaktive dialoger. Symfony Console har til formål at give os en konsekvent og stabil grænseflade til at oprette og køre kommandolinje-apps hurtigt og effektivt.
11. Hvad er Symfony Serializer?
Eksempel på svar: Symfony Serializer er en komponent, der bruges til at give objekter et bestemt format (JSON, YAML, XML, m.fl.). Det samme gælder for den modsatte situation, når vi skal gøre et format til et objekt.
12. Kan du forklare, hvordan du rydder cachen i Symfony?
Eksempel på svar: Den bedste måde at rydde cachen på er med kommandoen cache:pool:clear, og det, den gør, er at tage alle data i lagermappen og slette dem. I Symfony er der inkluderet tre standard-clearers til dette formål:
- cache.app_clearer
- cache.global_clearer
- cache.system_clearer
13. Hvad kan du fortælle os om at skabe et brugerdefineret miljø til en Symfony-app?
Eksempel på svar: Dette er en mulig ting at gøre, og det er også relativt enkelt. Først opretter vi en ny fil i app/config/directory. Derefter tilføjer vi denne kode:
parametre:
env(SYMFONY_ENV): my_custom_environment
Når dette er gjort, kan vi få adgang til det brugerdefinerede miljø, men før vi gør det, er det sidste skridt en anden kommando:
php app/console -env=mit_tilpassede_miljø
14. Kan du uddybe OAuth2-godkendelsen, og er det muligt at implementere den i Symfony?
Eksempel på svar: Det er muligt at implementere OAuth2 i Symfony. Til dette finder vi biblioteket FrendsOfSymfony/OAuth2-Server-Bundle og bruger det til at tilføje serverfunktionaliteten OAuth2 til en Symfony-app.
15. Kan du uddybe Cache-komponenten og cache-adaptere i Symfony?
Eksempel på svar: Cache-komponenten giver os nyttige funktioner til caching-behov, fra enkle til komplekse. Den implementerer Cache Contracts (for interoperabilitet) og PSR-6 (en caching-grænseflade). Cache-komponenten har enestående modstandsdygtighed, ydeevne og brugsklare adaptere, der kan anvendes til mange caching-backends. Med Cache-komponenten kan vi også nemt aktivere tag-baseret ugyldiggørelse. Men gennem låsning og tidlig udløb kan vi også nemt tillade beskyttelse mod cache-stampede.
At genkende og vælge den bedste Symfony-udvikler
De store Symfony-udviklere vil have flere års erfaring, og de brugte overvejende Symfony frem for noget andet i deres arbejde.
Gode Symfony-udviklerkandidater klarer sig også usædvanligt godt i tekniske tests og i alle andre interviewfaser. Deres svar var omfattende og korrekte, og deres kode var læsbar og ren.
Ben er også tilføjet:
"En god Symfony-udvikler vil vide mere om dette framework og besvare alle de spørgsmål, de bliver stillet. Selvfølgelig skal de være mere end bare avancerede, og titlen "ekspert" er noget, der skal fokuseres mere på. De vil også vide alt om rammens komponenter i detaljer."
Mulige udfordringer under ansættelsen af en Symfony-udvikler
De mulige udfordringer i forbindelse med ansættelse af en Symfony-udvikler er de almindelige udfordringer, der kan forventes under enhver rekrutterings- og ansættelsesproces.
-
Mangel på planlægning og struktur - Gør rekrutteringen organiseret, og følg en køreplan for alle faser. Hav en veltilrettelagt jobannonce, find ud af, hvordan du udvælger de bedste udviklere fra ansøgerfeltet, og brug relevante interviewspørgsmål.
-
Budgetbegrænsninger - Sørg for at afsætte nok budget til hele processen; til rekrutteringsmedarbejdere, (ansættelses)ledere og udviklere og meget mere. Nogle gange kan du endda være nødt til at afsætte større beløb til selve udvikleren, hvis de er efterspurgte, har udsøgte færdigheder, og hvis de også er efterspurgte af dine konkurrenter.
-
Mangel på tekniske eksperter - Hvis alt det ovenstående sker på én gang, har du helt klart brug for ekstern hjælp til at ansætte en Symfony-udvikler. Ideelt set ville du ikke spilde tid, og du ville stole på overkommelige tjenester, såsom Proxify, der matcher dig med passende udviklere på få dage, og som også står inde for deres ekspertise.
Det rigtige tidspunkt at bruge Symfony
Overvej at bruge Symfony, hvis du har brug for det:
-
For at skabe store webapps - Symfony forenkler udviklernes arbejde og sparer tid og penge i det lange løb. Udviklere kan også teste meget hurtigere og mere effektivt ved hjælp af PHPUnit Independent Library. Da Symfony bruger mindre hukommelse og har indbyggede funktioner til at fremskynde ydeevnen, er den perfekt til at optimere en stor arbejdsgang.
-
At stole på en hurtig og pålidelig ramme - Med den hastighed, Symfony tilbyder, vil udvikleren afslutte arbejdet hurtigere end forventet. Desuden fungerer Symfony helt fint på forskellige hostingløsninger på grund af sin hastighed. Det er en praktisk ramme med værktøjer til nemme kodekorrektioner og løsning af eventuelle sikkerhedsproblemer.
-
Fleksibilitet og tilpasningsevne til forskellige opgaver - Symfony tilbyder god tilpasningsevne, som er afgørende for dem, der konstant ændrer typer af opgaver. Symfony fungerer godt sammen med de fleste webprogrammer, websteder, netværk og CMS'er (Content Management Systems). Der findes standardiserede værktøjer, som kan være nyttige og anvendes i forskellige udviklingssituationer (f.eks. fyldige biblioteker, der hjælper udvikleren med at undgå gentagne opgaver).
-
Passende dokumentation - Med Symfony er dokumentationen velorganiseret, og udviklerne kan lettere planlægge deres arbejde.
-
At være en del af et hjælpsomt og omfattende fællesskab - Det er godt at vide, at der altid er et bredt fællesskab af udviklere, som regelmæssigt opdaterer hinanden eller tilbyder forskellige nyttige løsninger.
Forretningsfordele ved at bruge Symfony
-
Besparelse af tid og penge - Time-to-market fremskyndes med Symfony, og udviklingstiden forkortes betydeligt gennem de mange nyttige funktioner.
-
Fleksibilitet - Der er fuld konfigurationskontrol, kompatibilitet med databasesystemer og mulighed for at tilføje ekstra funktioner.
-
Symfony har detaljeret dokumentation, der gør det nemt at bruge det, især gennem de praktiske eksempler på oprettelse af webapps. Der er også en nyttig værktøjslinje, som gør det lettere for udviklere at fejlfinde og få alle nødvendige retningslinjer vist tydeligt. Det er også meget nemt at automatisere processer, og udrulningen kan også gennemføres meget nemmere.
-
Tilpasningsmuligheder - Nogle bemærkelsesværdige tilpasningsfunktioner i Symfony er:
- Mikroramme til udvikling af specifikke funktioner (udviklere kan skille dette ad og bruge det, der er nødvendigt, separat)
Brick by brick til brug af særlige funktioner, som udvikleren har brug for til at lave en brugerdefineret app med udvalgte (men begrænsede) funktioner.
- Fullstack er en perfekt mulighed for at lave et multifunktionelt produkt.
-
Problemfri testning - Testning har aldrig været nemmere end nu med PHP Unit Independent Library. Det hjælper med at stimulere HTTP-anmodninger, automatiserer funktionstest og tilbyder værdifulde værktøjer til udviklere (til adfærds-, enheds- og funktionstest).
-
Total bekvemmelighed - Symfony gør produktudvikling problemfri og kundecentreret, og udviklere kan nemt bruge alle værktøjer til at løse problemer med sikkerhed eller kodefejl.
-
Bred samfundsstøtte - Udviklere vil aldrig mangle værktøjer, metoder, information, tips, løsninger eller ressourcer, der er tilgængelige online i de brede Symfony-samfund.
-
Ben tilføjede sit synspunkt om de fordele, han værdsætter ved Symfony:
"En af de mange fordele ved at bruge Symfony er det store udviklerfællesskab, der løbende arbejder på at forbedre dette framework og dele nyttige oplysninger. Desuden kan udviklerne med denne ramme bruge de funktioner, de har brug for, og behøver ikke at være afhængige af at bruge dem alle på én gang. Desuden er OOP en anden stor fordel for arbejdet generelt. Virksomheder har stor gavn af, at udviklerne bruger Symfony - det er utroligt, hvordan fulde engagementer og mikrotjenester nemt kan færdiggøres hurtigt."