Clean blog

Mon voyage littéraire

Quand on est passionné par un sujet, on a toujours envie d’apprendre.

Bien que les livres soient une source de connaissance impressionnante, certains peuvent devenir rapidement obsolètes (framework ou techno dépassé par exemple). D’autres peuvent être difficiles à lire ou comprendre.

Comment s’y retrouver au milieu de cet océan ?

Voici l’histoire de mon voyage littéraire.


Avant de commencer ce voyage, présentons les différents types de livres :

  • les livres techniques
  • les livres conceptuels
  • les livres comportementaux

Les livres techniques

Comme leur nom l’indique, ces livres parlent de technique. Ils peuvent rapidement devenir obsolètes si le sujet en question a évolué depuis la publication.

Dans cette catégorie on va retrouver les livres traitant d’un langage ou d’une technologie.

Bien qu’ils soient utiles pour progresser sur un sujet en particulier, ils restent ancrés à leur date d’écriture.

Les livres conceptuels

Contrairement aux livres techniques, ces livres vont traiter de concepts pouvant être appliqués à différents contextes.

On peut prendre comme exemple le livre Design Patterns - GoF qui peut s’appliquer à différents langages et qui reste toujours d’actualité.

Les livres comportementaux

Enfin, les livres comportementaux ne traitent ni de technique ni de concept. Ils vont parler de posture et d’état d’esprit.

Cette catégorie regroupe les livres qui parlent d’agilité ou de software craft par exemple.


Les livres que je recommande

Il existe des livres qui changent votre manière de voir les choses, d’autres qui confirment vos convictions.

La liste ci-dessous regroupe les livres qui ont défini ma manière d’être et de faire en tant que développeur.

Clean Code - R. Martin

Le livre par lequel tout a commencé.

Clean Code

En lisant ce livre je me suis rendu compte qu’un univers s’ouvrait à moi.

Ma manière d’appréhender l’écriture du code a été complètement remise en question. Le fond et la forme sont aussi importants.

It is not enough for code to work. - R. Martin

Truth can only be found in one place: the code. - R. Martin

Ce livre explique tous les concepts qui définissent le clean code.

C’est une très belle introduction dans ce monde qui parait simple mais qui est si complexe à maitriser.

The Pragmatic Programmer - A. Hunt et D. Thomas

Si je devais choisir LE livre à lire, ce serait celui-là !

The pragmatic Programmer

Comme je le disais plus haut, il y a des livres qui confirment vos convictions. L’univers ouvert grâce à la lecture de Clean Code s’est confirmé grâce ce livre.

Bien qu’il ait 20 ans, ses concepts sont toujours d’actualité.

On y parle entre autre de :

  • DRY (don’t repeat yourself)
  • Broken window
  • Découplage
  • Naming
  • Refactoring
  • Tests
  • Outils

Les sujets couverts sont larges et très pertinants.

You Can’t Write Perfect Software. Did that hurt? It shouldn’t. Accept it as an axiom of life. Embrace it. Celebrate it. Because perfect software doesn’t exist. No one in the brief history of computing has ever written a piece of perfect software. It’s unlikely that you’ll be the first. And unless you accept this as a fact, you’ll end up wasting time and energy chasing an impossible dream. - A. Hunt

Names are deeply meaningful to your brain, and misleading names add chaos to your code. - A. Hunt

LE livre indispensable pour tout développeur.

Head First Design Patterns - E. Robson & E. Freeman

Si les deux précédents livres faisaient partis de la catégorie des livres comportementaux, celui-ci est conceptuel.

Design Patterns

Quand j’ai voulu apprendre les design patterns existants, j’ai commencé par le maître en la matière : le livre du Gang of Four.

Je l’ai très vite trouvé difficile à lire, presque imbuvable. Les exemples en c++ n’étaient pas nombreux et difficiles à comprendre.

Je me suis rapidement tourné vers ce livre qui est son parfait opposé.

Les exemples sont nombreux et bien amenés. Le livre étant facile à lire, on comprend facilement les concepts.

We’d like to keep things flexible - E. Freeman

La flexibilité est la clé d’un logiciel qui peut évoluer sans devenir difficile à maintenir.

The Sofwtare Craftsman - S. Mancuso

The Sofwtare Craftsman

J’adhère complétement à l’avis de l’auteur sur la posture que doit avoir un professionnel du développement.

Si je devais ressortir un mot de ce livre, c’est la passion.

Grâce à elle, on est constamment en train de s’améliorer.

Grâce à elle, on est fier de délivrer du code de qualité.

Above all, software craftsmen are professionals who care about and respect their customers. S. Mancuso

It is easy to say that a piece of code is badly written. It is easy to complain or even laugh. But the question is: are you good enough to make it better? S. Mancuso

C’est tout ?

Non le voyage ne fait que commencer !

J’ai indiqué les 4 livres que j’ai trouvé indispensables mais il y en a tellement à lire !

Voici la liste des livres que je recommande :

  • Software Craft : les livres français sont rares ! Celui là est très bien écrit et reprend tous les concepts du craft en les expliquant parfaitement.

  • Working Effectively with Legacy Code : c’est jamais fun de travailler avec du code legacy. Ce livre présente les manières de s’en sortir sans tout casser.

  • Test Driven Development by example : LE livre par lequel cette pratique a débuté. A lire pour comprendre sa puissance.

  • Refactoring Improving the Design of Existing Code : la bible contenant toutes les techniques pour refactorer sans risque.

Et les livres techniques dans tout ça ?

Vous l’aurez surement remarqué, je n’ai pas indiqué de livre technique dans cette liste.

Ce n’est pas un oubli de ma part !

Du fait de leur obsolescence, ces livres sont rarement ceux que je retiens.