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

Débats sur le développement - Le Best Of Discussion :

La refactorisation est-elle réellement utile ?


Sujet :

Débats sur le développement - Le Best Of

  1. #41
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 218
    Points : 1 437
    Points
    1 437
    Par défaut
    Quelle est la différence entre refactoring et refonte?

    Ce que l'on s'apprête à faire : le projet a été écrit avec du PHP pur sans framework (de plus tout le code avait été écrit dans 5 fichiers PHP seulement, beurrkkk), on va tout réécrire avec un framework MVC CodeIgniter, est-ce que c'est une refonte, une réécriture ou un refactoring?
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  2. #42
    Membre chevronné
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2013
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 485
    Points : 2 151
    Points
    2 151
    Par défaut
    Pour moi, ce n'est pas un refactoring ce que tu évoques, mais plutôt une ré-écriture.

    Un refactoring, c'est une amélioration d'un code existant en utilisant par exemple les anti-paterns pour aller à la chasse aux mauvaises odeurs dans le code: https://fr.wikipedia.org/wiki/Antipattern
    Mais on se base bien d'un code existant que l'on cherche à améliorer (lisibilité, maintenabilité, évolutivité, performance, ...).
    Dans la logique de refactoring, on reste iso-fonctionnel et on conserve la compatibilité ascendante des API.
    Avoir des tests unitaires et automatiques sur ces APIs est plus qu'une aide pour assurer aucune régression dans ce travail.

    Pour la refonte, j'utiliserai se terme pour désigner plutôt une modification architecturale d'un code existant, pour rendre possible les évolutions futures.
    Je le verrais bien aussi, dans le cas de changement de version majeur d'un langage ou d'un framework (ex: refonte d'un portail web pour passage de php4 => php5)
    Comme le refactoring, on se base sur un code fonctionnel sans chercher à ajouter de nouvelle fonctionnalité métier.

    Dans ton cas, tu ne gardes quasiment rien, c'est donc plutôt une ré-écriture.
    De plus, potentiellement, les fonctionnalités entre les 2 versions risquent d'être différentes (suppression d'ancienne inutile, ajoute de certaine attendu depuis longtemps).
    On est là dans le passage à une V1 => V2

  3. #43
    Expert éminent
    Avatar de Matthieu Vergne
    Homme Profil pro
    Consultant IT, chercheur IA indépendant
    Inscrit en
    Novembre 2011
    Messages
    2 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant IT, chercheur IA indépendant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2 264
    Points : 7 760
    Points
    7 760
    Billets dans le blog
    3
    Par défaut
    Même avis que Laurent 1973. Encore que ça dépend de ce que tu comptes vraiment faire, mais vu la façon dont tu décris ton cas, il semble peu probable que tu te limites à du refactoring. Maintenant, tu peux choisir de ré-écrire le code depuis zéro ou le faire partie par partie : le premier cas est plus facile (pas de dépendances à maintenir entre deux grosses modifs, ce qui peut être parfois bloquant) mais tu n'auras pas l'ensemble des fonctionnalités tant que tu n'auras pas tout recodé.
    Site perso
    Recommandations pour débattre sainement

    Références récurrentes :
    The Cambridge Handbook of Expertise and Expert Performance
    L’Art d’avoir toujours raison (ou ce qu'il faut éviter pour pas que je vous saute à la gorge {^_^})

  4. #44
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 218
    Points : 1 437
    Points
    1 437
    Par défaut
    Je vous remercie pour vos réponses.

    Ce qui est sûr c'est ce que je m'apprête à faire n'est pas du refactoring.

    Du v1 vers v2 peut-être. On va porter le code PHP actuel vers le framework PHP CodeIgniter (MVC) pour avoir plus de lisibilité et de maintenabilité du code. Il y aura des fonctions de l'actuel code que l'on va reprendre, on va même dans un premier temps garder l'allure du site (le design): les css et les vues.
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/03/2014, 18h16
  2. connexion avec le reseau est-elle etablie ou pas? search api
    Par mehdi_swatch dans le forum Windows
    Réponses: 2
    Dernier message: 29/03/2005, 17h54
  3. Réponses: 9
    Dernier message: 12/12/2004, 11h55
  4. une interpolation de forme est elle possible
    Par tetsuo chima dans le forum Flash
    Réponses: 3
    Dernier message: 07/10/2003, 16h31
  5. Réponses: 5
    Dernier message: 25/03/2003, 17h27

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