Introduction: Cette partie est un résumé des “tips” dans le livre Effective Java – Programming Language Guide de Joshua Bloch que je trouve utiles pour mon travail de développeur. A préciser, même si le livre de Joshua Bloch est vraiment excellent et je le conseille pour tous les développeurs Java, je n’applique pratiquement pas tous les conseils listés ici dans toutes les situations. Il existe toujours des raisons (propre à chaque développeur et chaque situation) pour mettre en question l’application de façon mécanique un ou des conseils ci-dessous. J’invite tous les gens qui s’intéresse de participer à la discussion autour de ce livre et de partager leurs expériences

Creating and Destroying Objects

  • Item 1: Consider providing static factory methods instead of constructors
  • Item 2: Enforce the singleton property with a private constructor
  • Item 3: Enforce noninstantiability with a private constructor
  • Item 4: Avoid creating duplicate objects
  • Item 5: Eliminate obsolete object references

Methods Common to All Objects

  • Item 7: Obey the general contract when overriding equals
  • Item 8: Always override hashCode when override equals
  • Item 9: Always override toString
  • Item 10: Override clone jusdiciously
  • Item 11: Consider implementing Comparable

Classes and Interfaces

  • Item 12: Minimize the accessibility of classes and members
  • Item 13: Favor immutability
  • Item 14: Favor composition over inheritance
  • Item 15: Design and document for inheritance or else prohibit it
  • Item 16: Prefer interfaces to abstract classes
  • Item 17: Use interfaces only to define types
  • Item 18: Favor static member classes over nonstatic

Methods

  • Item 23: Check parameters for validity
  • Item 24: Make defensive copies when needed
  • Item 25: Design method signatures carefully
  • Item 26: Use overloading judiciously
  • Item 27: Return zero-length arrays, not nulls
  • Item 28: Write doc comments for all exposed API elements

General Programming

  • Item 29: Minimize the scope of local variables
  • Item 30: Know and use the libraries
  • Item 31: Avoid float and double if exact answers are required
  • Item 32: Avoid strings when other types are more appropriate
  • Item 33: Beware the performance of string concatenation
  • Item 34: Refer to objects by their interfaces
  • Item 35: Prefer interfaces to reflection
  • Item 37: Optimize judiciously
  • Item 38: Adhere to generally accepted naming conventions

Exceptions

  • Item 39: Use exceptions only for exceptional conditions
  • Item 40: Use checked exceptions for recoverable conditions and run-time exceptions for programming errors
  • Item 41: Avoid unnecessary use of checked exceptions
  • Item 42: Favor the use of standard exceptions
  • Item 43: Throw exceptions appropriate to the abstraction
  • Item 44: Document all exceptions thrown by each method
  • Item 45: Include failure-capture information in detail messages
  • Item 46: Strive for failure atomicity
  • Item 47: Don’t ignore exceptions
Advertisements