Trois bonnes raisons de refactoriser:
- Votre conception originale (peut-être dans une zone très petite, mais le design néanmoins) était erronée. Cela inclut où vous découvrirez une opération commune et souhaitez partager le code.
- Vous concevez de manière itérative.
- Le code est tellement mauvais qu'il a besoin d'une rénovation majeure.
Trois bonnes raisons de ne pas refactoriser:
- "Cela ressemble un peu bordélique".
- "Je ne suis pas entièrement d'accord avec la manière dont le dernier gars a fait ceci".
- "Il pourrait être plus efficace". (Le problème, c'est 'pourrait').
"Malpropre" est sujette à controverse, il y a un argument valable diversement appelé "la fixation de la vitre brisée", ou "code de l'hygiène", ce qui suggère que si vous laissez les petites choses de la diapositive, puis vous allez commencer à nous de grandes choses glissent trop. C'est très bien, et c'est une bonne chose à garder à l'esprit, mais n'oubliez pas que c'est une analogie. Il n'est pas une excuse de manœuvre des trucs autour de interminably, à la recherche de la plus propre possible solution.
Combien de fois vous refactoriser devrait dépendre de la façon dont souvent les bonnes raisons de se produire, et le degré de confiance vous que votre processus de test vous protège contre les introduire des bogues.
Refactoring n'est jamais un but en soi. Mais si quelque chose ne fonctionne pas, il doit être corrigé, et c'est aussi vrai dans le développement initial, car il est en cours de maintenance. Pour les non-trivial changements, il est presque toujours préférable de refactoriser, et d'intégrer les nouveaux concepts proprement, que pour patch un seul endroit avec beaucoup de morceaux de ferraille afin d'éviter toute modification ailleurs.
Pour ce que ça vaut, je ne pense rien de l'évolution de l'interface qui vous est fournie que j'ai une idée sur ce qui l'utilise, et que la portée de ce changement est gérable.