Opprette en solid stillingsannonse til ansette en Symfony-utvikler er ikke en breezer. Det krever tid og kunnskap om tekniske detaljer og detaljer, og det er bare starten på hele ansettelsesprosessen, inkludert markedsføring av annonsen, leting etter tekniske eksperter på de rette stedene, nøye utvelgelse av kandidater og planlegging av intervjuer. Og hvis du gjør alt dette alene, blir det enda mer utfordrende.
Du må ta hensyn til alle tekniske faktorer før du starter rekrutteringen - faglig bakgrunn, kompetanse, utdanning, arbeidserfaring, intervjuspørsmål, tekniske testresultater og lignende. La oss begynne.
Om Symfony
Symfony representerer et anerkjent og stabilt PHP-rammeverk for webutvikling og samtidig et komplett sett med gjenbrukbare PHP-komponenter. Som rammeverk gjør det det raskere å opprette og vedlikeholde webapper, og som et sett med komponenter tilbyr det 50 gjenbrukbare, frittstående komponenter som reduserer kostnadene i det lange løp, og legger grunnlaget for PHP-apper av høy kvalitet.
Den beste måten utviklere bruker Symfony på, er som et ferdigutviklet fullstack-rammeverk for å bygge skalerbare webapper og nye rammeverk. Arkitekturen til Symfony er MVC (model-view-controller), som hjelper deg med å lage webapper raskt, på en velstrukturert, lagdelt og logisk måte. Med Symfony kan utviklere enkelt dele opp programvaren i mindre deler for enkel distribusjon og vedlikehold. Dette rammeverket er også populært fordi det forenkler kodingen, tilbyr en modulær struktur, brukervennlige funksjoner, smidig funksjonalitet og åpen kildekode.
Finne og intervjue en Symfony-utvikler
La oss se nærmere på rekrutteringspraktikaliteter og intervjuing av Symfony-utviklere med flere aspekter du må huske på.
Tips til rekrutterere og ansettelsesansvarlige
Søket etter en god Symfony-utvikler lykkes bare hvis du starter med en velkonstruert stillingsannonse. Stillingsannonsemalen skal være presist formulert, søkeren skal forstå nøyaktig hva som kreves for den aktuelle stillingen, og hele malen skal være så kortfattet som mulig. Hvis du fortsatt ikke har bestemt deg for hvilken annonsestruktur du skal bruke, kan du enkelt bruke og redigere eksisterende jobbmaler. Å markedsføre stillingsannonsen på jobbsøkingsplattformer er en ganske populær måte å finne og ansette Symfony-utviklere på, men du kan også finne en teknisk ekspert i din base fra før.
La oss se hva stillingsannonsen må dekke, dvs. ferdigheter og forutsetninger.
Sjekkliste for tekniske ferdigheter
En utmerket Symfony-utvikler vil ideelt sett ha omfattende kunnskap og erfaring med:
-
En Symfony-utvikler må kunne dette rammeverket utenat og kunne bygge apper effektivt og raskt. De må ha minst tre års erfaring med dette.
-
PHP - Det er mange PHP komponenter i Symfony, så å jobbe med PHP i minst fire år tidligere er en annen må-ha forutsetning.
-
Frontend-teknologier - Avansert kunnskap om frontend-teknologier, som JavaScript, HTML og CSS, er nødvendig for å kunne kommunisere problemfritt med andre frontend-utviklere.
-
TDD (testdrevet utvikling) - Bruk av TDD er avgjørende for å produsere utmerket, ren kode.
-
OOP (objektorientert programmering) - OOP gjør det enkelt å vedlikeholde og endre koden. Utvikleren kan opprette nye objekter over eksisterende med minimale endringer.
-
Git og versjonskontroll - Med Git og andre versjonskontroller kan utviklere øke sin generelle effektivitet, øke utviklingshastigheten og spore og administrere kode mer effektivt.
-
MySQL - Utvikleren må jobbe med MySQL for enklere databasesystemadministrasjon og mer effektiv datalagring.
Sjekkliste for foretrukne forutsetninger
-
En grad (bachelor) i informatikk
-
God kunnskap om Docker og Kubernetes containerisering
-
Erfaring med andre språk som er relevante for denne rollen; Java, Go, C#, og Python
-
Erfaring med React.js, men også andre rammeverk (Vue.js, Node.js, Angular)
-
Erfaring med andre PHP-rammeverk som Laravel og Slim
-
God kunnskap om skyplattformer som AWS (f.eks. Dynamo, EC2, S3, Lambda, ECS, IoT og Cognito)
-
Solid forståelse av NoSQL-databaser som MongoDB, Redis, Neo4J, Cosmos DB, med flere.
Vi har snakket med Ben Kachoud Hicham, en fullstack-utvikler hos Proxify, og forhørt oss mer om hva en Symfony-utvikler må kunne:
"En god Symfony-utvikler må være tilpasningsdyktig til endringer og ofte følge med på hva som er nytt i utviklerfellesskapet. De bør forstå Symfony-komponentene, med vekt på blant annet Security og Form. Symfony-utvikleren bør også ha god erfaring med designmønstre, OOP og SOLID-prinsipper. De må også beherske beste praksis for Symfony og fokusere på å lese den offisielle dokumentasjonen grundig."
Intervjuspørsmål og svar
Du kan bruke spørsmålene nedenfor til å intervjue Symfony-utvikleren og vurdere kunnskapen deres basert på disse forventede svarene.
1. Kan du forklare sammenhengen mellom Symfony og Laravel?
Eksempel på svar: Den primære forbindelsen mellom de to ligger i databaseinteraksjonen. Laravel bruker Eloquent (objekt-relasjonell mapper - ORM) som sitt uavhengige bibliotek, mens Symfony bruker Doctrine (et tredjepartsprosjekt) for databaseinteraksjon. Disse to har mange ting til felles, men Laravel bruker i utgangspunktet mange Symfony-komponenter.
2. Hva er Symfony Controller?
Eksempel på svar: En Symfony-kontroller representerer en klassemetode for forespørsler som tar imot og returnerer et Response-objekt. Kontrolleren er tilgjengelig og vises når den er tilordnet med URL-en på forhånd. Enkelt sagt er Symfony-kontrolleren en PHP-funksjon som henter HTTP-forespørselsinformasjon og gjør dem om til et HTTP-svar. Dette svaret kan variere og vises som XML-format, 404-feil, omdirigering eller HTML-side, blant andre.
3. Hva er Symfony Annotations?
Eksempel på svar: Vi bruker annotasjoner for kartlegging av informasjon (validering av doktrine og konfigurasjon). Vi kan gjøre dette med YAML, XML og PHP, og fordelen med annotasjoner er at det er enklere å definere i én fil. For bedre støtte for merknader finnes det også pakkene JMSSecurityExtraBundle og SensioFrameworkExtraBundle. Den sistnevnte bunten av disse to er ikke sterkt anbefalt som en del av den nyeste Symfony-versjonen, og hver annotasjon av denne bunten er et PHP innebygd attributt i symfony nå.
4. Er det noen krav til serveren for installasjon av Symfony? Hvis ja, hva er de?
Eksempel på svar: For Symfony-installasjon, sørg for at du har PHP 8.1 eller høyere, og husk at v.8.2 allerede er utgitt. Du må også installere Install Composer også. Du trenger også PHP-utvidelser (for eksempel Session, Ctype, PCRE, iconv, Tokenizer og SimpleXML. Alternativt kan du installere Symfony CLI som et annet alternativ, noe som gir deg en verktøyfylt binærfil for den lokale appen som kjører.
5. Hva er Symfony Bundles?
Eksempel på svar: Pakkene i Symfony er mapper og filer som er organisert i en bestemt struktur. Vi kan pakke pakken spesifikt til en app som AdminBundle eller BlogBundle. Bundles er plugins i Symfony:
- Ressurser/visninger/Ordbok
- Ressurser/offentlig/katalog
- Ressurser/konfig/katalog
- Katalog for avhengighetsinjeksjon
- Kontrollerkatalog
- Tester/Ordbok
Etter Symfony v 4.0 anbefales det at bundles utelukkende brukes til kodedeling og deling av funksjoner mellom flere apper.
6. Kan du forklare den nye pakkeopprettelsen i Symfony med alle trinnene?
Eksempel på svar: Vi kan opprette en ny pakke med følgende enkle trinn.
- For pakken må vi først opprette en ny katalog i Symfony-prosjektet, under /src-katalogen
- Deretter lager vi en ny PHP-klasse for pakken i den nye katalogen. Det må være en utvidelse fra denne nye klassen til Symfony\Component\HttpKernel\Bundle\Bundle-klassen.
- For det tredje er det på tide å registrere pakken i filen app/AppKernel.php.file.
- Deretter må pakkens ruting konfigureres i filen app/config/routing.yml.
- Hvis vi trenger noen kontrollerklasser for pakken nå, er dette det rette tidspunktet å opprette dem. Det samme gjelder for alle nødvendige malfiler også.
7. Hvilken katalog lagrer Symfony-logger?
Eksempel på svar: Vi kan finne alle Symfony-logger lagret i myproject/log/directory. Det finnes bare én fil per miljø og applikasjon. Standard katalogstruktur kan også tilpasses (overstyrer cache-katalogen, loggkatalogen, nettkatalogen og leverandørkatalogen)
8. Hva er Symfony-skjemaer?
Eksempel på svar: Symfony Forms hjelper oss utviklere med å lage og behandle HTML-skjemaer, og vi gjør dette ved å abstrahere repetitive ting. Med skjemafelthjelperne får vi verdifulle verktøy for å gjengi skjemainnhold fra render-all.
9. Hva er en Symfony-standardport, eller hvordan heter den?
Eksempel på svar: En standardport er en webserverport som et logisk endepunkt for tilkobling til et nettverk. Symfonys standardport er 8000. For å bruke den innebygde webserveren i PHP best mulig, må vi utføre server:start-kommandoen: $ php bin/console server:start, som vil få serveren til å starte på localhost:8000 i bakgrunnen til Symfony-appen.
10. Kan du utdype mer om Symfony Console-komponenten?
Eksempel på svar: Symfony Console-komponenten er et kraftig verktøy som hjelper utviklere med å lage kommandolinje-apper ved hjelp av det objektorienterte grensesnittet. Det finnes også "kommandoargumenter", input/output-hjelpere, parsing av opsjoner og interaktive dialoger. Symfony Console har som mål å gi oss et konsistent og stabilt grensesnitt for å opprette og kjøre kommandolinjeapper raskt og effektivt.
11. Hva er Symfony Serializer?
Eksempel på svar: Symfony Serializer er en komponent som brukes til å gi objekter et bestemt format (JSON, YAML, XML, m.fl.). Det samme gjelder i motsatt situasjon når vi må gjøre et format om til et objekt.
12. Kan du forklare hvordan du tømmer hurtigbufferen i Symfony?
Eksempel på svar: Den beste måten å tømme hurtigbufferen på er med kommandoen cache:pool:clear, og det dette gjør er å ta alle dataene i lagringskatalogen og slette dem. I Symfony er det inkludert tre standardklarere for dette formålet:
- cache.app_clearer
- cache.global_clearer
- cache.system_clearer
13. Hva kan du fortelle oss om hvordan du oppretter et tilpasset miljø beregnet for en Symfony-app?
Eksempel på svar: Dette er en mulig ting å gjøre, og det er også relativt enkelt. Først oppretter vi en ny fil i app/config/directory. Deretter legger vi til denne koden:
parametere:
env(SYMFONY_ENV): my_custom_environment
Når dette er gjort, kan vi få tilgang til det tilpassede miljøet, men før vi gjør det, er et siste trinn en annen kommando:
php app/console -env=my_custom_environment
14. Kan du utdype mer om OAuth2-autentisering, og er det mulig å implementere dette i Symfony?
Eksempel på svar: Det er mulig å implementere OAuth2 i Symfony. For dette finner vi biblioteket FrendsOfSymfony/OAuth2-Server-Bundle og bruker det til å legge til serverfunksjonaliteten OAuth2 i en Symfony-app.
15. Kan du utdype Cache-komponenten og cache-adaptere i Symfony?
Eksempel på svar: Cache-komponenten gir oss nyttige funksjoner for caching-behov, fra enkle til komplekse. Den implementerer Cache Contracts (for interoperabilitet) og PSR-6 (et grensesnitt for hurtigbufring). Cache-komponenten har enestående robusthet, ytelse og bruksklare adaptere som kan brukes til mange caching-backends. Med Cache-komponenten kan vi også enkelt aktivere tag-basert ugyldiggjøring. Men også, gjennom låsing og tidlig utløp, kan vi enkelt tillate beskyttelse mot cache-stampede.
Hvordan gjenkjenne og velge den beste Symfony utvikleren
De store Symfony-utviklerne vil ha flere års erfaring , og de brukte Symfony overveiende over noe annet i sitt arbeid.
Gode Symfony-utviklerkandidater presterer også eksepsjonelt godt på tekniske tester og alle andre intervjustadier. Svarene deres var omfattende og korrekte, og koden deres var lesbar og ren.
Ben også lagt til:
"En god Symfony-utvikler vil vite mer om dette rammeverket og svare på alle spørsmål de blir stilt. Selvfølgelig må de være mer enn bare avanserte, og tittelen "ekspert" er noe å fokusere mer på. De vil også vite alt om rammeverkets komponenter i detalj."
Mulige utfordringer ved ansettelse av en Symfony-utvikler
De mulige utfordringene ved å ansette en Symfony-utvikler er de vanlige utfordringene som kan forventes i enhver rekrutterings- og ansettelsesprosess.
-
Mangel på planlegging og struktur - Sørg for at rekrutteringen er organisert og følger et veikart for alle faser. Ha en godt sammensatt stillingsannonse, vær bevisst på hvordan du velger ut de beste utviklerne fra søkermassen, og bruk relevante intervjuspørsmål.
-
Budsjettbegrensninger - Sørg for at du setter av nok budsjett til hele prosessen, blant annet til rekrutterere, (ansettelses-)ledere og utviklere. Noen ganger må du kanskje til og med bevilge større summer til selve utvikleren, hvis de er etterspurt, har utsøkte ferdigheter, og hvis de også er ønsket av konkurrentene dine.
-
Mangel på tekniske eksperter - Hvis alt det ovennevnte skjer samtidig, vil du helt klart trenge ekstern hjelp til å ansette en Symfony-utvikler. Ideelt sett ville du ikke kaste bort tid, og du ville stole på rimelige tjenester, for eksempel Proxify, for å matche deg med passende utviklere på bare noen dager, og for å gå god for deres ekspertise også.
Riktig tidspunkt å bruke Symfony
Vurder å bruke Symfony hvis du trenger det:
-
For å lage store webapper - Symfony forenkler utviklernes arbeid og sparer tid og penger i det lange løp. Utviklere kan også teste mye raskere og mer effektivt ved hjelp av PHPUnit Independent Library. Siden Symfony bruker mindre minne og har innebygde funksjoner for å øke ytelsen, er det perfekt for optimalisering av en stor arbeidsflyt.
-
Å stole på et raskt og pålitelig rammeverk - Med hastigheten Symfony tilbyr, vil utvikleren fullføre jobben raskere enn forventet. Dessuten fungerer Symfony helt fint på forskjellige hostingløsninger på grunn av hastigheten. Det er et praktisk rammeverk med verktøy for enkle kodekorrigeringer og for å fikse eventuelle sikkerhetsproblemer.
-
Fleksibilitet og tilpasningsevne for ulike engasjementer - Symfony tilbyr god tilpasningsevne som er avgjørende for de som stadig endrer typer engasjementer. Symfony fungerer godt med de fleste webprogrammer, nettsteder, nettverk og CMS (Content Management Systems). Det finnes standardiserte verktøy som kan være nyttige og brukes i ulike utviklingssituasjoner (f.eks. rike biblioteker som hjelper utvikleren med å unngå repetitive oppgaver.
-
Korrekt dokumentasjon - Med Symfony er dokumentasjonen ryddig organisert, og utviklere kan lettere planlegge arbeidet sitt.
-
Det er godt å vite at det alltid finnes et bredt fellesskap av utviklere som jevnlig oppdaterer hverandre eller tilbyr ulike nyttige løsninger.
Forretningsfordeler ved å bruke Symfony
-
Sparer tid og penger - Med Symfony går det raskere å komme på markedet, og utviklingstiden forkortes betydelig takket være de mange nyttige funksjonene.
-
Fleksibilitet - Det er full konfigurasjonskontroll, kompatibilitet med databasesystemer og muligheten til å legge til ekstra funksjonalitet.
-
Symfony har detaljert dokumentasjon som gjør det enkelt å bruke det, særlig gjennom de praktiske eksemplene på hvordan man lager webapper. Det finnes også en nyttig verktøylinje som gjør det enklere for utviklere å feilsøke og få alle nødvendige retningslinjer vist tydelig. Det er også veldig enkelt å automatisere prosesser, og distribusjon kan også fullføres mye enklere.
-
Tilpasningsmuligheter - Noen bemerkelsesverdige tilpasningsfunksjoner i Symfony er:
- Mikro-rammeverk for utvikling av spesifikke funksjoner (utviklere kan ta dette fra hverandre og bruke det som trengs separat)
- Brikke for brikke for å bruke bestemte funksjoner som utvikleren krever for å lage en tilpasset app med selektive (men begrensede) funksjoner.
-
- Fullstack * er et perfekt alternativ for å lage et multifunksjonelt produkt.
-
Trouble-free testing - Testing har aldri vært enklere enn nå med PHP Unit Independent Library. Det bidrar til å stimulere HTTP-forespørsler, automatiserer funksjonstesting og tilbyr verdifulle verktøy for utviklere (for atferds-, enhets- og funksjonstesting).
-
Symfony gjør produktutviklingen sømløs og kundeorientert, og utviklere kan enkelt bruke alle verktøyene til å løse problemer med sikkerhet eller kodefeil.
-
Bred støtte fra samfunnet - Utviklere vil aldri gå tom for verktøy, metoder, informasjon, tips, løsninger eller ressurser som er tilgjengelige på nettet i det brede Symfony-samfunnet.
Ben la til sitt synspunkt på fordelene han verdsetter med Symfony:
"En av de mange fordelene ved å bruke Symfony er det store utviklermiljøet som kontinuerlig jobber med å forbedre rammeverket og dele nyttig informasjon. Dessuten, med dette rammeverket, kan utvikleren bruke funksjoner de trenger og trenger ikke å være avhengig av å bruke dem alle samtidig. I tillegg er OOP en annen stor fordel for arbeidet generelt. Bedrifter drar stor nytte av at utviklerne bruker Symfony - det er utrolig hvordan komplette engasjementer og mikrotjenester enkelt kan ferdigstilles raskt."