2009-01-20 7 views
6

Étant donné que les caractéristiques de travail sont une meilleure valeur pour une entreprise que du bon code à un moment donné dans le temps et que le mauvais code permet d'ajouter plus de fonctionnalités difficiles:s'arrêtant la pourriture du code

Comment arrêter le code de la détérioration au fil du temps? À tout moment, l'obtention d'une fonctionnalité est prioritaire par rapport à l'utilisation d'un code bien conçu, ce qui prend plus de temps. Même si le temps passe, l'effort pour chaque caractéristique augmente.

Comment empêchez-vous que le code ne se transforme en une bouillie impossible à entretenir au fil du temps?

Répondre

12

Un ensemble complet de tests unitaires

edit: et il est utile si elles sont bien écrites pour tester avec précision toutes vos classes/interfaces de manière lisible.

éditer 2: comme dit svelil, refactoriser votre code pour le garder propre, mais être capable de le faire est une conséquence des tests unitaires.

+0

+1 - amen à cela. –

+0

Des tests d'intégration, des tests fonctionnels et des tests d'interface utilisateur sont également requis;) – workmad3

+0

- Ils s'assureront que le code fonctionne. Je pensais plus à la maintenabilité du code. –

1

Un ensemble décent de normes de codage. Ils n'ont pas besoin d'être complets, mais ils devraient signifier que vous savez ce que votre indentation-accolade est que vous avez moins à y penser (et cela signifie que les endroits où le code a été précipité et pas formaté correctement se démarquer comme un pouce douloureux)

2

Refactorings périodiques, en particulier dans la section de code dans lequel vous travaillez actuellement (la règle "Boy Scout").

3

Utilisez un processus de développement de itérer:

  1. Mettre en œuvre la fonction
  2. code Refactor
  3. Aller au 1.

Vous devez avoir une certaine discipline, mais sans elle, vous finirez avoir un désordre. Même si vous pensez "Oh, le code est assez lisible", ne passez pas l'étape 2. Bien sûr, le développement doit toujours être accompagné de tests.

2

La réponse la plus élevée et acceptée dans cette question devrait être «Essais unitaires complets».

Cette réponse ne va pas répéter cela. Cependant, ajouter des tests unitaires à un projet existant est beaucoup plus difficile et est généralement une mauvaise imitation de ce qui peut être réalisé si le code d'application lui-même a été écrit avec un test unitaire en tête.

De même, la pression de l'horaire extrême peut rendre impossible la prise en compte, ceux qui n'ont pas eu l'expérience de l'utilisation des tests unitaires sont encore un gros porteur.

Ma recommandation dans ces conditions est d'écrire aussi bien que possible pour atteindre les objectifs actuels. Soyez prêt à refactoriser le code existant avant d'ajouter de nouvelles fonctions. Alors que les tests unitaires rendraient cette approche beaucoup plus sûre, cette approche est toujours utile, même sans tests unitaires.

Bien sûr, un bon test général et un bon contrôle qualité sont importants.

11

Les tests unitaires n'arrêteront pas la pourriture eux-mêmes.Je peux toujours écrire un code horrible, non-supportable qui passe un test unitaire.

Une meilleure réponse est les tests unitaires. + refactoring réguliers + examen par les pairs (soit au stade de couplage ou après) + normes

Vous ne savez il n'y a pas de solution miracle.

0

Dans mon travail, à l'approche du gel de code, l'approche «rapide et sale» est parfois nécessaire. Cela se traduit généralement par un code assez douteux qui fonctionne, mais offense vos yeux.

Cependant, immédiatement après l'expédition, il y a une période de calme relatif. C'est l'occasion parfaite de revisiter un peu de ce code malodorant et de le mettre en forme.

Il est utile de conserver une liste des zones que vous souhaitez ranger et de leur attribuer une sorte de priorité. Malgré la qualité de votre mémoire, vous l'oublierez.

Cette approche fonctionne assez bien pour moi mais je suppose que cela dépend de votre flux de travail de projet particulier.