Créer une solide annonce d'emploi à embaucher un développeur Symfony n'est pas une brèche. Cela demande du temps et des connaissances techniques et spécifiques, et ce n'est que le début de tout le processus d'embauche, y compris la promotion de l'annonce, la recherche d'experts en technologie aux bons endroits, la sélection minutieuse des candidats et l'organisation d'entretiens. Et si vous faites tout cela seul, cela devient encore plus difficile.
Vous devez prendre en considération tous les facteurs techniques avant de commencer le recrutement - parcours professionnel, expertise, formation, expérience professionnelle, questions d'entretien, résultats de tests techniques, etc. Commençons.
A propos de Symfony
Symfony représente un framework PHP reconnu et stable pour le développement web et, en même temps, un ensemble complet de composants PHP réutilisables. En tant que framework, il accélère la création et la maintenance des applications web, et en tant qu'ensemble de composants, il offre 50 composants autonomes et réutilisables qui réduisent les coûts à long terme et posent les bases d'applications PHP de qualité.
La meilleure façon pour les développeurs d'utiliser Symfony est d'utiliser un framework complet prêt à l'emploi pour construire des applications web évolutives et de nouveaux frameworks. L'architecture de Symfony est MVC (modèle-vue-contrôleur), ce qui permet de créer des applications web rapidement, de manière bien structurée, en couches et logique. Avec Symfony, les développeurs peuvent facilement diviser le logiciel en plusieurs parties pour faciliter le déploiement et la maintenance. Ce cadre est également populaire parce qu'il simplifie le codage, offre une structure modulaire, des caractéristiques faciles à utiliser, des fonctionnalités fluides et un code source ouvert.
Trouver et interviewer un développeur Symfony
Décortiquons les aspects pratiques du recrutement et l'entretien avec les développeurs Symfony avec plusieurs aspects à garder à l'esprit.
Conseils pour les recruteurs et les gestionnaires d'embauche
La recherche d'un bon développeur Symfony n'est fructueuse que si vous commencez par une annonce d'emploi bien construite. Le modèle d'annonce d'emploi doit être formulé avec précision, le candidat doit comprendre exactement ce qui est requis pour ce poste, et l'ensemble du modèle doit être aussi concis que possible. Si vous ne savez pas encore quelle structure d'annonce choisir, vous pouvez facilement utiliser et modifier des modèles d'annonces existants. La promotion de l'offre d'emploi sur les plateformes de recherche d'emploi est un moyen assez populaire de trouver et d'embaucher des développeurs Symfony, mais vous pouvez également trouver un expert technique dans votre base d'avant.
Voyons ce que l'offre d'emploi doit couvrir, c'est-à-dire les compétences et les prérequis.
Liste de contrôle des compétences techniques
Un excellent développeur Symfony devrait idéalement avoir des connaissances et une expérience approfondies dans les domaines suivants :
-
Symfony - Un développeur Symfony doit savoir comment travailler avec ce framework par cœur et construire des applications efficacement et rapidement. Ils doivent avoir au moins trois ans d'expérience dans ce domaine.
-
PHP - Il y a beaucoup de composants PHP dans Symfony, donc travailler avec PHP depuis au moins quatre ans est un autre pré-requis indispensable.
-
Technologies frontales - Une connaissance avancée des technologies frontales, telles que JavaScript, HTML et CSS, est nécessaire pour communiquer aisément avec les autres développeurs frontaux.
-
TDD (Test-Driven Development) - L'utilisation de TDD est vitale pour produire un code excellent et propre.
-
OOP (Object Oriented Programming) - L'OOP facilite la maintenance et les modifications du code. Le développeur peut créer de nouveaux objets sur des objets existants avec des changements minimes.
-
Git et contrôle de version - Avec Git et d'autres contrôles de version, les développeurs augmentent leur efficacité globale, accélèrent le développement et suivent et gèrent le code plus efficacement.
-
MySQL - Le développeur doit travailler avec MySQL pour faciliter la gestion du système de base de données et rendre plus efficace l'entreposage des données.
Liste de contrôle des conditions préalables préférées
-
Un diplôme (Bachelor) en informatique
-
Bonne connaissance de la conteneurisation Docker, et Kubernetes.
-
Expérience d'autres langages pertinents pour ce poste : Java, Go, C#, et Python.
-
Expérience avec React.js, mais aussi d'autres frameworks (Vue.js, Node.js, Angular).
-
Expérience avec d'autres frameworks PHP tels que Laravel et Slim
-
Bonne connaissance des plateformes cloud telles que AWS (par exemple, Dynamo, EC2, S3, Lambda, ECS, IoT, et Cognito).
-
Solide compréhension des bases de données NoSQL telles que MongoDB, Redis, Neo4J, Cosmos DB, et plus encore.
Nous avons discuté avec Ben Kachoud Hicham, un développeur Fullstack chez Proxify, et nous avons demandé plus d'informations sur ce qu'un développeur Symfony doit savoir :
"Un grand développeur Symfony doit s'adapter aux changements et suivre fréquemment les nouveautés de la communauté des développeurs. Ils doivent comprendre les composants de Symfony, en mettant l'accent sur la sécurité et les formulaires, entre autres. Le développeur Symfony doit également avoir une bonne expérience des modèles de conception, de la POO et des principes SOLID. Ils doivent également maîtriser les meilleures pratiques de Symfony et s'attacher à lire attentivement la documentation officielle."
Questions d'entretien et réponses
Vous pouvez utiliser les questions ci-dessous pour interroger le développeur Symfony et évaluer ses connaissances sur la base des réponses attendues.
1. Pouvez-vous expliquer la corrélation entre Symfony et Laravel ?
Exemple de réponse: Le lien principal entre les deux est l'interaction avec la base de données. Laravel utilise Eloquent (object-relational mapper - ORM) comme bibliothèque indépendante, tandis que Symfony utilise Doctrine (un projet tiers) pour l'interaction avec la base de données. Les deux ont beaucoup de choses en commun, mais Laravel utilise initialement de nombreux composants Symfony.
2. Qu'est-ce que le contrôleur Symfony ?
Exemple de réponse: Un contrôleur Symfony représente une méthode de classe pour les requêtes acceptant et retournant un objet Response. Le contrôleur est accessible et visualisé lorsqu'il est mappé avec l'URL au préalable. Pour faire simple, le contrôleur Symfony est une fonction PHP qui récupère les informations des requêtes HTTP et les transforme en réponse HTTP. Cette réponse peut varier et se présenter sous la forme d'un format XML, d'une erreur 404, d'une redirection ou d'une page HTML, entre autres.
3. Qu'est-ce que les annotations Symfony ?
Exemple de réponse: Nous utilisons les annotations pour la mise en correspondance des informations (validation de la doctrine et de la configuration). Nous pouvons faire cela avec YAML, XML et PHP, et l'avantage des annotations est qu'elles sont plus faciles à définir dans un seul fichier. Pour une meilleure prise en charge des annotations, il existe également les bundles JMSSecurityExtraBundle et SensioFrameworkExtraBundle. Le dernier paquet de ces deux n'est pas fortement recommandé dans la dernière version de Symfony et chaque annotation de ce paquet est un attribut PHP intégré dans Symfony maintenant.
4. Y a-t-il des exigences de serveur pour l'installation de Symfony ? Si oui, de quoi s'agit-il ?
Exemple de réponse: Pour l'installation de Symfony, assurez-vous d'avoir PHP 8.1 ou plus, et rappelez-vous que v.8.2 est déjà disponible. Vous devez également installer Install Composer. Vous aurez également besoin d'extensions PHP (par exemple, Session, Ctype, PCRE, iconv, Tokenizer, et SimpleXML. Alternativement, vous pouvez installer le CLI Symfony comme une autre option, vous donnant un binaire rempli d'outils pour l'application locale en cours d'exécution.
5. Qu'est-ce que les Bundles Symfony ?
Exemple de réponse: Les bundles dans Symfony sont des dossiers et des fichiers organisés dans une structure spécifique. Nous pouvons empaqueter le bundle spécifiquement dans une application comme AdminBundle ou BlogBundle. Les Bundles sont les plugins dans Symfony :
- Ressources/vues/répertoire
- Ressources/public/Directoire
- Ressources/config/répertoire
- Répertoire d'injection de dépendances
- Répertoire du contrôleur
- Tests/Annuaire
Après Symfony v 4.0, il est recommandé d'utiliser les bundles exclusivement pour le partage de code et le partage de fonctionnalités entre plusieurs applications.
6. Pouvez-vous nous expliquer la création d'un nouveau bundle dans Symfony avec toutes ses étapes ?
Exemple de réponse: Nous pouvons créer une nouvelle liasse en suivant les étapes suivantes.
- Pour le bundle, nous devons d'abord créer un nouveau répertoire, dans le projet Symfony, sous /src directory
- Ensuite, dans le nouveau répertoire, nous créons une nouvelle classe PHP pour l'offre groupée. Il doit y avoir une extension de cette nouvelle classe vers la classe Symfony\Component\HttpKernel\Bundle\Bundle.
- Troisièmement, il est temps de procéder à l'enregistrement du bundle dans le fichier app/AppKernel.php.file
- Ensuite, le routage du bundle doit être configuré dans le fichier app/config/routing.yml
- Si nous avons besoin de classes de contrôleurs pour l'offre groupée, c'est le bon moment pour les créer. Il en va de même pour tous les fichiers modèles nécessaires.
7. Dans quel répertoire sont stockés les logs de Symfony ?
Exemple de réponse: Nous pouvons trouver tous les logs Symfony stockés dans myproject/log/directory. Il n'y a qu'un seul fichier par environnement et par application. La structure des répertoires par défaut peut également être personnalisée (en remplaçant le répertoire cache, le répertoire logs, le répertoire web et le répertoire vendor).
8. Qu'est-ce que les formulaires Symfony ?
Exemple de réponse: Symfony Forms nous aide, nous les développeurs, à créer et à traiter des formulaires HTML, et nous le faisons en abstrayant les choses répétitives. Avec les aides pour les champs de formulaire, nous disposons d'outils précieux pour le rendu du contenu des formulaires à partir de render-all.
9. Qu'est-ce qu'un port par défaut Symfony, ou comment est-il nommé ?
Exemple de réponse: Un port par défaut est un port de serveur web en tant qu'extrémité logique de connexion avec un réseau. Le port par défaut de Symfony est 8000. Pour utiliser au mieux le serveur web intégré de PHP, nous devons exécuter la commande server:start : $ php bin/console server:start, qui fera démarrer le serveur à localhost:8000 en arrière-plan de l'application Symfony.
10. Pouvez-vous nous donner plus de détails sur le composant Symfony Console ?
Exemple de réponse: Le composant Symfony Console est un outil puissant qui aide les développeurs à créer des applications en ligne de commande grâce à son interface orientée objet. Il existe également des "arguments de commande", des aides à l'entrée et à la sortie, l'analyse d'options et des dialogues interactifs. Symfony Console a pour but de nous donner une interface cohérente et stable pour créer et exécuter des applications en ligne de commande rapidement et efficacement.
11. Qu'est-ce que le Serializer Symfony ?
Exemple de réponse: Symfony Serializer est un composant utilisé pour donner un format spécifique aux objets (JSON, YAML, XML, entre autres). Il en va de même dans la situation inverse, lorsque nous devons transformer un format en objet.
12. Pouvez-vous nous expliquer comment vous effacez le cache dans Symfony ?
Exemple de réponse: La meilleure façon de vider le cache est d'utiliser la commande cache:pool:clear, qui prend toutes les données du répertoire de stockage et les supprime. Dans Symfony, trois clearers par défaut sont inclus à cette fin :
- cache.app_clearer
- cache.global_clearer
- cache.system_clearer
13. Que pouvez-vous nous dire sur la création d'un environnement personnalisé destiné à une application Symfony ?
Exemple de réponse: C'est une chose possible à faire, et c'est relativement simple. Tout d'abord, nous créons un nouveau fichier dans app/config/répertoire. Ensuite, nous ajoutons ce code :
paramètres :
env(SYMFONY_ENV) : my_custom_environment
Une fois que cela est fait, nous pouvons accéder à l'environnement personnalisé, mais avant cela, une dernière étape est une autre commande :
php app/console -env=mon_environnement_personnalisé
14. Pouvez-vous nous en dire plus sur l'authentification OAuth2, et est-il possible de l'implémenter dans Symfony ?
Exemple de réponse: Il est possible d'implémenter OAuth2 dans Symfony. Pour cela, nous trouvons la bibliothèque FrendsOfSymfony/OAuth2-Server-Bundle et l'utilisons pour ajouter la fonctionnalité serveur OAuth2 à une application Symfony.
15. Pouvez-vous nous donner plus de détails sur le composant Cache et les adaptateurs de cache dans Symfony ?
Exemple de réponse: Le composant Cache offre des fonctionnalités utiles pour les besoins de mise en cache, qu'ils soient simples ou complexes. Il met en œuvre les contrats de cache (pour l'interopérabilité) et PSR-6 (une interface de mise en cache). Le composant Cache présente une résilience et des performances exceptionnelles, ainsi que des adaptateurs prêts à l'emploi applicables à de nombreux backends de mise en cache. Avec le composant Cache, nous pouvons également activer facilement l'invalidation basée sur les balises. Mais aussi, grâce au verrouillage et à l'expiration anticipée, nous pouvons facilement autoriser la protection contre la débandade du cache.
Reconnaître et sélectionner le meilleur développeur Symfony
Les grands développeurs Symfony auront plus d'années d'expérience, et ils ont utilisé Symfony de manière prédominante dans leur travail.
Les excellents candidats développeurs Symfony obtiennent des résultats exceptionnels aux tests techniques et à toutes les autres étapes de l'entretien. Leurs réponses étaient complètes et correctes, et leur code était lisible et propre.
Ben également ajouté :
"Un bon développeur Symfony en saura plus sur ce framework et répondra à toutes les questions qu'on lui posera. Bien sûr, ils doivent être plus qu'avancés, et le titre d'"expert" est quelque chose sur lequel il faut se concentrer davantage. De plus, ils connaîtront tous les composants du cadre en détail."
Défis possibles lors de l'embauche d'un développeur Symfony
Les défis possibles liés à l'embauche d'un développeur Symfony sont les défis courants auxquels on peut s'attendre au cours d'un processus de recrutement et d'embauche.
-
Manque de planification et de structure** - Organisez le recrutement et suivez une feuille de route pour toutes les étapes. Rédigez une offre d'emploi bien structurée, sachez comment présélectionner les meilleurs développeurs parmi les candidats et utilisez des questions d'entretien pertinentes.
-
Limites budgétaires** - Assurez-vous d'allouer un budget suffisant pour l'ensemble du processus, pour les recruteurs, les gestionnaires (d'embauche) et les développeurs, entre autres. Parfois, vous devrez même allouer des sommes plus importantes au développeur lui-même, s'il est très demandé, s'il possède des compétences exceptionnelles et s'il est également recherché par vos concurrents.
Pénurie d'experts techniques - Si toutes les situations ci-dessus se produisent en même temps, vous aurez clairement besoin d'une aide extérieure pour embaucher un développeur Symfony. Idéalement, vous ne perdriez pas de temps et vous compteriez sur des services abordables, tels que Proxify, pour vous mettre en relation avec des développeurs appropriés en quelques jours seulement, et pour vous porter garant de leur expertise.
Le bon moment pour utiliser Symfony
Envisagez d'utiliser Symfony si nécessaire :
-
Pour créer de grandes applications web - Symfony simplifie le travail des développeurs, ce qui leur permet d'économiser du temps et de l'argent sur le long terme. Les développeurs peuvent également tester plus rapidement et plus efficacement avec l'aide de la bibliothèque indépendante PHPUnit. Comme Symfony consomme moins de mémoire et possède des fonctions intégrées pour accélérer les performances, il est parfait pour optimiser un flux de travail important.
-
Faire confiance à un framework rapide et fiable - Grâce à la rapidité offerte par Symfony, le développeur terminera son travail plus rapidement que prévu. Par ailleurs, Symfony fonctionne parfaitement sur différentes solutions d'hébergement en raison de sa rapidité. Il s'agit d'un cadre pratique doté d'outils permettant de corriger facilement le code et de résoudre les problèmes de sécurité.
-
Flexibilité et adaptabilité pour divers engagements - Symfony offre une bonne adaptabilité qui est cruciale pour ceux qui changent constamment les types d'engagements. Symfony fonctionnera bien avec la plupart des programmes web, sites, réseaux et CMS (Content Management Systems). Il existe des outils standardisés qui peuvent être utiles et appliqués à diverses situations dans le développement (comme des bibliothèques riches qui aideront le développeur à éviter les tâches répétitives.
-
Documentation correcte - Avec Symfony, la documentation est bien organisée, et les développeurs peuvent plus facilement planifier leur travail.
-
Faire partie d'une communauté utile et étendue - Il est bon de savoir qu'il existe toujours une large communauté de développeurs qui s'informent régulièrement les uns les autres ou proposent diverses solutions utiles.
Avantages commerciaux de l'utilisation de Symfony
-
Gagner du temps et de l'argent - Le temps de mise sur le marché est accéléré avec Symfony, et le temps de développement est réduit de manière significative grâce aux nombreuses fonctionnalités utiles.
-
Flexibilité - Il existe un contrôle total de la configuration, une compatibilité avec les systèmes de base de données et la possibilité d'ajouter des fonctionnalités supplémentaires.
-
Simplicité - Symfony dispose d'une documentation détaillée qui rend son utilisation facile grâce, notamment, aux exemples pratiques de création d'applications web. Il existe également une barre d'outils utile qui permet aux développeurs de déboguer plus facilement et d'afficher clairement toutes les directives nécessaires. En outre, l'automatisation des processus est très facile, et le déploiement peut également être réalisé beaucoup plus facilement.
-
Personnalisation - Les caractéristiques de personnalisation de Symfony sont les suivantes :
- Micro framework pour développer des fonctionnalités spécifiques (les développeurs peuvent le démonter et utiliser ce qui est nécessaire séparément)
Brique par brique pour l'utilisation de fonctionnalités particulières dont le développeur a besoin pour créer une application personnalisée avec des fonctions sélectives (mais limitées).
Fullstack est une option parfaite pour créer un produit multifonctionnel.
-
Test sans problème - Tester n'a jamais été aussi facile qu'aujourd'hui avec la bibliothèque indépendante PHP Unit. Il aide à stimuler les requêtes HTTP, automatise les tests fonctionnels et offre des outils précieux aux développeurs (pour les tests comportementaux, unitaires et fonctionnels).
-
Total convenience - Symfony rend le développement de produits transparent et centré sur le client, et les développeurs peuvent facilement utiliser tous les outils pour résoudre les problèmes de sécurité ou d'erreur de code.
-
Les développeurs ne manqueront jamais d'outils, de méthodes, d'informations, de conseils, de solutions ou de ressources disponibles en ligne dans les vastes communautés Symfony.
Ben a ajouté son point de vue sur les avantages qu'il retire de Symfony :
"L'un des nombreux avantages de l'utilisation de Symfony est la grande communauté de développeurs qui travaille continuellement à l'amélioration de ce framework et au partage d'informations utiles. De plus, avec ce cadre, le développeur peut utiliser les fonctionnalités dont il a besoin et n'a pas besoin de dépendre de l'utilisation de toutes les fonctionnalités en même temps. De plus, la POO est un autre avantage majeur pour le travail en général. Les entreprises bénéficient grandement lorsque les développeurs utilisent Symfony - il est étonnant de voir comment des engagements complets et des microservices peuvent être facilement terminés rapidement."