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

C# Discussion :

Avis sur structure de code


Sujet :

C#

  1. #1
    Membre régulier
    Inscrit en
    Août 2009
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 149
    Points : 89
    Points
    89
    Par défaut Avis sur structure de code
    Salut à tous,
    J'ai un soucis avec un code écrit par un ami et je voudrais avoir votre avis sur le sujet.
    Dans son développement (en c#), il à une méthode mA implémentée dans une classe A qui appelle (à l'intérieure de la méthode) une méthode mB implémentée dans une classe B. Cette méthode mB appelle à son tour une méthode mC implémentée dans un troisième classe C, la méthode mC appelle aussi une classe mD implémentée dans une classe D (ouf!! enfin).
    A part le fait que cela complique la maintenance du code, cette pratique influencera t-elle la rapidité d'exécution de son application ? vue que cette application doit tourner 24h/24 (service Windows).
    Merci de vos réponses.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    un appel doit perdre quelques pouillèmes de microseconde
    donc non

    quant à la complication, moi je préfère voir 4 méthodes qui font un truc distinct et simple qu'une grosse méthode fourre tout
    mais bon c'est à voir selon le code contenu ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre régulier
    Inscrit en
    Août 2009
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 149
    Points : 89
    Points
    89
    Par défaut
    Merci de ta réponse.
    Je suis entièrement d'avis avec toi sur le fait qu'il faut morceler le code mais c'est un peu trop à mon avis, non ?

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 93
    Points : 127
    Points
    127
    Par défaut
    Cela dépend du contexte, tant qu'il respecte le SRP (définition : https://en.wikipedia.org/wiki/Single...lity_principle).
    Dépend si c'est du static, si y a de l'instance, après peut-être que certaines méthodes pourraient être mises dans la même classe. Après si c'est pour se retrouver avec 40 propriétés non merci.
    Plus on divise le code meilleure la gestion des bug est. Après dépend aussi si les méthodes font 5 lignes ou 40 lignes, pour pas avoir un fichier trop gros on essaye de les diviser.

  5. #5
    Membre régulier
    Inscrit en
    Août 2009
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 149
    Points : 89
    Points
    89
    Par défaut
    toutes ces classes et méthodes sont static. Cela pose-t-il un problème ??

  6. #6
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    un appel doit perdre quelques pouillèmes de microseconde
    En fait moins de 5 ns.

    Citation Envoyé par devvanjier Voir le message
    Je suis entièrement d'avis avec toi sur le fait qu'il faut morceler le code mais c'est un peu trop à mon avis, non ?
    La seule question est de savoir si le découpage du code est logique et si tu peux proposer une meilleure alternative.

    En général il est bon de découper le problème en sous-problèmes. Ça ne veut pas dire pour autant multiplier des micro-classes et donc multiplier la plomberie (repasser en argument ce qui était stocké sur la classe appelante, etc).

    Le SRP et autres principes fournissent une bonne grille de lecture au plus haut niveau du code. Mais à plus bas niveau il est parfois plus pragmatique de regarder la taille de la classe : si celle-ci excède quelques dizaines de lignes il est bon de se demander si l'on peut efficacement découper. En-dessous c'est souvent couper les cheveux en quatre et produire un code "en grains de riz".

    Quant aux fonctions il est préférable de les garder en-dessous de dix lignes.

  7. #7
    Membre régulier
    Inscrit en
    Août 2009
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 149
    Points : 89
    Points
    89
    Par défaut
    Merci à vous d'avoir éclairé ma lanterne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Avoir votre avis sur ça
    Par zpico dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 06/01/2014, 09h36
  2. [AC-2007] Aimerais avoir votre avis
    Par java250r dans le forum Access
    Réponses: 2
    Dernier message: 23/05/2012, 14h42
  3. [throrinstudio.com][Zend] Pourrais-je avoir votre avis?
    Par throrin19 dans le forum Mon site
    Réponses: 4
    Dernier message: 04/11/2009, 15h49
  4. Réponses: 3
    Dernier message: 25/08/2006, 18h06
  5. J'ai développé 2 softs en VB.net, puis-je avoir votre avis ?
    Par Thierry_IRE dans le forum Windows Forms
    Réponses: 2
    Dernier message: 04/04/2006, 21h54

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