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 :

Gestionnaire de versions interne


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 32
    Points : 25
    Points
    25
    Par défaut Gestionnaire de versions interne
    Bonjour,

    Une question difficile à exprimer mais qui me pose problème sur mon projet actuel :

    Je souhaite réaliser un système de version au sein de mon projet en fonction de dates. Je m'explique :

    Admettons qu'une méthode, située n'importe où au sein du projet ne soit plus valable à un moment donné et remplacée par une autre. Cependant, cette méthode serait toujours valable le jour où on souhaiterait l'utiliser en se reportant dans le passé.

    Un cas concret (et simplifié) :
    On calcule le salaire d'une personne dans une entreprise à une certaine date. Un jour, on se rends compte qu'une loi à changé et qu'a partir d'une certaine date, il va falloir prendre en compte d'autres paramètres mais que le jour où on voudra recalculer le salaire de cette personne, les anciens paramètres devront toujours exister (par exemple si on se rends compte que ce salarié à été mal calculé, il faudra le recalculer mais avec les anciennes lois).

    Dans mon cas, le projet existe déjà depuis un certain temps. Je trouve personnellement que ce projet a été mal réalisé mais il est tellement gros que je ne peux me permettre de tout recommencer.

    Est-ce que quelqu'un connait une solution pour me permettre de créer par exemple, un contrôleur universel au sein du projet pour superviser les méthodes en fonction d'une date de mise en service de cette méthode et d'une date d'expiration ?

    Biensur, il existerai un moyen simple, en écrivant en dur dans chaque méthode, un if tout bête en testant la date, mais le projet est tellement gros, que ça demanderai un travail énorme et un risque d'erreur omniprésent, chose que je ne peux me permettre. Donc, évitez cette proposition, merci !)

    Je suis désolée que ma question soit si complexe mais le projet sur lequel je suis est déjà bien compliqué à la base et en plus, c'est du C# qui a été réalisé quasiment en intégralité en programmation structurée (sans concept objet)

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    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 175
    Points : 25 116
    Points
    25 116
    Par défaut
    juste par curiosité tu bosses où ?

    un design pattern factory devrait aller
    c'est à dire au lieu d'instancier directement une classe, on appelle un constructeur de classe qui lui retourne une instance, le factory peut alors testeer la date, et après y a le choix entre une interface et plusieurs classes ou une classe overridable de partout et un héritage

    enfin de toute facon, si tu es sur un programme codé n'importe comment, la seule solution est de tout réécrire, parce que si vous etes pas sur des concepts objets, c'est pas évident à modifier

    le but dans le développement c'est de penser avant de coder, ou alors de coder de manière assez ouverte pour anticiper les modifications ...

  3. #3
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    un design pattern factory devrait aller
    c'est à dire au lieu d'instancier directement une classe, on appelle un constructeur de classe qui lui retourne une instance, le factory peut alors testeer la date, et après y a le choix entre une interface et plusieurs classes ou une classe overridable de partout et un héritage
    +1
    J'aurai même exporté tout ça vers des dlls séparés et les aurai utilisé sous forme de plugin. Comme cela elles sont suffisamment indépendante pour ne pas avoir besoin d'une connaissance globale du projet pour corriger une erreur par exemple (ça se limiterai à l'étude d'un code d'une centaine de ligne à tout casser, ce qui doit être moins que la taille du programme) et leur modification n'entrainera pas la recompilation de tout le programme.
    Sinon c'est sur que cette méthode prendra du temps, mais après tu sera tranquilles pour un moment.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 32
    Points : 25
    Points
    25
    Par défaut
    je ne peux pas vraiment dire où je travaille... Je ne voudrais pas m'attirer des problèmes.

    Disons que je travaille en tant qu'analyste dans une division programmation d'une très grande entreprise.
    Je me trouve au sein d'une équipe de bras cassés, sur un projet de création d'un logiciel de calcul de salaire pour les nombreux employés de l'entreprise.

    Le projet date de 4 ans environ, je suis arrivée en novembre dernier. Le projet ne contient aucun diagrammes UML, aucune étude. Il a été commencé et presque entièrement codé par un débutant qui n'a absolument pas commenté son code.

    Je commence à assimiler la plupart des classes (90% en static. La seule partie correctement codée à été faite par une société extérieure qui leur à donné un coup de main pendant une courte période. De cette façon, le moteur du projet est de qualité.) et méthodes mais c'est assez dur, je l'avoue ^^ D'autant plus que je n'ai pas non plus un passé de 10 ans de programmation derrière moi (un bras cassé remplace un bras cassé).
    La seule différence, c'est que j'ai une vraie motivation et que je ne veux pas continuer à mettre des pansements sur un projet qui finira par devenir complètement imbuvable.. Je cherche des solutions dans cette ambiance stressante pour tout le monde (retards, bugs à corriger, nécessité de resultat pour les chefs qui n'ont jamais fait de programmation de leur vie, etc...) et profite justement d'être là depuis peu (on ne me demande pas grand chose pour l'instant)... Biensur, si je leur explique qu'il faut tout recommencer, vu l'argent dépensé (ça se mesure en milliers de k€), je doute qu'on me fasse un large sourire.


    Pour faire simple, le projet véhicule une énorme variable, un genre de contexte qui passe dans la plupart des méthodes et qui est traité de façon à donner au final quelque chose qui permet de faire une fiche de salaire et payer l'employé.
    Lorsque je suis arrivée, j'ai vu que le plus gros problème sera justement lorsqu'il faudra faire des versions des méthodes en fonction des dates puisque les lois évoluent...

    Je n'ai jamais utilisé de design pattern factory mais l'idée de parait bonne. Je vais le comprendre et apprendre à m'en servir.

    Merci pour ce conseil précieux.

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    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 175
    Points : 25 116
    Points
    25 116
    Par défaut
    bonne chance alors ^^

Discussions similaires

  1. Gestionnaire des Versions
    Par donquichotte dans le forum Choisir un environnement de développement
    Réponses: 1
    Dernier message: 22/02/2007, 19h36
  2. Quel EDI ? avec quel gestionnaire de version ?
    Par shadeoner dans le forum Zend
    Réponses: 9
    Dernier message: 03/01/2007, 03h59
  3. besoin d'info sur : gestionnaire de version
    Par gretch dans le forum Autres Logiciels
    Réponses: 10
    Dernier message: 13/09/2006, 12h53
  4. [Outils] Un gestionnaire de versions pour BDD ?
    Par davcha dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 24/03/2006, 19h32
  5. Quel gestionnaire de version choisir ?
    Par hugo123 dans le forum SCM
    Réponses: 1
    Dernier message: 28/12/2004, 21h41

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