Archives pour la catégorie Développement

Entity Graph de JPA 2.1

Jusqu’à la version 2.0 de JPA, les relations de nos beans étaient chargées en LAZY (par défaut) ou en EAGER. Le mode LAZY était utilisé dans la plupart des cas pour avoir des applications performantes et scalables. Pour autant, il y a toujours un moment où le mode LAZY ne suffit plus, nécessitant d’écrire des requêtes spécifiques, sans pour autant que le mode EAGER convienne (ou soit possible). Les utilisateur d’Hibernate penseront notamment à l’irritant LazyInitializedExcpetion. C’est là qu’interviennent les Entity Graphs.

Lire la suite

Les CSV, trois ans plus tard.

Il y a trois ans, j’écrivais un article sur le traitement des fichiers CSV en Java. Je vous invite d’ailleurs à le lire ou à le relire. Je m’étais alors volontairement limité, notamment sur l’aspect multithread. Il faut dire aussi que l’article faisait 70 pages, ce qui est déjà bien difficile à digérer. Mais depuis, la technologie a évolué, aussi bien dans nos programmes que dans les composants matériels.

Lire la suite

Puzzle sur le final++

Vous connaissez le mot-clé « final » en Java ? Si je n’est pas le cas, je vous renvoie vers un petit mémento des mots-clés du langage Java.

1
final int i = 0;

Vous connaissez la post incrémentation qui s’écrit à l’aide de deux signes plus.

1
i++;

Mais que se passe-t-il lorsqu’on cumule les deux ? C’est le puzzle de la semaine. Que fait le code suivant ?

1
2
3
4
final int i = 0;
i++;
i++;
System.out.println(i);

Je vous propose plusieurs solutions. Essayez de trouver la bonne sans tricher (sans le tester dans Eclipse). Ici, il faut non seulement avoir la bonne réponse mais aussi la bonne explication.

1) Ça ne compile pas ;
2) Ça écrit 0 (zéro) ;
3) Ça écrit 1 ;
4) Ça écrit 2 ;
5) Ça lance une RuntimeException (RE) ;
6) Ça fait autre chose, à préciser.

Exprimez-vous dans les commentaires…

Le non early return

Il y a quelques mois, à l’occasion d’un entretien dans une grande banque d’investissement, mon interlocuteur me parle de qualité de code, de bonnes pratiques et plus spécifiquement du « early return ». Ce chef de projet m’indique alors qu’il interdit son utilisation par ses équipes. Voyant mon air surpris, il m’explique comment/pourquoi il en est arrivé là. Je vais essayer de vous retranscrire les principaux points dans la suite de ce billet. Vous verrez que certains d’entre eux sont très spécifiques au métier de la banque.

Lire la suite

Le Croissant Master Agile

Dans ce billet de blog, je vais vous présenter un nouveau « rôle » que je viens d’introduire dans mon équipe : le Croissant* Master. Cette fonction, qui peut sembler honorifique et sans intérêt, est pourtant très importante. Le rôle de Croissant Master participe à la convivialité au sein de l’équipe tout en responsabilisant son détenteur. D’ailleurs, ce n’est pas tant une responsabilisation qu’une prise de conscience que je cherche à provoquer.

Lire la suite

Les onze règles de vie de Bill Gates

Même si c’est un peu vieux, je ressors ce sujet du placard. Voici quelques conseils prodigués par Bill Gates, fondateur de Microsoft, lors d’une allocution prononcée dans une école secondaire et qui aborde quelques leçons que les élèves n’ont pas apprises et n’apprendront pas à l’école.

Règle 1 : La vie n’est pas juste; il faudra vous y faire.

Règle 2 : Le monde se fiche de votre estime personnelle. Le monde s’attendra à ce que vous réalisiez quelque chose AVANT que vous ne vous sentiez bien dans votre peau.

Règle 3 : Vous ne toucherez pas 40 000 dollars par année immédiatement en sortant de l’école secondaire. Vous ne serez pas vice-président d’entreprise avec un téléphone dans votre voiture avant d’avoir gagné et mérité les deux.

Règle 4 : Si vous pensez que votre professeur est sévère, attendez d’avoir un patron.

Lire la suite