Archives pour la catégorie Java

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.

Lire la suite

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 »…

Lire la suite

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.

Lire la suite

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.

Lire la suite

Indice pour le quizz Devoxx France 2013

Comme vous le savez, Devoxx France 2013 se déroulera à Paris du 27 au 29 mars. A cette occasion, un partenariat entre Developpez.com et la team Devoxx nous permet de vous faire gagner une entrée gratuite à la conférence, avec accès à tout durant les trois jours. Le gagnant pourra y rencontrer les membres de Développez.com, surtout l’équipe Java, mais aussi assister à de nombreuses présentations de qualité. Pour compléter le tout, le jeudi soir sera un moment privilègier pour déguster vins et fromages. Et quelques surprises vous attendent.

Lire la suite

Je trouve mon rythme à Devoxx

Le deuxième jour de Devoxx France 2012 vient de prendre fin. C’était intense. Comme hier, la rédaction de Developpez.com était au rendez-vous. Comme hier, je ne vais pas avoir assez de temps pour détailler chaque conférence. Je le ferai dans quelques jours, lorsque l’adrénaline sera retombée. Pour le moment, je vais me contenter de décrire ma journée au Marriot.

Lire la suite

Faire pleurer vos collègues

Voici 4 méthodes. Pour chacune il faut expliquer ce qui se passe, sans tester le code (sinon c’est trop facile).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@Test
public void testCalcul1() {
    int i;
    i = i++;
    System.out.println(i);
}
 
@Test
public void testCalcul2() {
    int i = 0;
    i = i++;
    System.out.println(i);
}
 
@Test
public void testCalcul3() {
    int i = 1;
    i = 1 + i++;
    System.out.println(i);
}
 
@Test
public void testCalcul4() {
    int i = 1;
    i = 1 + ++i + i++;
    System.out.println(i);
}

Serializable et UID

Voici une petite précision qui n’a l’air de rien mais qui a son importance.

Quand vous avez une classe qui implémente l’interface Serializable, pensez à créer l’attribut « serialVersionUID« .

En général Eclipse vous invite à le faire et vous propose de le générer automatiquement (ne prenez pas la valeur bidon) via le quick fix.

Je vous renvoie vers le Javadoc : http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html
Lire la suite