Après avoir quelque peu délaissé le Java au profit du C++ ces dernières années, un peu de rattrapage s’impose. Le but est donc de revoir les bonnes pratiques de Java 6 et de partir à la découverte de ce qu’ont apportées les versions 7 et 8 de Java. Rien que ça !
Pour cela, rien de plus efficace qu’un bon bouquin truffé d’exemples et écrit pas des personnes qui savent de quoi elles parlent. Je découvre à cette occasion pour la première fois des livres des éditions Manning et quelque chose me dit que j’y reviendrai ! C’est fou toutes les références qu’ils ont dans les technologies de développement logiciel !
J’ai donc choisi trois livres, un pour chaque version :
- Java 6 : Effective Java, Second Edition de Joshua Bloch chez Addison-Wesley (Août 2008).
Bonnes pratiques qui permettent d’écrire du code Java efficient. J’avais déjà lu ce livre il y a cinq ans mais on oublie vite quand on ne manipule pas !
- Java 7 : Well Grounded Java Developer de Benjamin J. Evans et Martjin Verburg chez Manning (Juillet 2012).
Nouveautés Java 7 (Project Coin, try-with-resources, NIO.2) et comme dans “Effective Java“, quelques techniques sympas à connaître.
Ensuite, une introduction très intéressante aux langages basés sur la JVM, cousins plus ou moins proches de Java dont notamment Groovy, Scala et Clojure.
Enfin, une dernière partie sur quelques notions de software craftmanship appliquées à ces langages.
- Java 8 : Java 8 in Action de Raoul-Gabriel Urma, Mario Fusco et Alan Mycroft chez Manning (Août 2014).
Nouveautés Java 8 et notamment une introduction aux expressions lambda.
Ensuite, une partie sur le traitement des données (ex: Collections) à la sauce programmation fonctionnelle et flux.
Après, comme pour les précédents livres, une partie sur comment être efficient en Java 8.
Et enfin, une partie un plus poussée sur la façon de penser en programmation fonctionnelle et l’après Java 8.
Tout un programme qui fait du bien au moral ! Je détaillerai chacun des livres dans des articles à venir ainsi que les spikes que j’ai prévu de faire pour Groovy, Scala et autres.