En ce début d’année, je vous adresse mes vœux. Savez-vous que 2016 sera bissextile ? Voici une bonne occasion pour écrire et tester un petit bout de code.
Archives pour la catégorie 3T
Buzz : le puzzle d’entrainement du concours du meilleur dév de France 2014
A l’occasion du concours du Meilleur Développeur de France 2014, le site de l’événement permettait de se familiariser avec l’interface en proposant un puzzle d’entrainement. Dans ce puzzle, le système choisi deux entiers « n » et « p » non multiples. Le candidat reçoit une String contenant les chiffres de 1 à 100 séparés par des espaces, où les multiples de « n » et de « p » sont remplacés par le mot « Buzz ». Voici donc une proposition de réponse.
Le Multirator
Lors du dernier concours du meilleur « Meilleur Développeur de France », dont on vous pouvez retrouver un résumé ici, une des épreuves consistait à programmer un Multirator. Ce terme est une invention personnelle pour désigner un Iterator piochant ses éléments suivants (next) dans une liste d’Iterators. Dans le concours le Multirator devait toujours choisir la plus petite valeur disponible.
Jusqu’à aujourd’hui, le besoin d’une telle fonctionnalité ne s’est jamais fait sentir dans mes programmes. Or j’en ai justement besoin aujourd’hui. Et au lieux de programmer un Multirator de mon coté et de le garder pour moi seul, je me propose de vous présenter ma démarche.
Renverser une String en Java : une question d’entretien technique
Un de mes collègues aime bien poser la question suivante en entretien technique : « Comment écrire une fonction Java qui renverse une String ». Le sujet est assez simple mais perturbe une bonne partie des candidats. Voici ma réponse…
Représentation d’une liste en String
A l’occasion d’un entretient, on m’a proposé de développer une méthode simple. L’idée n’était pas tant de coder la fonctionnalité que d’expliquer le raisonnement. Dans la suite, je ne vais pas vous expliquer comment bien programmer, en partant des tests, car j’ai déjà fais un billet intitulé « Kata Digital Romain » à ce sujet. A la place, je vais vous proposer plusieurs solutions qui me semble intéressantes, en Java standard, à l’aide de Guava, ou encore grâce à une approche fonctionnelle.
Kata Digital Romain
Pour m’amuser, je me suis intéressé à un exercice qu’on demande souvent en entretien pour tester les réflexes des candidats : la conversion d’un nombre dans sa représentation romaine, en Java.
Le sujet de cet exercice est relativement simple. On prend un nombre et on doit calculer sa représentation romaine.
Pour rappel, la représentation romaine se base sur une série de lettres : I (1), V (5), X (10), L (50), C (100), D (500) et M (1000). Pour le chiffre avant l’unité, on a une règle spéciale : IV (4), IX (9), XL (40), etc. Ainsi, on écrira « CCCLXIX » pour « 369 » et « MMDCCLI » pour « 2751 »…
Tests unitaires de la calculette des timbres Marianne de Cap Rikiki
Le module « Marimod », développé par la société « Cap Rikiki », gère une grosse partie des opérations réalisables avec les timbres de la série « Marianne ». Il fournit en particulier une calculette permettant de déterminer les timbres à utiliser pour un montant donné.
En plus de livrer ce module à son client, Cap Rikiki livre des tests unitaires pour bien montrer que cela fonctionne. C’est d’autant plus simple pour Cap Rikiki que la méthode 3T (Tests en Trois Temps), inspirée des TDD (Test Driver Developement) a été utilisée sur le projet.
Pour le fun : blanc noir gris
Pour le temps de faire une petite pause dans ma journée, je vous propose une solution à un problème simple. Il s’agit de programmer une méthode qui prend un entier N en entrée. Si N est un multiple de 3, ça renvoie « blanc ». Si N est un multiple de 5, ça renvoie « noir ». Si N est un multiple de 3 et de 5, ça renvoie « gris ». Enfin, dans tous les autres cas, ça renvoie trois petits points.