Vankan työpaikkailmoituksen luominen Symfony-kehittäjän palkkaaminen ei ole breezer. Se vaatii aikaa ja tietoa teknisistä yksityiskohdista ja erityispiirteistä, ja se on vasta alkua koko palkkaamisprosessille, johon kuuluu ilmoituksen mainostaminen, tekniikan asiantuntijoiden etsiminen oikeista paikoista, huolellinen ehdokasvalinta ja haastattelujen aikatauluttaminen. Ja jos teet kaiken tämän yksin, siitä tulee vielä haastavampaa.
Sinun on otettava huomioon kaikki tekniset tekijät ennen rekrytoinnin aloittamista - ammatillinen tausta, asiantuntemus, koulutus, työkokemus, haastattelukysymykset, teknisten testien tulokset ja vastaavat. Aloitetaan.
Tietoa Symfonysta
Symfony edustaa tunnustettua ja vakaata PHP-kehystä web-kehitykseen ja samalla myös täydellistä määrää uudelleenkäytettäviä PHP-komponentteja. Kehyksenä se nopeuttaa verkkosovellusten luomista ja ylläpitoa, ja komponenttikokonaisuutena se tarjoaa 50 uudelleenkäytettävää, itsenäistä komponenttia, jotka vähentävät kustannuksia pitkällä aikavälillä ja luovat perustan laadukkaille PHP-sovelluksille.
Paras tapa, jolla kehittäjät hyödyntävät Symfonya, on käyttövalmis fullstack-kehys skaalautuvien verkkosovellusten ja uusien kehysten rakentamiseen. Symfonyn arkkitehtuuri on MVC (model-view-controller), joka auttaa luomaan verkkosovelluksia nopeasti, hyvin jäsennellysti, kerroksittain ja loogisesti. Symfonyn avulla kehittäjät voivat helposti jakaa ohjelmiston pienempiin osiin, mikä helpottaa käyttöönottoa ja ylläpitoa. Tämä kehys on suosittu myös siksi, että se yksinkertaistaa koodausta, tarjoaa modulaarisen rakenteen, helppokäyttöiset ominaisuudet, sujuvan toiminnallisuuden ja avoimen lähdekoodin.
Symfony-kehittäjän löytäminen ja haastattelu
Puretaanpa rekrytoinnin käytännön asiat ja Symfony-kehittäjien haastattelut useilla huomioon otettavilla seikoilla.
Vinkkejä rekrytoijille ja henkilöstöpäälliköille
Hyvän Symfony-kehittäjän etsintä onnistuu vain, jos aloitat hyvin rakennetulla työpaikkailmoituksella. Työpaikkailmoitusmallin pitäisi olla täsmällisesti muotoiltu, hakijan pitäisi ymmärtää tarkasti, mitä kyseisessä tehtävässä vaaditaan, ja koko mallin pitäisi olla mahdollisimman tiivis. Jos olet vielä päättämässä, minkälaista mainosrakennetta haluat käyttää, voit helposti käyttää ja muokata olemassa olevia työmalleja. Työpaikkailmoituksen mainostaminen työnhakualustoilla on varsin suosittu tapa löytää ja palkata Symfony-kehittäjiä, mutta voit myös löytää tekniikan asiantuntijan tukikohdastasi jo aiemmin.
Katsotaanpa, mitä työpaikkailmoituksessa on käsiteltävä eli mitä taitoja ja edellytyksiä.
Teknisten taitojen tarkistuslista
Erinomaisella Symfony-kehittäjällä olisi mieluiten laaja tietämys ja kokemus seuraavista:
-
Symfony - Symfony-kehittäjän on osattava työskennellä tämän kehyksen kanssa ulkoa ja rakentaa sovelluksia tehokkaasti ja nopeasti. Heillä on oltava vähintään kolmen vuoden kokemus tästä.
-
PHP - Symfonyssä on monia PHP -komponentteja, joten PHP:n parissa työskentely vähintään neljän vuoden ajan on toinen välttämätön edellytys.
-
Frontend-tekniikat - Edistynyt tietämys frontend-tekniikoista, kuten JavaScript, HTML ja CSS, on välttämätöntä, jotta voit kommunikoida sujuvasti muiden frontend-kehittäjien kanssa.
-
TDD (Test-Driven Development) - TDD:n käyttäminen on välttämätöntä erinomaisen ja puhtaan koodin tuottamiseksi.
-
OOP (olio-ohjelmointi)** - OOP tekee koodin ylläpidosta ja muutoksista helppoa. Dev voi luoda uusia objekteja olemassa olevien objektien päälle minimaalisilla muutoksilla.
-
Git ja versiohallinta - Gitin ja muiden versiohallintajärjestelmien avulla kehittäjät lisäävät yleistä tehokkuuttaan, nopeuttavat kehitystä sekä seuraavat ja hallinnoivat koodia tehokkaammin.
-
MySQL - Kehittäjän on työskenneltävä MySQL kanssa, jotta tietokantajärjestelmän hallinta olisi helpompaa ja tietovarastointi tehokkaampaa.
Suositeltavien edellytysten tarkistuslista
-
Tietojenkäsittelytieteen kandidaatin tutkinto
-
Hyvä tietämys Docker ja Kubernetes -konttijärjestelmistä.
-
Kokemus muista tämän tehtävän kannalta merkityksellisistä kielistä: Java, Go, C# ja Python.
-
Kokemus React.js:stä, mutta myös muista kehyksistä (Vue.js, Node.js, Angular).
-
Kokemus muista PHP-kehyksistä, kuten Laravel ja Slim.
-
Hyvä tietämys pilvialustoista, kuten AWS:stä (esim. Dynamo, EC2, S3, Lambda, ECS, IoT ja Cognito).
-
Vakaa ymmärrys NoSQL-tietokannoista, kuten MongoDB, Redis, Neo4J, Cosmos DB ja muista.
Juttelimme Ben Kachoud Hichamin, Proxifyn Fullstack-kehittäjän kanssa ja kysyimme lisää siitä, mitä Symfony-kehittäjän on tiedettävä:
"Hyvän Symfony devin on oltava sopeutuvainen muutoksiin ja seurattava usein, mitä uutta kehittäjäyhteisössä tapahtuu. Heidän tulisi ymmärtää Symfony-komponentit, painottaen muun muassa Security ja Form. Symfony devillä tulisi olla myös hyvä kokemus suunnittelumalleista, OOP:stä ja SOLID-periaatteista. Heidän on myös hallittava Symfonyn parhaat käytännöt ja keskityttävä lukemaan virallista dokumentaatiota perusteellisesti."
Haastattelukysymykset ja vastaukset
Voit käyttää alla olevia kysymyksiä Symfony-kehittäjän haastattelussa ja arvioida hänen tietämystään näiden odotettujen vastausten perusteella.
1. Voitko selittää Symfonyn ja Laravelin välisen korrelaation?
Esimerkkivastaus: Ensisijainen yhteys näiden kahden välillä on tietokannan vuorovaikutuksessa. Laravel käyttää Eloquentia (object-relational mapper - ORM) itsenäisenä kirjastona, kun taas Symfony käyttää Doctrinea (kolmannen osapuolen hanke) tietokantayhteistyöhön. Näillä kahdella on paljon yhteistä, mutta Laravel käyttää aluksi monia Symfony-komponentteja.
2. Mikä on Symfony Controller?
Vastausesimerkki: Symfony-ohjain edustaa luokan metodia pyyntöjen vastaanottamiseen ja Response-olion palauttamiseen. Ohjain on käytettävissä ja nähtävissä, kun se on kartoitettu URL-osoitteella etukäteen. Yksinkertaisesti sanottuna Symfony controller on PHP-funktio, joka hakee HTTP-pyynnön tiedot ja muuttaa ne HTTP-vasteeksi. Tämä vastaus voi vaihdella ja näkyä muun muassa XML-muodossa, 404-virheenä, uudelleenohjauksena tai HTML-sivuna.
3. Mitä ovat Symfony-merkinnät?
Vastausesimerkki: Käytämme huomautuksia tietojen kartoittamiseen (doktriinin ja konfiguraation validointi). Voimme tehdä tämän YAML:llä, XML:llä ja PHP:llä, ja huomautusten etuna on, että ne on helpompi määritellä yhdessä tiedostossa. Parempaa huomautustukea varten on olemassa myös niput JMSSecurityExtraBundle ja SensioFrameworkExtraBundle. Jälkimmäinen näistä kahdesta nipusta ei ole erittäin suositeltava osa viimeisintä Symfony-versiota, ja jokainen tämän nipun merkintä on nyt PHP:n sisäänrakennettu attribuutti Symfonyssä.
4. Onko Symfony-asennukselle olemassa palvelinvaatimuksia? Jos kyllä, mitä ne ovat?
Vastausesimerkki: Varmista Symfony-asennusta varten, että sinulla on PHP 8.1 tai uudempi versio, ja muista, että v.8.2 on jo julkaistu. Lisäksi sinun on asennettava myös Install Composer. Tarvitset myös PHP-laajennuksia (esimerkiksi Session, Ctype, PCRE, iconv, Tokenizer ja SimpleXML. Vaihtoehtoisesti voit asentaa Symfony CLI:n toisena vaihtoehtona, jolloin saat työkalutäytteisen binäärin paikallista sovellusta varten käynnissä.
5. Mitä ovat Symfony Bundles?
Vastausesimerkki: Symfonyn niput ovat kansioita ja tiedostoja, jotka on järjestetty tiettyyn rakenteeseen. Voimme paketoida nipun nimenomaan sovellukseen, kuten AdminBundle tai BlogBundle. Niput ovat Symfonyn liitännäisiä:
- Resurssit/näkymät/hakemisto
- Resurssit/julkiset/hakemisto
- Resurssit/config/hakemisto
- Dependencyinjection-hakemisto
- Ohjaimen hakemisto
- Testit/Hakemisto
Symfony v 4.0:n jälkeen on suositeltavaa, että niput käytetään yksinomaan koodin jakamiseen ja ominaisuuksien jakamiseen useamman sovelluksen välillä.
6. Voitko selittää uuden nipun luomisen Symfonyssä kaikkine vaiheineen?
Vastausesimerkki: Voimme luoda uuden nipun seuraavilla yksinkertaisilla ohjeilla.
- Nippua varten meidän on ensin luotava uusi hakemisto Symfony-projektissa, /src-hakemiston alle.
- Sitten uudessa hakemistossa tehdään uusi PHP-luokka nipulle. Tästä uudesta luokasta on oltava laajennus Symfony\Component\HttpKernel\Bundle\Bundle-luokkaan.
- Kolmanneksi on aika nipun rekisteröintiin tiedostossa app/AppKernel.php.file.
- Seuraavaksi nipun reititys on määritettävä tiedostossa app/config/routing.yml.
- Jos tarvitsemme nyt joitakin ohjainluokkia nippuun, nyt on oikea aika luoda ne. Sama pätee myös kaikkiin tarvittaviin mallitiedostoihin.
7. Mihin hakemistoon Symfony-lokit tallennetaan?
Esimerkki vastauksesta: Löydämme kaikki Symfony-lokit, jotka on tallennettu myproject/log/directory. Ympäristöä ja sovellusta kohti on vain yksi tiedosto. Myös oletushakemistorakennetta voidaan muokata (välimuistihakemiston, lokihakemiston, web-hakemiston ja myyjähakemiston ohittaminen).
8. Mitä Symfony Forms on?
Esimerkki vastaus: Symfony Forms auttaa meitä, kehittäjiä, HTML-lomakkeiden tekemisessä ja käsittelyssä, ja teemme tämän abstrahoimalla toistuvia asioita. Lomakekentän apuvälineiden avulla saamme arvokkaita työkaluja lomakkeen sisällön renderöintiin render-all-ohjelmasta.
9. Mikä on Symfonyn oletusportti, tai miten se on nimetty?
Vastausesimerkki: Oletusportti on verkkopalvelimen portti loogisena päätepisteenä verkkoyhteydelle. Symfonyn oletusportti on 8000. Jotta PHP:n sisäänrakennettua web-palvelinta voitaisiin käyttää parhaiten, meidän on suoritettava server:start-komento: $ php bin/console server:start, joka saa palvelimen käynnistymään osoitteessa localhost:8000 Symfony-sovelluksen taustalla.
10. Voisitko kertoa tarkemmin Symfony Console -komponentista?
Esimerkki vastauksesta: Symfony Console -komponentti on tehokas työkalu, joka auttaa kehittäjiä tekemään komentorivisovelluksia sen oliosuuntautuneen käyttöliittymän avulla. On myös "komentoargumentteja", syöttö- ja tulostusapuja, vaihtoehtojen jäsentelyä ja interaktiivisia dialogeja. Symfony Console pyrkii antamaan meille johdonmukaisen ja vakaan käyttöliittymän, jonka avulla voimme luoda ja ajaa komentorivisovelluksia nopeasti ja tehokkaasti.
11. Mikä on Symfony Serializer?
Esimerkki vastauksesta: Symfony Serializer on komponentti, jota käytetään tietyn muodon antamiseen objekteille (muun muassa JSON, YAML ja XML). Sama pätee myös päinvastaiseen tilanteeseen, kun meidän on muutettava jokin muoto objektiksi.
12. Voitko selittää, miten tyhjennät välimuistin Symfonyssä?
Esimerkki vastaus: Paras tapa tyhjentää välimuisti on komento cache:pool:clear, ja tämä tekee sen, että kaikki tallennushakemiston tiedot poistetaan. Symfonyyn on sisällytetty kolme oletusarvoista selvennystä tätä tarkoitusta varten:
- cache.app_clearer
- cache.global_clearer
- cache.system_clearer
13. Mitä voit kertoa meille Symfony-sovellukselle tarkoitetun mukautetun ympäristön luomisesta?
Vastausesimerkki: Tämä on mahdollista, ja se on myös suhteellisen yksinkertaista. Ensin luodaan uusi tiedosto app/config/hakemistoon. Sitten tähän lisätään tämä koodi:
parametrit:
env(SYMFONY_ENV): my_custom_ympäristö
Kun tämä on tehty, voimme päästä mukautettuun ympäristöön, mutta ennen sitä, viimeinen vaihe on toinen komento:
php app/console -env=my_custom_environment -env=my_custom_environment
14. Voisitko kertoa tarkemmin OAuth2-todennuksesta, ja onko se mahdollista toteuttaa Symfonyyn?
Vastausesimerkki: OAuth2 on mahdollista toteuttaa Symfonyyn. Tätä varten löydämme kirjaston FrendsOfSymfony/OAuth2-Server-Bundle ja käytämme sitä OAuth2-palvelintoiminnon lisäämiseen Symfony-sovellukseen.
15. Voisitko kertoa tarkemmin Cache-komponentista ja välimuistisovittimista Symfonyssä?
Esimerkki vastaus: Cache-komponentti antaa meille hyödyllisiä ominaisuuksia välimuistitiedostojen tarpeisiin, yksinkertaisista monimutkaisiin. Se toteuttaa Cache-sopimukset (yhteentoimivuuden vuoksi) ja PSR-6:n (välimuistiinpanorajapinta). Cache-komponentilla on erinomainen joustavuus, suorituskyky ja valmiit sovittimet, joita voidaan soveltaa moniin välimuistitietokantaan. Cache-komponentin avulla voimme myös helposti ottaa käyttöön tag-pohjaisen mitätöinnin. Mutta myös lukituksen ja varhaisen päättymisen avulla voimme helposti sallia välimuistitallennuksen stampede-suojauksen.
Parhaan Symfony-kehittäjän tunnistaminen ja valitseminen
Suurilla Symfony-kehittäjillä on useamman vuoden kokemus, ja he käyttivät työssään pääasiassa Symfonya yli kaiken muun.
Suuret Symfony-kehittäjäehdokkaat suoriutuvat poikkeuksellisen hyvin myös teknisistä testeistä ja kaikista muista haastatteluvaiheista. Heidän vastauksensa olivat kattavia ja oikeita, ja heidän koodinsa oli luettavaa ja siistiä.
Ben myös lisätty:
"Hyvä Symfony-kehittäjä tietää enemmän tästä kehyksestä ja vastaa kaikkiin kysymyksiin, joita häneltä kysytään. Tietenkin heidän on oltava enemmän kuin vain edistynyt, ja otsikko "asiantuntija" on jotain, johon kannattaa keskittyä enemmän. Lisäksi he tietävät kaikki puitekehyksen komponentit yksityiskohtaisesti.""
Mahdolliset haasteet Symfony-kehittäjän palkkaamisessa
Symfony-kehittäjän palkkaamiseen liittyvät mahdolliset haasteet ovat yleisiä haasteita, joita voidaan odottaa minkä tahansa rekrytointi- ja palkkaamisprosessin aikana.
-
Suunnittelun ja rakenteen puute - Tee rekrytoinnista organisoitu ja noudata etenemissuunnitelmaa kaikissa vaiheissa. Laadi hyvin koottu työpaikkailmoitus, tunnista, miten valita hakijoista parhaat kehittäjät, ja käytä asiaankuuluvia haastattelukysymyksiä.
-
Budjetin rajoitukset - Varmista, että varaat riittävästi budjettia koko prosessia varten; muun muassa rekrytoijille, (vuokraus)johtajille ja kehittäjille. Joskus saatat joutua jopa myöntämään suurempia summia itse kehittäjälle, jos hänellä on kysyntää, jos hänellä on erinomaiset taidot ja jos myös kilpailijasi haluavat häntä.
-
Teknisten asiantuntijoiden vähyys - Jos kaikki edellä mainitut asiat tapahtuvat kerralla, tarvitset selvästi ulkopuolista apua Symfony-kehittäjän palkkaamiseksi. Ihannetapauksessa et tuhlaisi aikaa, vaan luottaisit edullisiin palveluihin, kuten Proxify, jotka sovittavat sinulle sopivia kehittäjiä vain päivissä ja takaavat myös heidän asiantuntemuksensa.
Oikea aika käyttää Symfonya
Harkitse Symfonyn käyttöä, jos tarvitset:
-
Laajojen verkkosovellusten luomiseen - Symfony yksinkertaistaa kehittäjien työtä, mikä säästää aikaa ja rahaa pitkällä aikavälillä. Kehittäjät voivat myös testata paljon nopeammin ja tehokkaammin PHPUnit Independent Libraryn avulla. Koska Symfony kuluttaa vähemmän muistia ja sillä on sisäänrakennettuja ominaisuuksia suorituskyvyn nopeuttamiseksi, se sopii erinomaisesti suuren työnkulun optimointiin.
-
Luottaa nopeaan ja luotettavaan kehykseen - Symfonyn tarjoaman nopeuden ansiosta kehittäjä saa työn valmiiksi odotettua nopeammin. Lisäksi Symfony toimii täydellisesti eri hosting-ratkaisuissa sen nopeuden vuoksi. Se on kätevä kehys, jossa on työkaluja koodin helppoihin korjauksiin ja tietoturvaongelmien korjaamiseen.
-
Joustavuus ja mukautuvuus erilaisiin sitoumuksiin - Symfony tarjoaa hyvän mukautuvuuden, joka on ratkaisevan tärkeää niille, joiden sitoumustyypit muuttuvat jatkuvasti. Symfony toimii hyvin useimpien verkko-ohjelmien, sivustojen, verkkojen ja CMS-järjestelmien (Content Management Systems) kanssa. On olemassa standardoituja työkaluja, jotka voivat olla hyödyllisiä ja joita voidaan soveltaa erilaisissa kehitystilanteissa (kuten runsaat kirjastot, jotka auttavat kehittäjää välttämään toistuvia tehtäviä.
-
Tarkka dokumentaatio - Symfonyllä dokumentaatio on siististi järjestetty, ja kehittäjät voivat helpommin suunnitella työnsä.
-
Oleminen osa hyödyllistä ja laajaa yhteisöä - On hyvä tietää, että on aina olemassa laaja kehittäjäyhteisö, joka päivittää säännöllisesti toisiaan tai tarjoaa erilaisia hyödyllisiä ratkaisuja.
Symfonyn käytön liiketoiminnalliset edut
-
Säästää aikaa ja rahaa - Symfony nopeuttaa markkinoille tuloaikaa, ja kehitysaika lyhenee merkittävästi monien hyödyllisten ominaisuuksien ansiosta.
-
Joustettavuus - Käytettävissä on täysi konfiguraationhallinta, yhteensopivuus tietokantajärjestelmien kanssa ja mahdollisuus lisätä myös lisätoimintoja.
-
Yksinkertaisuus - Symfonylla on yksityiskohtainen dokumentaatio, joka tekee sen käytöstä helppoa erityisesti käytännön esimerkkien avulla verkkosovellusten luomiseksi. Käytössä on myös hyödyllinen työkalupalkki, jonka avulla kehittäjät voivat helpommin debugata ja saada kaikki tarvittavat ohjeet selkeästi näkyviin. Myös prosessien automatisointi on erittäin helppoa, ja käyttöönotto voidaan myös suorittaa paljon helpommin.
-
Räätälöitävyys - Joitakin Symfonyn merkittäviä räätälöintiominaisuuksia ovat:
-
- Mikrokehys erityisten toimintojen kehittämiseen (kehittäjät voivat purkaa tämän ja käyttää sitä, mitä tarvitaan erikseen).
-
- Tiili kerrallaan* tiettyjen ominaisuuksien käyttämiseen, joita kehittäjä tarvitsee tehdäkseen mukautetun sovelluksen, jossa on valikoivia (mutta rajoitettuja) toimintoja.
-
- Fullstack on täydellinen vaihtoehto monikäyttöisen tuotteen tekemiseen.
-
Testaaminen ilman ongelmia - Testaaminen ei ole koskaan ollut helpompaa kuin nyt PHP Unit Independent Library -kirjaston avulla. Se auttaa stimuloimaan HTTP-pyyntöjä, automatisoi toiminnallista testausta ja tarjoaa arvokkaita työkaluja kehittäjille (käyttäytymis-, yksikkö- ja toiminnalliseen testaukseen).
-
Totaalinen mukavuus - Symfony tekee tuotekehityksestä saumatonta ja asiakaskeskeistä, ja kehittäjät voivat helposti käyttää kaikkia työkaluja tietoturva- tai koodivirheongelmien ratkaisemiseen.
-
Laaja yhteisöllinen tuki - Kehittäjät eivät koskaan jää vaille työkaluja, menetelmiä, tietoja, vinkkejä, ratkaisuja tai resursseja, jotka ovat saatavilla verkossa laajoissa Symfony-yhteisöissä.
Ben lisäsi näkemyksensä Symfonyn tuomista eduista:
"Symfonyn käytön moniin etuihin kuuluu suuri kehittäjäyhteisö, joka työskentelee jatkuvasti tämän kehyksen parantamiseksi ja jakaa hyödyllistä tietoa. Sitä paitsi tämän kehyksen avulla dev voi käyttää tarvitsemiaan ominaisuuksia, eikä sen tarvitse olla riippuvainen siitä, että kaikkia niitä käytetään kerralla. Lisäksi OOP on toinen suuri etu työn kokonaisuuden kannalta. Yritykset hyötyvät suuresti, kun kehittäjät käyttävät Symfonya - on hämmästyttävää, miten kokonaisia sitoumuksia ja mikropalveluja voidaan helposti saada nopeasti valmiiksi."