/736x/14/35/8f/14358f44099aa4d82ffb1330daad098a--youtube-search.jpg Elegant Objects, le livre qui pique de Yegor Bugayenko | HadrienMP

HadrienMP

Elegant Objects, le livre qui pique de Yegor Bugayenko

11/04/2018

Le livre Elegant Objects Il y a quelques temps, je suis tombé sur le blog de Yegor Bugayenko. Son sujet d’écriture principal est la programmation orientée objet. Il y expose ses visions sur des problèmes classiques et ses solutions objet. En suivant une série de valeurs et de principes objets, il a développé un style de code particulier.

J’ai bien accroché à son blog. Il a des avis très tranchés, parfois je suis d’accord, parfois pas du tout.

Pour présenter sa vision de la programmation objet, il a sorti un livre : Elegant Objects (en deux volumes). Arolla a bien voulu le commander pour sa bibliothèque ! \o/

Mieux qu’un commentaire amazon je me suis dit que vous le présenter vous permettrai de vous faire une idée sur l’intéret (ou pas) de le lire.

Résumé / Spoiler

Pour les devs occupé.e.s

Si vous voulez un avant goût du livre, lisez les arti qui vous chantent sur son blog, le livre est une compilation de plusieurs articles un peu plus développés.

Le ton est polémique et les avis tranchés (c’est son style). Il y a de bons conseils, de moins bons (voire carrément mauvais xD). Son approche de l’objet est cohérente et justifiée.

Avec ses 223 pages, et un contenu aéré, le livre se lit très vite (j’ai mis une journée et je ne suis pas un gros lecteur). C’est une lecture intéressante, mais ce ne serait pas le livre que je conseillerais à un débutant.

Un peu plus sur le bonhomme

Contenu

Les chapitres sont organisés autour de la “vie” des objets. En effet, son fil rouge est la personnification de ceux-ci. Il y aborde entre autres les sujets suivants :

Ce que j’ai aimé

Conseils que je retiens

Ce que j’ai moins aimé

var names = 
  new Sorted( 
    new Unique( 
      new Capitalized( 
        new Replaced( 
          new FileNames( 
            new Directory("/var/users/*.xml")
          ), 
          "([^.]+)\\.xml", 
          "$1" 
        )
      )
    )
  )

En conclusion

Je ne pense pas que j’aimerais travailler sur une de ses bases de code. En particulier à cause des décorateurs, l’exemple de code ci-dessus m’est très difficilement compréhensible. Aussi, les concepts qu’il tire pour créer ses objets sont parfois un peu tirés par les cheveux (dans sa librairie de mail, il introduit des concepts d’enveloppes et de timbres qui, sans explications, sont difficiles à saisir).

Pour l’instant, c’est le seul exemple que j’ai d’un code pur objet. Il m’a fait reconsidérer ma compréhension de ce paradigme. J’y réfléchis à deux fois avant de faire un service maintenant.

Avec son approche, je vois des intérêts en terme de rangement du code et de compatibilité avec nos langages majoritaires. Cependant, certaines parties de son code ne me donnent vraiment pas envie. Donc je vais continuer à coder avec un mélange de procédural, d’objet et fonctionnel suivant ce qui me semble le plus pratique logique et maintenable. Le livre m’aura au moins permis d’avoir l’esprit clair sur le paradigme que je choisis.

Et pour vous, à quoi ressemble un code pur objet ?