Consignes épreuve de codage

2
Consignes Nous évaluons votre capacité à fournir un code facilement maintenable et extensible par un autre développeur. Grille d'évaluation Principaux critères pris en compte : capacité à comprendre et respecter des consignes de travail, éventuellement se les faire préciser si besoin capacité à communiquer (coder c'est parler à son moi futur) : présence et pertinence des commentaires éventuellement utilisation d'une norme de commentaire (javadoc ou autre) variables : devine-t-on facilement ce qu'elles représentent? (pour les langages où cela est utile) devine-t-on facilement le type utilisé pour stocker les données? la manière dont la variable doit être manipulée? fonctions : devine-t-on facilement ce que la fonction fait? devine-t-on facilement le type de données qu'elle retourne? devine-t-on facilement le type d'exceptions qu'elle peut générer? devine-t-on facilement les erreurs qu'elle peut retourner? architecture du code : les traitements sont-ils atomiques? la ré-utilisation du code est-elle facilitée? les effets de bord sont-ils minimisés? utilisation de bonnes pratiques courantes, de règles de codage simplicité de mise en oeuvre, donc de maintenance l'algorithme est-il simple, robuste, correspond-t-il à un pattern reconnu (design pattern, algorithme classique...) le code est-il facilement testable (tests unitaires)? Nos dogmes pour cette évaluation sont : KISS : Keep It Simple Stupid DRY : Don't Repeat Yourself Nous gardons quelques critères "secrets". Les critères non annoncés se déduisent facilement de cette grille.

Transcript of Consignes épreuve de codage

Page 1: Consignes épreuve de codage

Consignes

Nous évaluons votre capacité à fournir un code facilement maintenable et extensible par un autre développeur.

Grille d'évaluationPrincipaux critères pris en compte : • capacité à comprendre et respecter des consignes de travail, éventuellement se

les faire préciser si besoin• capacité à communiquer (coder c'est parler à son moi futur) : ◦ présence et pertinence des commentaires◦ éventuellement utilisation d'une norme de commentaire (javadoc ou autre)• variables : ◦ devine-t-on facilement ce qu'elles représentent?◦ (pour les langages où cela est utile) devine-t-on facilement le type utilisé

pour stocker les données?◦ la manière dont la variable doit être manipulée?• fonctions : ◦ devine-t-on facilement ce que la fonction fait?◦ devine-t-on facilement le type de données qu'elle retourne?◦ devine-t-on facilement le type d'exceptions qu'elle peut générer? ◦ devine-t-on facilement les erreurs qu'elle peut retourner?• architecture du code : ◦ les traitements sont-ils atomiques?◦ la ré-utilisation du code est-elle facilitée? ◦ les effets de bord sont-ils minimisés?• utilisation de bonnes pratiques courantes, de règles de codage• simplicité de mise en oeuvre, donc de maintenance• l'algorithme est-il simple, robuste, correspond-t-il à un pattern reconnu (design

pattern, algorithme classique...)• le code est-il facilement testable (tests unitaires)?

Nos dogmes pour cette évaluation sont :• KISS : Keep It Simple Stupid• DRY : Don't Repeat Yourself

Nous gardons quelques critères "secrets". Les critères non annoncés se déduisent facilement de cette grille.

Page 2: Consignes épreuve de codage

Exercices1- Dans une base de données imaginaire, comment sélectionneriez-vous les bonbons goût fraise de couleur rouge et de forme dragée?

Evitez de consacrer plus de 5 mn à cet exercice.

2- Rédigez une fonction qui vérifiera la validité d'un email : • présence du caractère arobase ("@")• présence du caractère point (".")• extension du nom de domaine comprise dans une listeEvitez de consacrer plus de 30mn à cet exercice.

3- Ecrivez une fonction qui teste la fonction de validation d'email

Evitez de consacrer plus de 15mn à cet exercice.

4- Avant de démarrer :• notez le temps que vous prévoyez de consacrer à cette tâche• notez l'heure où vous commencez

5- Après avoir terminé :• notez l'heure où vous avez terminé• notez le temps le temps effectivement consacré à cette tâche• si possible, livrez votre feuille de temps au format open document (format odt, le

format natif d'Open Office). Les livraisons dans un autre format sont possibles mais doivent être négociées avec moi avant livraison.

6- Quelle méthode avez-vous utilisée pour estimer le temps de développement de cette fonction?7- Ne livrez pas le premier et le sixième exercice8- Ne passez pas plus d'1h sur cette évaluation9- Envoyez vos questions éventuelles par retour de mail : les réponses seront diffusées à l'ensemble des candidats.10- Réponses attendues par retour de mail, avant :