par
Cyrano » 04 avr. 2014, 09:06
Salut,
pour ma part, ce test me laisse perplexe. Ce que j'en comprends à la première lecture, c'est qu'il s'agit de créer un genre de système de base de données en PHP. C'est assez improbable comme idée, surtout coté performances, PHP n'est carrément pas fait pour ça, même si c'est une base en mémoire. Ensuite, il existe déjà des système très performants (Memcache et les bases NoSQL par exemple). Enfin, il existe déjà un langage normalisé pour les bases de données, à savoir le SQL : là, il est question de recréer un système avec son propre langage, ce qui présente un défaut majeur : il ne peut y avoir aucune portabilité avec d'autres systèmes à moins d'écrire des adaptateurs, et encore, ça ne ferait que plomber les performances en imposant une couche de traitement intermédiaire supplémentaire.
Peut-être y aurait-il lieu de se demander si tu poses les bonnes questions pour détecter le bon développeur. Pour ma part, j'avais conçu un petit test pour recruter des devs PHP, je suis allé à l'essentiel en me basant sur ma propre expérience :je demandais qu'on construise une petite classe pour se connecter à une base de données, pour exécuter une requête et pour en récupérer le résultat, point barre, rien d'autre. À tout casser, 3 méthodes et quelques propriétés, la base de données était prête et contenait un jeu de données et je fournissais un graphique du modèle de données. De plus, je laissais l'accès à Internet au candidat pour qu'il puisse accéder aux documentations dont il pourrait avoir besoin.
Le résultat est toujours instructif : n'imposant pas de manière particulière de faire, le résultat m'indique la manière de faire d'un candidat, je vois ensuite le style de codage qu'il produit, s'il est cohérent, s'il code proprement, s'il documente un tant soit peu son code. Je n'imposais l'utilisation d'aucune extension particulière pour accéder à MySQL : ça donne lieu à des résultats intéressants, la plupart utilisaient mysqli, mais j'ai eu un cas qui n'a pas hésité à utiliser PDO, ce que j'ai trouvé beaucoup plus futé.
J'ajoute que ça ne m'intéressait que moyennement qu'il termine ou pas le test, je voulais surtout voir son code et ses méthodes de travail et de codage. À choisir entre un qui finit en bâclant un boulot dégueulasse et un plus soigneux qui ne termine pas faute de temps, j'aurais tendance à privilégier le second (
voir ma signature en bas des messages que je poste ici), parce qu'il travaillera toujours proprement mais gagnera en vitesse avec l'expérience. Je serais presque tenté de dire qu'à la limite, si, profitant de son accès au net, il me construit un code à coups de copier/coller, si le résultat est propre et fonctionnel, ça me montre au moins qu'il sait quoi copier, comment l'utiliser et comment obtenir rapidement et correctement le résultat attendu, c'est au moins aussi important que de savoir écrire soi-même tout le code, dans les limites du raisonnable s'entend, mais après-tout, c'est ce qu'on fait tous lorsqu'on utilise un framework X ou un CMS Y.
Petit détail : tu as posé une annonce pour recruter un dev : tu y parles d'un projet ultra-innovant .... avec du Symfony 1.4

Je veux pas te vexer, mais pour du ultra-innovant, il faut être à la pointe avec les dernières versions et ça veut dire qu'il faudrait convertir ça à Symfony 2, d'autant que plus le projet avance, plus la mise à jour sera ardue si tu tardes à évoluer vers la dernière version. C'est d'autant plus important que tu parles ici de performances : la ré-écriture de ces frameworks a été, sur ce point, un élément plutôt essentiel. J'ajoute aussi que le titre parlant d'un projet déjà en ligne, ça pourrait motiver (ou pas...) de mettre un lien vers l'existant histoire de se faire une idée générale, en tous cas ça filtrerait en limitant à ceux intéressés par ledit projet.
Salut,
pour ma part, ce test me laisse perplexe. Ce que j'en comprends à la première lecture, c'est qu'il s'agit de créer un genre de système de base de données en PHP. C'est assez improbable comme idée, surtout coté performances, PHP n'est carrément pas fait pour ça, même si c'est une base en mémoire. Ensuite, il existe déjà des système très performants (Memcache et les bases NoSQL par exemple). Enfin, il existe déjà un langage normalisé pour les bases de données, à savoir le SQL : là, il est question de recréer un système avec son propre langage, ce qui présente un défaut majeur : il ne peut y avoir aucune portabilité avec d'autres systèmes à moins d'écrire des adaptateurs, et encore, ça ne ferait que plomber les performances en imposant une couche de traitement intermédiaire supplémentaire.
Peut-être y aurait-il lieu de se demander si tu poses les bonnes questions pour détecter le bon développeur. Pour ma part, j'avais conçu un petit test pour recruter des devs PHP, je suis allé à l'essentiel en me basant sur ma propre expérience :je demandais qu'on construise une petite classe pour se connecter à une base de données, pour exécuter une requête et pour en récupérer le résultat, point barre, rien d'autre. À tout casser, 3 méthodes et quelques propriétés, la base de données était prête et contenait un jeu de données et je fournissais un graphique du modèle de données. De plus, je laissais l'accès à Internet au candidat pour qu'il puisse accéder aux documentations dont il pourrait avoir besoin.
Le résultat est toujours instructif : n'imposant pas de manière particulière de faire, le résultat m'indique la manière de faire d'un candidat, je vois ensuite le style de codage qu'il produit, s'il est cohérent, s'il code proprement, s'il documente un tant soit peu son code. Je n'imposais l'utilisation d'aucune extension particulière pour accéder à MySQL : ça donne lieu à des résultats intéressants, la plupart utilisaient mysqli, mais j'ai eu un cas qui n'a pas hésité à utiliser PDO, ce que j'ai trouvé beaucoup plus futé.
J'ajoute que ça ne m'intéressait que moyennement qu'il termine ou pas le test, je voulais surtout voir son code et ses méthodes de travail et de codage. À choisir entre un qui finit en bâclant un boulot dégueulasse et un plus soigneux qui ne termine pas faute de temps, j'aurais tendance à privilégier le second ([size=85]voir ma signature en bas des messages que je poste ici[/size]), parce qu'il travaillera toujours proprement mais gagnera en vitesse avec l'expérience. Je serais presque tenté de dire qu'à la limite, si, profitant de son accès au net, il me construit un code à coups de copier/coller, si le résultat est propre et fonctionnel, ça me montre au moins qu'il sait quoi copier, comment l'utiliser et comment obtenir rapidement et correctement le résultat attendu, c'est au moins aussi important que de savoir écrire soi-même tout le code, dans les limites du raisonnable s'entend, mais après-tout, c'est ce qu'on fait tous lorsqu'on utilise un framework X ou un CMS Y.
Petit détail : tu as posé une annonce pour recruter un dev : tu y parles d'un projet ultra-innovant .... avec du Symfony 1.4 :shock: Je veux pas te vexer, mais pour du ultra-innovant, il faut être à la pointe avec les dernières versions et ça veut dire qu'il faudrait convertir ça à Symfony 2, d'autant que plus le projet avance, plus la mise à jour sera ardue si tu tardes à évoluer vers la dernière version. C'est d'autant plus important que tu parles ici de performances : la ré-écriture de ces frameworks a été, sur ce point, un élément plutôt essentiel. J'ajoute aussi que le titre parlant d'un projet déjà en ligne, ça pourrait motiver (ou pas...) de mettre un lien vers l'existant histoire de se faire une idée générale, en tous cas ça filtrerait en limitant à ceux intéressés par ledit projet.