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 :

question pratique sur les fonctions 'inutiles'


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 136
    Par défaut question pratique sur les fonctions 'inutiles'
    Bonjour,

    Je voudrais avoir un avis sur des fonctions membres d'une classe.

    Faut-il créer (et garder) des fonctions dont on ne se sert jamais à coup sûr dans les conditions du programme créé mais qui pourrait éventuellement (mais peu probable) servir un jour, dans une amélioration du programme en question? Je veux dire qu'on peut facilement écrire ou réécrire une fonction auparavant inutile pour des besoins nouveaux (le principe de l'objet il me semble) mais est-ce une bonne chose pour le programme au final ou est-ce également une mauvaise habitude pour des programmes plus gros et compliqués (pour l'instant je suis plutôt mauvais^^)?

    Dans le même ordre d'idée, vaut-il mieux ajouter des données en apparence inutiles dans une classe ou vaut-il mieux les enlever?

    Merci d'avance pour vos réponses.

  2. #2
    Membre émérite
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Par défaut
    Ta question n'est pas propre qu'au C++, et je te conseille de la poser dans la rubrique conception.

    De mon avis, ça dépend fortement de ta politique de gestion des sources, des exigences de ta boîte si c'est pour le milieu professionnel,... Je ne pense pas qu'il y ait de bonne ou mauvaise réponse à ta question

  3. #3
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Tant que ton programme n'a pas été distributé, tu fais strictement ce que tu veux, mais, l'idéal reste quand même de fournir les fonctions qui sont nécessaires, et de ne pas surcharger avec des fonctions inutiles...

    Par contre, une fois qu'un programme a été distribué (et c'est encore plus vrai avec les bibliothèques), toute fonction utilisée dans une version antérieure distribuée devrait rester présente dans la nouvelle version, même si elle est devenue "inutile"
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Salut,

    A mon avis il faut retirer tout ce qui est inutile dans la mesure du possible, et c'est en general toujours possible bien qu'en effet moins facile dans le cas d'une diffusion (a un client, au public, etc..).
    C'est encore mieux de ne pas ajouter quelque chose qui ne sert a rien (YAGNI).

    MAT.

  5. #5
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Mais il est vrai qu'au fur et à mesure de l'évolution, on peut se rendre compte que certaines méthodes deviennent obsolètes...

    Dans le cadre d'une application complète, on peut envisager de les supprimer, mais, dans le cadre d'une bibliothèque, c'est une question de compatibilité que de les laisser, si, du moins, elle a déjà été diffusée...
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Par défaut
    Je conseillerais de t'en tenir au strict nécessaire, et de consacrer tes ressources à vérifier que ce que tu développes est correct, efficace et bien écrit.

    David.
    --

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Heu,... c'est bien joli de donner des avis comme ça, mais faudrait recadrer un peu de quoi on parle vous ne pensez pas?
    J'ai beau lire tout le thread, je ne vois toujours pas si on parle à l'échelle d'une classe ou d'un programme.
    Je m'explique:
    - à l'échelle de la classe: méthode proposant une fonctionnalité déja disponible dans une autre méthode ou par combinaison de plusieurs méthodes (exemple: la méthode at() et l'opérateur [] de std::vector sont redondants, il est toujours possible d'utiliser les itérateurs)
    - à l'échelle du programme: méthode qui est indispensable pour pouvoir utiliser la classe de manière exhaustive mais qui, dans un programme donné, n'est pas utilisée (exemple: fstream qui fournit la possibilité d'ouvrir un fichier en lecture, on pourrait très bien concevoir un programme qui n'utilise que des fichiers en écriture, ou pas du tout évidemment)
    Oui, je me rends bien compte que pratiquement tout le monde avait compris la première possibilité Mais je suis plus enclin à penser que Plomeg parlait de la deuxième...

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

Discussions similaires

  1. Question Pratique sur les mises a jour
    Par geof dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/11/2007, 17h09
  2. Réponses: 3
    Dernier message: 23/08/2007, 00h39
  3. [Dates] Question sur les fonctions Date
    Par cerede2000 dans le forum Langage
    Réponses: 2
    Dernier message: 28/10/2006, 17h26
  4. Question sur les fonctions "send()" et "recv(
    Par damien99 dans le forum MFC
    Réponses: 6
    Dernier message: 10/02/2006, 20h47
  5. Réponses: 5
    Dernier message: 24/04/2005, 04h09

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