Question

Dites que vous avez obtenu un vieux code de base que vous avez besoin de maintenir et il est clairement non conforme aux normes en vigueur. Comment voulez-vous distribuer vos efforts pour garder le code de base rétrocompatible tout en gagnant le respect des normes? Ce qui est important pour vous?

Était-ce utile?

La solution

A mon lieu de travail, nous ne reçoivent pas le temps de factoriser les choses juste parce qu'il fait mieux le code. Il doit y avoir un bug ou une demande de fonctionnalité du client.

Compte tenu de cette règle, je fais ce qui suit:

Quand je Refactor:

Si je dois apporter des modifications à un ancien projet, je nettoyage, refactor ou de réécrire la partie que je change.

Parce que je l'ai toujours à comprendre le code pour faire le changement en premier lieu, c'est le meilleur moment pour effectuer d'autres changements.

Aussi c'est un bon moment pour ajouter des tests unitaires manquants, pour votre changement et le code existant.

Je fais toujours le refactoring d'abord, puis faire mes changements, donc de cette façon que je suis beaucoup plus confiant mes changements ne rien casser.

Priorités:

Les parties de code qui ont besoin refactoring plus, contiennent souvent le plus de bugs. En outre, nous ne recevons pas de rapports de bogues ou des demandes pour des pièces qui ne sont pas d'intérêt pour le client. Par conséquent cette méthode priorisation vient automatiquement.

Circumenventing mauvais desseins:

Je suppose qu'il ya des tonnes de livres à ce sujet, mais voici ce qui m'a le plus aidé:

Je construis façades :

  1. Façades avec une nouvelle bonne conception qui « quarantaine » le mauvais code existant. J'utiliser si je dois écrire un nouveau code et je dois réutiliser le code existant mal structuré, que je ne peux pas changer en raison des contraintes de temps.
  2. Façades avec la mauvaise conception d'origine, qui cache le nouveau bon code. J'utiliser si je dois écrire un nouveau code qui est utilisé par le code existant.

Le but principal de ces façades divise le bien du mauvais code et limitant ainsi les dépendances et les effets en cascade.

Autres conseils

Je facteur dans le temps de réparer les modules que je devais travailler avec eux. Une réécriture / refactor up-front ne va pas voler dans une société raisonnable, mais il va presque certainement être un cauchemar pour maintenir une base de code bodgy sans le nettoyer un peu.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top