IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

Critique de l'ouvrage "Coder proprement" de Robert C. Martin


Sujet :

Langages de programmation

  1. #1
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut Critique de l'ouvrage "Coder proprement" de Robert C. Martin
    05/08/2010

    Citation Envoyé par benwit Voir le message
    Et de trois : http://conception.developpez.com/liv...L9782744023279

    Et vous qu'est-ce que vous en pensez de sa règle J1 ?

    Pour moi :
    quote]il manque de cohérence avec sa règle J1 sur l'importation des classes dans Java. D'une part, il dit qu'une longue liste d'importation effraie le lecteur mais c'est oublier que les chers IDE modernes (qu'il invoque quand ça l'arrange) les cachent automatiquement. D'autre part, dire que le caractère générique crée moins de dépendance que l'import spécifique d'une classe, je vois vraiment pas en quoi ???
    [/QUOTE]

    Nouvelle critique parue :
    Coder proprement de Robert C. Martin

    Je ne vois pas ce que l'on peut reprocher à ce livre. Véritable guide de la programmation propre, il commence par justifier au lecteur l'utilité d'un code propre. Ensuite, il explique ce qu'est un code propre, avant de démontrer comment il est possible de rendre propre un code qui ne l'est pas.
    [...]
    C'est donc un livre à mettre en toutes les mains, du plus jeune débutant afin qu'il prenne de bonnes habitudes dès le début, au plus expérimenté qui redécouvrira une autre manière de coder : plus simple, plus claire, plus durable.
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Seconde critique du livre : http://conception.developpez.com/liv...L9782744023279

    Un livre tout simplement indispensable pour apprendre à coder proprement. En plus de nous apprendre à coder proprement, il nous apprend également pourquoi il faut le faire, ce qui est indispensable pour motiver quelqu'un à programmer proprement. Ce livre m'a beaucoup appris sur la bonne manière de coder. Tous les éléments théoriques du livre sont mis en pratique via des exemples concrets de code. En plus de cela, un chapitre entier est consacré au remaniement d'une classe et un autre au remaniement d'un petit programme.

    [...]
    Un livre, tout simplement génial, que je conseille à tout un chacun

  3. #3
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    171
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 171
    Points : 278
    Points
    278
    Par défaut
    Excellent ouvrage ! Même s'il adopte un point de vue effectivement assez radical mais bien adapté à un langage "moderne" comme Java ou C#, il entraîne avant tout à prendre du recul sur le code que l'on écrit. C'est donc d'abord une méthodologie profitable au plus grand nombre, qui tord le cou à certaines habitudes ou en explique l'origine. Nombreux exemples.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 33
    Points : 41
    Points
    41
    Par défaut Un délice...
    Ce livre est un véritable régal, et tout est dit dans le titre : il s'agit d'apprendre à coder proprement.

    La lecture coule en soi, le style d'écriture est propre, et les notions abordées sont plus que dignes d'intérêt.

    A recommender à tous, surtout aux débutants qui auront ainsi une très bonne base question qualité de code.

  6. #6
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Je ne l'ai pas lu, mais il parait qu'il est moins intéressant qu'un autre de ces ouvrages traitant aussi du même sujet, en l'occurrence «Agile Software Development: Principles, Patterns, and Practices». Cela dit, je n'ai pas regardé si ce livre a été traduit.

  7. #7
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Et de trois : http://conception.developpez.com/liv...L9782744023279

    Et vous qu'est-ce que vous en pensez de sa règle J1 ?

    Pour moi :
    il manque de cohérence avec sa règle J1 sur l'importation des classes dans Java. D'une part, il dit qu'une longue liste d'importation effraie le lecteur mais c'est oublier que les chers IDE modernes (qu'il invoque quand ça l'arrange) les cachent automatiquement. D'autre part, dire que le caractère générique crée moins de dépendance que l'import spécifique d'une classe, je vois vraiment pas en quoi ???

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

  8. #8
    Membre averti Avatar de vintz72
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 154
    Points : 316
    Points
    316
    Par défaut
    Citation Envoyé par benwit Voir le message
    Et de trois : http://conception.developpez.com/liv...L9782744023279

    Et vous qu'est-ce que vous en pensez de sa règle J1 ?

    Pour moi :
    Euh... c'est quoi exactement sa règle J1 ?
    Pour les imports, c'est clair qu'avec un IDE moderne, je trouve préférable de lui laisser faire son boulot. Ca évite même des désagréments en cas de recherche textuel par exemple.

  9. #9
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    J1 dit qu'il faut mieux faire des importations génériques (avec *) que spécifiques.
    Exemple :
    préféré un import java.io.*
    à import java.io.File; import java.io.Inputstream, ...

    Je dis que si les imports spécifiques prennent effectivement plus de ligne, c'est masqué avec avec les IDE moderne (argument que je lui renvoi puisqu'il les cites lui-même)
    Mais concernant la dépendance, je ne vois pas.
    Il a l'air de dire qu'avec l'import * il y a moins de couplage.
    Je ne vois pas puisque dans les deux cas, si tu as besoin de l'import, c'est que tu utilises la classe. Dans les deux cas, si elle disparait du package, ça ne marchera plus !
    Je préfère le import explicite car tu vois précisément les références.

    Si vous comprenez ce qu'il veut dire, merci de m'expliquer.
    Il faut que je regarde une version originale pour vérifier si cela a bien été traduit.

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

  10. #10
    cedrix57
    Invité(e)
    Par défaut
    Pour ceux qui voudrait avoir un aperçut de ce livre, il y a quelques pages en aperçut dans Google Book.
    Moi personnellement ça m'a vraiment donné envi de l'acheter, je vais le commander ce weekend.

  11. #11
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Personnellement, je déteste les import génériques et c'est effectivement quelque chose avec lequel je n'étais pas d'accord lorsque j'ai lu le livre.

    Je trouve très bien que les imports spécififiques prennent beaucoup de place, ça permet de se rendre compte qu'une classe a besoin de beaucoup d'autres (trop ? ) classes pour fonctionner.

    Pour ce qui est du couplage diminué, je ne vois pas non plus.

  12. #12
    Membre averti

    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 68
    Points : 395
    Points
    395
    Par défaut
    (benwit) En conclusion, ce livre est à mettre entre les mains de tous débutants, cela ne fait aucun doute. Pour les développeurs plus aguerris, c'est déjà plus discutable, je leur conseillerai cependant pour découvrir l'argumentaire de cette école de pensée ou pour soulager leur névrose.
    Je ne suis pas d'accord avec la cible du livre décrite ici.

    Je pense qu'il faut une certaine séniorité dans le métier pour pouvoir prendre du recul par rapport aux principes énoncés. Autant les arguments m'ont parut souvent pertinents dans ce livre, autant les exemples ne sont pas toujours bons, et en particulier, en ce qui concerne l'étude de cas (chapitre 15), j'ai trouvé que l'application des différents principes n'étaient pas toujours clairs et surtout l'utilité de cette application n'était pas forcément évidente.

    Et, pareillement à plusieurs ici, je suis contre les imports génériques (règle J1).

    <troll mode="on">En Scala, on peut définir des imports "semi-generique", avec des sortes de regexp, qui permettent de déclarer exactement ce que l'on veut avec un minimum de lignes</troll>

  13. #13
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    en même temps les imports générics, règle J1 ne s'appliquent pas à tous les langages.

    en effet, les directives d'imports/using dans les autres langages, portent généralement sur tout le package/namespace.
    en dotnet, il est préférable s'il n'y a pas de risque d'ambiguïté des noms, d'inclure un namespace, plutôt que de qualifier pleinement le type quand on l'utilise, sinon on nuit sévèrement à la lisibilité du code, surtout si le namespace fait 15km de long... cela va si on utilise des types System.String, mais plus du tout dès lors que l'on commence à nécessiter ce genre d'écriture... System.Collections.ObjectModel.ObservableCollection<System.String>
    Les IDE comme Visual Studio 2010 indique clairement le nom et types complet lorsque l'on passe la souris au dessus de la déclaration, donc inutile de rendre le code illisible.

    maintenant en java, où l'on peut spécifier, clairement le type importé, en haut avant le code dans la liste des imports, là il est évident qu'il vaut mieux faire des inclusions explicites.

    Ensuite pour ce qui est des dépendances... il a tout simplement fumé la moquette avant d'écrire son postulat... que tu fasse une inclusion spécifique ou une inclusion générique, cela ne change rien au niveau de dépendance de l'application.

  14. #14
    Invité
    Invité(e)
    Par défaut
    Je n'arrive pas à trouver de site web ou acheter ce livre, amazon est épuisé :s

  15. #15
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Points : 10
    Points
    10
    Par défaut
    J'ai fait des recherches car il m'interressait aussi:

    Tu peux l'acheter en PDF pour 32,30 € (trop cher à mon avis) sur le site de Pearson:
    http://www.pearson.fr/livre/?GCOI=27440100643800

    Sinon la version originale en PDF pour 14 $ (plus raisonnable) mais je ne sais pas s'il on peut tout de même l'acheter (blocage par pays)...
    https://memberservices.informit.com/...ner=53&cmd=add

    Sinon, le site slideshare.net le propose en ligne:
    "www.slideshare.net/MarwenMhamdi/coder-proprement"

    Bonne lecture ;-)

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 45
    Points : 39
    Points
    39
    Par défaut
    Livre génial

    La plupart des livres que je lis, je finis toujours par les revendre par la suite sur le marché de l'occasion.

    Mais celui-ci je le garde pour le ranger dans ma bibliothèque parmi les classiques comme Design Patterns du "Gang of four", ou les ouvrages de Stroustrup

Discussions similaires

  1. [FAQ] Comment coder/dé-coder en Quote-Printable
    Par Delbeke dans le forum Vos contributions VB6
    Réponses: 0
    Dernier message: 30/07/2008, 10h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo