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

Autres Discussion :

[Demande d'avis] Livre 'Coder proprement' conseille de réduire le nombre d'arguments


Sujet :

Autres

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 312
    Points : 411
    Points
    411
    Par défaut [Demande d'avis] Livre 'Coder proprement' conseille de réduire le nombre d'arguments
    Bonjour,

    Suite à ma relecture du livre 'coder proprement'
    (http://www.pearson.fr/livre/?GCOI=27440100643800)

    J'ai été interpellé par un passage et je viens ici vous demander votre avis:

    L'auteur explique clairement que l'idéal est d'avoir 0 arguments dans les fonctions, 1 ou 2 si on ne peut pas faire autrement, 3 doit être exceptionnel et > 3 est une erreur d'archi/conception.

    Même si je comprend ses arguments, j'ai du mal à percevoir le gros avantage qu'apporterait une refacto dans ce sens, aussi, dans mes divers projets, c'est une règle qui n'est rarement mise en avant.

    Voici donc mes questions :

    - Que pensez vous de cette 'bonne pratique' ?
    - L'avez vous déjà vue respectée dans un projet, et quels en étaient les bénéfices ?


    En espérant être sur le bon forum..

    Merci d'avance,

  2. #2
    Membre émérite
    Inscrit en
    Janvier 2011
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Janvier 2011
    Messages : 805
    Points : 2 918
    Points
    2 918
    Par défaut
    Je vois 2 mauvaises raisons pour lesquelles on pourrait être tenté de passer beaucoup de paramètres à une méthode :

    • On essaie de gérer des combinaisons de plein de cas différents à l'intérieur de la méthode. Dans ce cas les paramètres sont un mélange de booléens et de données servant aux différents cas. Le problème, c'est qu'on se retrouve avec une forêt de if qui est un cauchemar à maintenir et rien de réutilisable ailleurs.

      => A la place, déporter les différents comportements dans des classes à eux en se reposant sur le polymorphisme et l'injection de dépendance et/ou des patterns comme Stratégie et préférer la composition au passage de multiples paramètres à une méthode. Cela veut aussi peut-être dire que la méthode en question a trop de responsabilités et devrait être éclatée.



    • On passe en paramètre de la méthode plein de données sans se rendre compte qu'elles forment une structure de données cohérente qui ferait un bon candidat pour être une entité en soi.

      => en faire une classe à part entière et passer en paramètre de la méthode une instance de cette classe.


    Il y a sans doute aussi de temps en temps de bonnes raisons d'avoir une méthode avec plein d'arguments (construction d'un DTO ou d'un wrapper qui reprend tous les membres de la classe d'origine ?...), mais je n'ai pas souvent rencontré ce cas de figure.

Discussions similaires

  1. [CV] Demande d'avis, conseils
    Par Dia_FR dans le forum CV
    Réponses: 7
    Dernier message: 25/01/2017, 19h28
  2. [Débutant] Demande d'avis et de conseils
    Par projetM dans le forum Emploi
    Réponses: 8
    Dernier message: 02/11/2009, 15h13
  3. Demande d'Avis et conseils
    Par laguiff dans le forum Ordinateurs
    Réponses: 4
    Dernier message: 20/06/2006, 08h54

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