[azonbox2 imgurl= "https://livreinformatique.com/wp-content/uploads/2016/04/Effective-Java-238x300.jpg" imgdsc="" lnktxt= "Acheter sur Amazon" linkl="https://livreinformatique.com/go/effective-java-amazon/" headline= "Effective Java - 2e édition" subhline="La référence pour apprendre le Java" text= "" ]
Effective Java existe depuis maintenant de nombreuses années : la première édition d'Effective Java de Joshua Bloch est sortie en 2001, alors que la deuxième édition est sortie en 2008, déjà huit ans. Lorsque vous demandez à des developpeurs quel est leur livre préféré de Java, Effective Java arrive très souvent dans la liste des meilleurs livres de Java et le plus souvent en première position. Et quand quelqu’un demande « Quel livre me conseilles tu pour m’ameliorer en Java ? », Effective Java arrive regulierement comme reponse numéro 1. Si écrire du code Java fait partie de votre travail quotidien, vous vous devez de lire ce livre. Si vous apprenez Java et espérez qu’un jour, écrire des programmes en Java fera partie intégrante de votre futur travail, vous vous devez de lire ce livre. Donc pour la plupart des développeurs, la question de savoir si vous devez lire ce livre ou non trouve sa réponse très rapidement. Les seules questions en suspens sont donc quand lire Effective Java et porquoi lire Effective Java.
Effective Java n’est pas un livre pour apprendre à programmer en Java. En effet, Joshua Bloch part du principe que vous êtes déjà familier avec les bases du langage Java. Ce n’est pas non plus un livre qui vous permettra de developper votre connaissance des frameworks Java que sont les populaires Spring, JDBC, Java EE, ou Swing. Effective Java ne va pas non plus vous permettre d’accomplir de nouvelles choses dont vous auriez été complètement incapable avant. Si vous êtes quelqu’un de pragmatique, ce livre pourrait vous sembler inutile. Mais si vous êtes déjà familier avec plusieurs langages, l’objectif de ce livre devient évident et vous serez surpris de l'importance qu’il pourrait avoir dans votre bibliothèque.
Le livre suppose du lecteur une bonne connaissance des bases du langage Java, ainsi qu’une bonne connaissance du développement orienté objet en général; ce n’est en aucun cas une introduction ou un tutoriel. Plutôt, son but est d’enseigner un ensemble de bonnes pratiques qui peuvent être appliquées à la resolution des problèmes communs dans la vie d'un développeur Java. Le livre n’a pas comme sujet principal le design en tant que tel, il ne présente pas l’ensemble des design patterns un à un, mais certains - à mon goût les plus utiles - sont présentés lorsqu’ils répondent judicieusement à des problemes concrets.
Pourquoi lire ce livre ? Pour apprendre comment écrire du très bon code Java. N’importe quelle tâche de programmation peut etre codée de beaucoup de manières différentes et Effective Java vous présente comment écrire du code Java qui est facilement comprehensible, qui correspond à ce pour quoi le langage a été créé et qui permet d’exploiter à fond les possibilités du langage. En d’autres termes, Effective Java va vous montrer comment profiter de Java pour écrire du code de haut niveau, plutôt que de lutter contre le langage et ses spécificités.
En ce qui concerne la question "Quand lire ce livre ?", vous devriez acquerir ce livre des qu’un projet Java se presente à vous. C’est le livre à acheter quand vous vous dites « je sais qu’il existe une façon de résoudre ce problème, mais je me demande si c’est la bonne façon ».
Le livre est structuré en 78 articles, divisés en 10 sections, incluant “Classes et Interfaces”, “Generiques”, “Enums et Annotations”, “Exceptions”, “Concurrence” et bien d'autres. Chaque article prend un sujet précis et présente les différents arguments pour une solution et compare les solutions possibles et pourquoi les mauvaises solutions ne devraient pas être retenues. A titre d’exemple, dans la rubrique « Classes et Interfaces », on retrouve les articles comme « Preferer la composition à l’heritage », « Préférer les interfaces aux classes abstraites ». Chaque article présente une serie d’arguments précis et concis avec des examples courts et souvent presentation de certains cas ou la règle ne s’appliquerait pas et ou on pourrait envisager une exception. Tout cela rend le livre très facile a lire, du aux chapitres courts et illustrés et à la presentation globale de Joshua Bloch qui est claire et précise. Chaque article peut etre comparé à un article de blog, facilement assimilé dans un temps très court, ce qui permet de lire le livre article par article au rythme que l’on souhaite.
Il est important de noter que chaque point est illustré avec des bouts de code pertinents, et même parfois certains points référencent d’autres points pour une comprehension plus globale. Prenons par exemple le point numero 8 : "Toujours surcharger la methode hashcode quand vous decidez de surcharger la methode equals" explique les principes de l’identité de chaque objet, principes essentiels a la comprehension de toutes les applications, y compris les plus simples. Joshua Bloch ne donne pas seulement une explication mais détaille les differents problèmes qui pourraient arriver si la règle n’était pas respectée.
En plus de fournir cet ensemble de techniques, Bloch discute avec un avis objectif les pour et les contre de chaque choix, en expliquant les raisons justifiant chaque choix et non seulement la règle. Cela permet pour le développeur de comprendre les mécanismes du langage Java plus en profondeur et de la programmation orienté objet en général. Cela explique pourquoi les développeurs Java sont si unanimes à propos de ce livre. C’est comme si des années entières d’experience de programmation Java etaient transmises à travers un seul livre.
Pour quelqu’un de débutant utilisant ce livre afin de monter son niveau d’un cran, il est possible que dans un premier temps de nombreuses techniques paraissent légerement trop compliquées, ou que peut-être certains avantages d’une solution par rapport à une autre ne paraissent pas clairs. Cependant, avec le temps et l’amélioration des techniques de programmation, ainsi qu'avec l'expérience emmagasinée, il est très probable que le lecteur revienne sur ce livre encore et encore, chaque chapitre devenant plus clair et évident.
Ce livre est un classique; il continuera de satisfaire un besoin important, améliorer le niveau de tout développeur Java débutant et confirmé, et ce, tant que le langage Java restera d’actualité.