Skapa en solid jobbannons till anställa en Symfony-utvecklare är inte en breezer. Det kräver tid och kunskap om teknikaliteter och detaljer, och det är bara början på hela anställningsprocessen, inklusive att marknadsföra annonsen, leta efter tekniska experter på rätt ställen, noggrant genomföra ett kandidaturval och schemalägga intervjuer. Och om du gör allt detta ensam blir det ännu mer utmanande.
Du måste ta hänsyn till alla tekniska faktorer innan du påbörjar rekryteringen - yrkesbakgrund, expertis, utbildning, arbetslivserfarenhet, intervjufrågor, tekniska testresultat och liknande. Låt oss börja.
Om Symfony
Symfony representerar ett erkänt och stabilt PHP-ramverk för webbutveckling och samtidigt också en komplett uppsättning återanvändbara PHP-komponenter. Som ramverk påskyndar det skapandet av webbappar och appunderhåll, och som en uppsättning komponenter erbjuder det 50 återanvändbara, fristående komponenter som minskar kostnaderna på lång sikt och lägger grunden för PHP-appar av hög kvalitet.
Det bästa sättet för utvecklare att använda Symfony är som ett färdigt att använda fullstack-ramverk för att bygga skalbara webbappar och nya ramverk. Arkitekturen i Symfony är MVC (model-view-controller), vilket hjälper till att skapa webbappar snabbt, på ett välstrukturerat, skiktat och logiskt sätt. Med Symfony kan utvecklare enkelt dela upp programvaran i mindre delar för att underlätta driftsättning och underhåll. Detta ramverk är också populärt eftersom det gör kodningen enklare, erbjuder en modulär struktur, lättanvända funktioner, smidig funktionalitet och öppen källkod.
Hitta och intervjua en Symfony-utvecklare
Låt oss bryta ner rekryteringspraktiken och intervjua Symfony-utvecklare med flera aspekter att tänka på.
Tips för rekryterare och anställningschefer
Sökandet efter en bra Symfony-utvecklare är framgångsrikt endast om du börjar med en välkonstruerad jobbannons. Mallen för jobbannonsen ska ha exakta formuleringar, den sökande ska förstå exakt vad som krävs för den rollen och hela mallen ska vara så kortfattad som möjligt. Om du fortfarande inte vet vilken annonsstruktur du ska använda kan du enkelt använda och redigera befintliga jobbmallar. Att marknadsföra jobbannonsen på jobbsökningsplattformar är ett ganska populärt sätt att hitta och anställa Symfony-utvecklare, men du kan också hitta en teknisk expert i din bas från tidigare.
Låt oss se vad jobbannonsen behöver täcka, dvs. färdigheter och förutsättningar.
Checklista för tekniska färdigheter
En utmärkt Symfony-utvecklare skulle helst ha omfattande kunskap och erfarenhet av:
-
Symfony - En Symfony-utvecklare måste kunna arbeta med detta ramverk utantill och bygga appar effektivt och snabbt. De måste ha minst tre års erfarenhet av detta.
-
PHP - Det finns många PHP komponenter i Symfony, så att arbeta med PHP i minst fyra år tidigare är ett annat måste.
-
Frontend-tekniker - Avancerade kunskaper i frontend-tekniker, såsom JavaScript, HTML och CSS, krävs för att kunna kommunicera smidigt med andra frontend-utvecklare.
-
TDD (Testdriven utveckling) - Att använda TDD är avgörande för att producera utmärkt, ren kod.
-
OOP (Object Oriented Programming) - OOP gör det enkelt att underhålla och ändra koden. Utvecklaren kan skapa nya objekt över befintliga med minimala ändringar.
-
Git och versionshantering - Med Git och andra versionshanteringssystem kan utvecklare öka sin övergripande effektivitet, påskynda utvecklingen och spåra och hantera kod på ett mer effektivt sätt.
-
MySQL - Utvecklaren behöver arbeta med MySQL för enklare hantering av databassystem och effektivare datalagring.
Checklista för önskade förutsättningar
-
En examen (Bachelor) i datavetenskap
-
God kunskap om containerisering med Docker och Kubernetes
-
Erfarenhet av andra språk som är relevanta för denna roll; Java, Go, C# och Python
-
Erfarenhet av React.js, men även andra ramverk (Vue.js, Node.js, Angular)
-
Erfarenhet av andra PHP-ramverk som Laravel och Slim
-
God kunskap om molnplattformar som AWS (t.ex. Dynamo, EC2, S3, Lambda, ECS, IoT och Cognito)
-
Gedigen förståelse för NoSQL-databaser som MongoDB, Redis, Neo4J, Cosmos DB, med mera.
Vi pratade med Ben Kachoud Hicham, en Fullstack Developer på Proxify, och frågade mer om vad en Symfony-utvecklare måste veta:
"En bra Symfony-utvecklare måste vara anpassningsbar till förändringar och ofta följa vad som är nytt i utvecklargemenskapen. De bör förstå Symfony-komponenterna, med betoning på bland annat Security och Form. Symfony-utvecklaren bör också ha god erfarenhet av designmönster, OOP och SOLID-principer. De måste också behärska de bästa metoderna för Symfony och fokusera på att läsa den officiella dokumentationen noggrant."
Intervjufrågor och svar
Du kan använda frågorna nedan för att intervjua Symfony-utvecklaren och bedöma deras kunskaper baserat på dessa förväntade svar.
1. Kan du förklara sambandet mellan Symfony och Laravel?
Exempelsvar: Den primära kopplingen mellan de två är i databasinteraktionen. Laravel använder Eloquent (object-relational mapper - ORM) som sitt oberoende bibliotek, medan Symfony använder Doctrine (ett tredjepartsprojekt) för databasinteraktion. Dessa två har många saker gemensamt, men Laravel använder initialt många Symfony-komponenter.
2. Vad är Symfony Controller?
Exempel på svar: En Symfony-kontroller representerar en klassmetod för förfrågningar som accepterar och returnerar ett Response-objekt. Styrenheten är tillgänglig och visas när den mappas med URL:en i förväg. Enkelt uttryckt är Symfony controller en PHP-funktion som hämtar information från HTTP-förfrågningar och omvandlar dem till ett HTTP-svar. Detta svar kan variera och visas som XML-format, 404-fel, omdirigering eller HTML-sida, bland andra.
3. Vad är Symfony-annoteringar?
Exempel på svar: Vi använder anteckningar för informationskartläggning (validering av doktrin och konfiguration). Vi kan göra detta med YAML, XML och PHP, och fördelen med annotationer är att det är lättare att definiera i en fil. För bättre stöd för anteckningar finns även paketen JMSSecurityExtraBundle och SensioFrameworkExtraBundle. Det senare paketet av dessa två rekommenderas inte starkt som en del av den senaste Symfony-versionen och varje annotering av detta paket är ett inbyggt PHP-attribut i symfony nu.
4. Finns det serverkrav för installation av Symfony? Om ja, vilka är de?
Exempelsvar: För Symfony-installation, se till att du har PHP 8.1 eller högre, och kom ihåg att v.8.2 redan är släppt. Du måste också installera Install Composer också. Du kommer också att behöva PHP-tillägg (till exempel Session, Ctype, PCRE, iconv, Tokenizer och SimpleXML. Alternativt kan du installera Symfony CLI som ett annat alternativ, vilket ger dig en verktygsfylld binär för den lokala appen som körs.
5. Vad är Symfony Bundles?
Exempel på svar: Bundles i Symfony är mappar och filer som är organiserade i en specifik struktur. Vi kan paketera paketet specifikt till en app som AdminBundle eller BlogBundle. Bundles är insticksprogrammen i Symfony:
- Resurser/visningar/förteckning
- Resurser/offentlig/förteckning
- Resurser/konfig/Directory
- Beroendeinjektion Katalog
- Katalog för styrenhet
- Tester/Directory
Efter Symfony v 4.0 rekommenderas att bundles används uteslutande för koddelning och delning av funktioner mellan fler appar.
6. Kan du förklara skapandet av en ny bunt i Symfony med alla dess steg?
Exempel på svar: Vi kan skapa en ny bunt med följande enkla steg.
- För paketet måste vi först skapa en ny katalog, i Symfony-projektet, under /src-katalogen
- I den nya katalogen skapar vi sedan en ny PHP-klass för paketet. Det måste finnas en förlängning från denna nya klass till Symfony\Component\HttpKernel\Bundle\Bundle-klassen.
- För det tredje är det dags för paketregistrering i filen app/AppKernel.php.file
- Därefter måste paketets routing konfigureras i filen app/config/routing.yml
- Om vi behöver några kontrollerklasser för paketet nu, är det rätt tid att skapa dem. Detsamma gäller för alla nödvändiga mallfiler också.
7. I vilken katalog lagras Symfony-loggar?
Exempelsvar: Vi kan hitta alla Symfony-loggar lagrade i myproject/log/directory. Per miljö och applikation finns det bara en fil. Standardkatalogstrukturen kan också anpassas (åsidosättande av cachekatalogen, loggkatalogen, webbkatalogen och leverantörskatalogen)
8. Vad är Symfony-formulär?
Exempelsvar: Symfony Forms hjälper oss utvecklare att skapa och bearbeta HTML-formulär, och vi gör detta genom att abstrahera repetitiva saker. Med formulärfältshjälparna får vi värdefulla verktyg för att rendera formulärinnehåll från render-all.
9. Vad är en Symfony-standardport, eller hur heter den?
Exempelsvar: En standardport är en webbserverport som är en logisk slutpunkt för anslutning till ett nätverk. Symfonys standardport är 8000. För att på bästa sätt använda den inbyggda webbservern i PHP måste vi utföra kommandot server:start: $ php bin/console server:start, vilket gör att servern startar på localhost:8000 i Symfony-appens bakgrund.
10. Kan du utveckla mer om Symfony Console-komponenten?
Exempelsvar: Symfony Console-komponenten är ett kraftfullt verktyg som hjälper utvecklare att skapa kommandoradsappar med sitt objektorienterade gränssnitt. Det finns också "kommandoparametrar", inmatnings- och utmatningshjälpmedel, parsning av alternativ och interaktiva dialogrutor. Symfony Console syftar till att ge oss ett konsekvent och stabilt gränssnitt för att skapa och köra kommandoradsappar snabbt och effektivt.
11. Vad är Symfony Serializer?
Exempel på svar: Symfony Serializer är en komponent som används för att ge ett specifikt format till objekt (JSON, YAML, XML, bland andra). Detsamma gäller för den motsatta situationen när vi måste göra om ett format till ett objekt.
12. Kan du förklara hur du skulle rensa cacheminnet i Symfony?
Exempelsvar: Det bästa sättet att rensa cacheminnet är med kommandot cache:pool:clear, och vad detta gör är att ta all data i lagringskatalogen och radera den. I Symfony finns det tre standardrensare för detta ändamål:
- cache.app_klarare
- cache.global_klarare
- cache.system_klarare
13. Vad kan du berätta för oss om hur man skapar en anpassad miljö avsedd för en Symfony-app?
Exempelsvar: Det här är en möjlig sak att göra, och det är relativt enkelt också. Först skapar vi en ny fil i app/config/directory. Till detta lägger vi sedan till den här koden:
parametrar:
env(SYMFONY_ENV): my_custom_environment
När detta är gjort kan vi få tillgång till den anpassade miljön, men innan vi gör det är ett sista steg ett annat kommando:
php app/console -env=min_custom_environment
14. Kan du utveckla mer om OAuth2-autentiseringen och är det möjligt att implementera detta i Symfony?
Exempel på svar: Det är möjligt att implementera OAuth2 i Symfony. För detta hittar vi biblioteket FrendsOfSymfony/OAuth2-Server-Bundle och använder det för att lägga till serverfunktionen OAuth2 i en Symfony-app.
15. Kan du utveckla Cache-komponenten och cache-adaptrarna i Symfony?
Exempelsvar: Cache-komponenten ger oss användbara funktioner för cachelagringsbehov, från enkla till komplexa. Den implementerar Cache Contracts (för interoperabilitet) och PSR-6 (ett cachelagringsgränssnitt). Cache-komponenten har enastående motståndskraft, prestanda och färdiga adaptrar som kan användas för många cachelagringsbackends. Med Cache-komponenten kan vi också enkelt aktivera taggbaserad ogiltigförklaring. Men också, genom låsning och tidig utgång, kan vi enkelt tillåta cache stampede-skydd.
Att känna igen och välja den bästa Symfony utvecklaren
- De stora Symfony utvecklarna kommer att ha fler års erfarenhet *, och de använde Symfony övervägande över allt annat i sitt arbete.
Bra kandidater till Symfony-utvecklare presterar också exceptionellt bra på tekniska tester och alla andra intervjufaser. Deras svar var utförliga och korrekta, och deras kod var läsbar och ren.
Ben har också lagts till:
"En bra Symfony-utvecklare vet mer om ramverket och kan svara på alla frågor som ställs till honom eller henne. Naturligtvis måste de vara mer än bara avancerade, och titeln "expert" är något att fokusera mer på. Dessutom kommer de att känna till alla ramverkets komponenter i detalj."
Möjliga utmaningar vid anställning av en Symfony-utvecklare
De möjliga utmaningarna med att anställa en Symfony-utvecklare är de vanliga utmaningarna som kan förväntas under alla rekryterings- och anställningsprocesser.
-
Brist på planering och struktur - Gör rekryteringen organiserad och följ en färdplan för alla steg. Ha en väl sammanställd platsannons, känn till hur du väljer ut de bästa utvecklarna bland de sökande och använd relevanta intervjufrågor.
-
Budgetbegränsningar - Se till att du avsätter tillräckligt med budget för hela processen; för rekryterare, (rekryterande) chefer och utvecklare med flera. Ibland kan du till och med behöva avsätta större summor för själva utvecklaren, om de är efterfrågade, har utsökta färdigheter och om de också är eftertraktade av dina konkurrenter.
-
Brist på tekniska experter - Om allt ovanstående händer samtidigt behöver du helt klart extern hjälp för att anställa en Symfony-utvecklare. Helst skulle du inte slösa bort tid, och du skulle lita på prisvärda tjänster, som Proxify, för att matcha dig med lämpliga utvecklare på bara några dagar, och att gå i god för deras expertis också.
Rätt tid att använda Symfony
Överväg att använda Symfony om du behöver:
-
För att skapa stora webbappar - Symfony förenklar utvecklarnas arbete, vilket sparar tid och pengar i det långa loppet. Utvecklare kan också testa mycket snabbare och mer effektivt med hjälp av PHPUnit Independent Library. Eftersom Symfony förbrukar mindre minne och har inbyggda funktioner för att snabba upp prestandan är den perfekt för att optimera ett stort arbetsflöde.
-
Att förlita sig på ett snabbt och pålitligt ramverk - Med den hastighet som Symfony erbjuder kommer utvecklaren att avsluta jobbet snabbare än väntat. Symfony fungerar också perfekt på olika värdlösningar på grund av dess hastighet. Det är ett bekvämt ramverk med verktyg för att enkelt korrigera kod och åtgärda eventuella säkerhetsproblem.
-
Flexibilitet och anpassningsbarhet för olika uppdrag - Symfony erbjuder god anpassningsbarhet som är avgörande för dem som ständigt ändrar typer av uppdrag. Symfony fungerar bra med de flesta webbprogram, webbplatser, nätverk och CMS (Content Management Systems). Det finns standardiserade verktyg som kan vara användbara och tillämpas på olika situationer i utvecklingen (t.ex. rika bibliotek som hjälper utvecklaren att undvika repetitiva uppgifter.
-
Perfekt dokumentation - Med Symfony är dokumentationen snyggt organiserad och utvecklare kan lättare planera sitt arbete.
-
Att vara en del av en hjälpsam och omfattande gemenskap - Det är bra att veta att det alltid finns en bred gemenskap av utvecklare som regelbundet uppdaterar varandra eller erbjuder olika användbara lösningar.
Affärsfördelar med att använda Symfony
-
Spara tid och pengar - Med Symfony går det snabbare att komma ut på marknaden och utvecklingstiden förkortas avsevärt tack vare de många användbara funktionerna.
-
Flexibilitet - Det finns full konfigurationskontroll, kompatibilitet med databassystem och möjlighet att lägga till extra funktioner.
-
Enkelhet - Symfony har detaljerad dokumentation som gör det enkelt att använda det, framför allt genom de praktiska exemplen för att skapa webbappar. Det finns också ett användbart verktygsfält som gör det lättare för utvecklare att felsöka och få alla nödvändiga riktlinjer tydligt visade. Det är också mycket enkelt att automatisera processer, och distributionen kan också slutföras mycket enklare.
-
Anpassningsbarhet - Några anmärkningsvärda anpassningsfunktioner i Symfony är:
- Mikroramverk för utveckling av specifika funktioner (utvecklare kan ta isär detta och använda det som behövs separat)
- Brick by brick för att använda särskilda funktioner som utvecklaren kräver för att skapa en anpassad app med selektiva (men begränsade) funktioner.
- Fullstack är ett perfekt alternativ för att skapa en multifunktionell produkt.
-
Trouble-free testing - Testning har aldrig varit enklare än nu med PHP Unit Independent Library. Det hjälper till att stimulera HTTP-förfrågningar, automatiserar funktionstestning och erbjuder värdefulla verktyg för utvecklare (för beteende-, enhets- och funktionstestning).
-
Total bekvämlighet - Symfony gör produktutvecklingen sömlös och kundcentrerad, och utvecklare kan enkelt använda alla verktyg för att lösa problem med säkerhet eller kodfel.
-
Bredt samhällsstöd - Utvecklare kommer aldrig att sakna verktyg, metoder, information, tips, lösningar eller resurser som finns tillgängliga online i de breda Symfony-gemenskaperna.
Ben lade till sin synpunkt på de fördelar han värdesätter med Symfony:
"En av de många fördelarna med att använda Symfony är det stora utvecklargemenskap som kontinuerligt arbetar med att förbättra ramverket och dela med sig av användbar information. Dessutom, med detta ramverk, kan dev använda funktioner de behöver och behöver inte vara beroende av att använda dem alla på en gång. Dessutom är OOP en annan stor fördel för det övergripande arbetet. Företag har stor nytta av att utvecklarna använder Symfony - det är fantastiskt hur man enkelt och snabbt kan färdigställa fulla åtaganden och mikrotjänster."