web-dev-qa-db-fra.com

Maintenir le code hérité

J'ai une ancienne base de code qui fonctionne encore mais qui est difficile/presque impossible à maintenir. Il peut être coûteux (temps et argent) de le mettre à jour. Dois-je simplement y aller, ou devrais-je continuer à détester mon monde (mais continuer à travailler sur quelque chose qui fonctionne et qui est relativement sans bug)?

5
Jason

Si vous voyez un avenir dans votre site, veuillez le réécrire dès que possible s'il n'est pas maintenable. Je maintiens plusieurs grands sites de plus de 5 ans et dans le temps que j'ai passé à maudire les problèmes stupides qui en découlaient, j'aurais pu les réécrire tous. Fais-toi plaisir et réécris-le, c'est plus amusant de construire quelque chose de nouveau aussi;)

4
D4V360

Je suis sûr que cela dépend des circonstances, mais assurez-vous de prendre en compte le temps supplémentaire que vous avez consacré à la maintenance de votre base de code existante par rapport aux frais de mise à jour. Ne sachant pas plus de détails, je dirais de le mettre à jour plutôt que de lutter avec ce que vous avez.

1
Travis Northcutt

Je suis dans une situation similaire. Mon entreprise a son site Web qui fait tout ce dont ils ont besoin. En outre, ils ont un site Web créé par une société extérieure pour le remplacer qui fournit 90% de leurs besoins. Ils s'attendent à ce que 90% deviennent 110%.

J'ai décidé du plan d'action suivant:

  • Maintenir l'ancien site Web jusqu'à la livraison du nouveau site
  • Obtenez les fonctionnalités supplémentaires intégrées dans le nouveau site le plus rapidement possible
  • Maintenir le nouveau site Web comme s'il n'était pas remplacé
  • Une fois que tout est opérationnel, reconstruisez le site et créez un plan de migration
  • Migrez vers le nouveau site et oubliez que l'un ou l'autre de ces anciens existait

Bien que j'aimerais simplement ignorer les deux autres sites, ce n'est pas une option. Indépendamment de ce que je ressens, le site en cours de livraison devra nous servir pendant un certain nombre de mois avant que je puisse même tenter de le remplacer. L'optimiser, le maintenir et l'améliorer seront ma priorité. Ce site doit fonctionner pendant sa durée de vie. Ainsi, la construction du nouveau site Web sera un projet pendant ces périodes où tout fonctionne et sur mon temps personnel lorsque je veux pirater quelque chose. Mais ça va, car il gère les attentes de tout le monde. La société qui s'attend à ce que ce nouveau site fonctionne à un certain niveau verra son site se comporter à ce niveau, et en même temps, je l'améliorerai activement dans les coulisses. Et en même temps, je construirai un remplaçant qui le fera exploser.

Dans ma situation, mon "nouveau site" (de la société externe) est votre base de code existante, et mon "nouveau site" est votre devrait-je-juste-reconstruire-il. Donc, je suppose que ma réponse est que, tout en maintenant la base de code héritée pour que le monde continue de tourner, vous pouvez toujours reconstruire.

0
Bryson

Je suis d'accord avec @ D4V360, il y a effectivement du plaisir à écrire quelque chose de nouveau. En outre, considérons le concept de "dette technique" dont Jeff et Joel ont parlé dans leurs podcasts. Voici quelques liens pertinents sur le sujet:

  • Steve McConnell (auteur du grand livre "Code Compete") sur la dette technique
  • Ce qui précède et notre propre Jeff Atwood sur la dette technique
0
Alan