Effective java

25 avril 2016

Effective Java - 2e édition

Acheter sur Amazon

Effective Java – Présentation

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.

A qui s’adresse 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 ».

Les chapitres d’Effective Java

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.

Effective Java : Notre Avis

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é.

Enrouler

Effective Java

  • 8/10
    Auteur / Editeur
  • 8.5/10
    Lecture facile
  • 9/10
    Exemples de code
  • 10/10
    Niveau de détail
  • 9/10
    Diversité des sujets

Points positifs

  • Extrêmement intéressent
  • Problèmes concrets
  • Réponses argumentées

Points négatifs

  • Compliqué pour un débutant
  • Morceaux de code parfois longs
  • On aimerait avoir plus de rubriques !

2 commentaires

  • Eric 26 avril 2016 à16 h 23 min

    Auteur / Editeur

    10

    Lecture facile

    10

    Exemples de code

    7

    Niveau de détail

    7

    Diversité des sujets

    7

    C’est l’un des meilleurs voir même le meilleur livre que j’ai lu de Java à ce jour. Bloch, qui a été impliqué dans le développement des dernières versions du langage Java et de sa spécification, n’enseigne pas comment écrire le code de Java, il enseigne comment écrire du BON code Java.
    Pour c’est de fait le livre qu’il faut absolument lire pour quelqu’un qui projette d’écrire plus qu’un petit peu de code Java. Mais pas seulement que pour ça, il est assez facile à lire et assez intéressant.
    J’ai apprécié la review que vous avez fait ci-dessus, mais je vais ajouter deux choses.
    Premièrement, assurez-vous que vous recevez l’édition la plus récente du livre puisqu’il y a eu des changements substantiels. Deuxièmement, ce n’est pas le livre d’un débutant – vous ne trouverez pas de « HelloWorld » dans celui-ci. Je pense qu’il faut apprendre les principes fondamentaux de la programmation d’abord.

  • John 28 avril 2016 à9 h 41 min

    Auteur / Editeur

    9

    Lecture facile

    9

    Exemples de code

    7

    Niveau de détail

    8

    Diversité des sujets

    8

    Tout à fait d’accord avec cet article ! Si vous programmez Java, vous devez lire ce livre.
    Vous n’apprendrez pas de nouvelles syntaxes, des astuces de programmation, des bibliothèque ou framework, mais vous serez un bien meilleur programmeur à la suite de la lecture de ce livre.
    C’est de loin ma référence sur Java. Je n’approuve pas 100 % du contenu ce livre, mais Joshua Bloch a des opinions fortes, claires et il en parle bien. Comme le dit Eric dans un commentaire plus haut, il est l’un des contributeurs du langage Java. Ce livre est si bon, je crois que vous devriez le lire même si vous n’êtes pas un Dev’ Java, mais un développeur C#, C ++, ou n’importe quel autre langage orienté objet. Même le Rubis et les programmeurs de Python apprendront probablement beaucoup de ce livre.
    Personnellement, j’ai l’ultime conviction qu’un bon développeur est celui qui maîtrise aussi les autres langages que son langage de prédilection, afin de savoir ce qui se fait à côté 🙂

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *