Last active
May 15, 2024 08:34
-
-
Save jpchateau/f822e00f1c6318046125 to your computer and use it in GitHub Desktop.
Entretien développeur back : PHP / Symfony / MySQL
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Cible : Développeur PHP / Symfony / MySQL | |
Niveau : Senior | |
Ce document propose des questions classiques, sans piège, à poser lorsque vous désirez valider un candidat pour un poste de développeur back. | |
J'utilise personnellement cette trame de questions, libre à vous de vous en inspirer, d'ajouter vos propres questions, et de déterminer lesquelles sont éliminatoires à vos yeux. | |
Veille technologique | |
Quelle est la version actuelle de PHP ? | |
> http://php.net/supported-versions.php | |
Qu'apporte la version 7 de PHP par rapport à la version 5 ? | |
> Speed | |
> Type Declarations (scalar typehint, strict mode, return type...) | |
> Error Handling (type error, throwable interface) | |
> New operators (Spaceship operator, Null Coalesce operator) | |
Quelle est la version actuelle de Symfony et quelle est la dernière version LTS ? | |
> https://symfony.com/roadmap | |
Selon CV, demander les évolutions de la dernière version de la base de données principalement utilisée. | |
PHP / POO | |
Quels mots clés sont utilisés pour définir la visibilité des propriétés et des méthodes ? | |
> public | |
> protected | |
> private | |
Et à quoi correspondent-ils ? | |
Qu'est-ce qu'une interface ? | |
> Ensemble de méthodes que les classes doivent définir si elles veulent l'implémenter | |
> Programmation par contrat | |
Quelle est la différence entre Héritage et Composition ? | |
> https://waytolearnx.com/2018/08/difference-entre-heritage-et-composition.html | |
Connaissez-vous des standards de code ? Pouvez-vous me donner un exemple ? | |
> https://www.php-fig.org/psr/ | |
Pouvez-vous citer 3 designs patterns (au moins 1 de création, 1 de structure et 1 de comportement) ? | |
> Factory Method, Abstract Factory, Builder, Prototype, Singleton | |
> Adapter, Bridge, Composite, Decorator, Façade, Flyweight, Proxy | |
> Chain of responsibility, Command, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor, Interpreter | |
> Attention : MVC = Combinaison des patrons observateur, stratégie et composite, ce qui forme ainsi un patron d'architecture. | |
Quels sont les principes derrière l'acronyme SOLID ? | |
> Single responsibility | |
> Open–closed | |
> Liskov substitution | |
> Interface segregation | |
> Dependency inversion | |
Avez-vous déjà utilisé PHPUnit ? | |
Qu'est-ce qu'un mock ? | |
Un stub ? | |
Qu'est-ce que la couverture de code ? | |
Quelle est la différence entre un test unitaire et un test fonctionnel ? | |
Quels outils de qualité de code utilisez-vous ? | |
Symfony | |
Quelle est la commande pour effacer le cache ? | |
> cache:clear | |
Après un déploiement par exemple, quelle commande permet de générer le cache afin d’améliorer les performances au lancement du site la première fois ? | |
> cache:warmup | |
Comment fonctionne le mécanisme d’injection de dépendances dans Symfony ? | |
Quelle est la différence entre un Listener et un Subscriber ? | |
Combien existe-t-il de composants ? | |
> autour de 70 (environ 55 sans les polyfill) | |
> https://symfony.com/components | |
Pouvez-vous en citer quelques uns ? | |
> config, console, DependencyInjection, event dispatcher, expression language, file system, finder, form, Http kernel, options resolver, routing, templating, translation, validator, varDumper, yaml | |
À quoi sert le composant Options Resolver ? | |
Quelle est votre démarche pour créer un formulaire ? | |
> https://symfony.com/doc/current/forms.html | |
Quels bundles tiers avez-vous déjà utilisés ? | |
MySQL | |
Quels sont les 3 principaux types de jointure entre les tables ? | |
> (inner) join | |
> left join | |
> right join | |
Quelle est la différence entre innoDB et MyISAM ? | |
> Transactions | |
> Clés étrangères | |
> ACID (Atomicity, Consistency, Isolation, Durability) | |
(inconvénients : admistration plus compliquée, plus lent pour les lectures et insertion du fait de la gestion de l'intégrité des données, de pouvoir récupérer en cas de crash...) | |
Soit une table avec un champ texte et un champ boolean, où dois-je poser un index ? | |
> Sur le champ texte, car la cardinalité est trop faible sur un booléen | |
Git | |
Avez-vous un compte Github ? | |
Quelle commande permet de basculer d'une branche à une autre ? | |
> git switch [branche] | |
> git checkout [branche] | |
Quelle commande permet d'obtenir la liste des tags ? | |
> git tag | |
> git tag -l | |
Quelle commande permet de supprimer une branche distante ? | |
> git push origin --delete [branche] | |
> git push origin :[branche] | |
Qu'est-ce que gitflow ? | |
> modèle de branches (develop, feature branchs, release, hotfix, master, tags) | |
Quelle est la différence entre rebase et merge ? | |
> http://blog.ippon.fr/2015/05/19/git-merge-ou-rebase/ | |
API | |
Quels sont les verbes HTTP les plus couramment utilisés et leur utilité ? | |
> GET, POST, PUT, DELETE, PATCH | |
Quelle est la différence entre PATCH et PUT ? | |
Qu'est-ce qu'une API RESTful ? | |
> https://martinfowler.com/articles/richardsonMaturityModel.html | |
Autres logiciels (questions à adapter selon CV) | |
Bash / MongoDB / RabbitMQ / Redis / Elastic Stack / Varnish | |
NewRelic (définir Apdex) / Capistrano / AWS et ses différents services | |
Humain | |
Avez-vous déjà utilisé des méthodes agiles ? Si Scrum, définir les différents rituels. | |
Pouvez-vous me donner 3 de vos qualités ? |
Hello @helmidridi !
C'est la commande dont je me sers, mais il y a plusieurs moyens pour effectuer cela (cf https://makandracards.com/makandra/621-git-delete-a-branch-local-or-remote).
En tout cas, la doc officielle de git semble plébisciter git push origin --delete [name], je vais donc mettre à jour ce document.
Merci !
Merci pour l'article très utile ;)
Merci pour l'article !
tres interessant
Merci, excellent contenu !
Good job
waow ! merci !
Good job
Merci pour l'article !
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
La réponse de cette question est erronée "Quelle commande permet de supprimer une branche distante ?"