Combien de code dupliqué avez-vous tolérer?

Dans une récente revue de code, j'ai repéré quelques lignes dupliquées logique dans une classe (au moins 15 lignes). Quand j'ai suggéré que l'auteur de refactoriser le code, il a fait valoir que le code est plus simple à comprendre de cette façon. Après avoir lu le code, encore une fois, je suis d'accord à l'extraction de la copie de la logique nuirait à la lisibilité un peu.

Je sais SEC d'une recommandation, pas une règle absolue. Mais en général, êtes-vous prêt à faire mal lisibilité dans le nom de la SEC?

  • Les sondages comme cela devrait être de la communauté wiki.
  • Autant de fois que je suis prêt à corriger le bug. En d'autres termes, aucun/jamais/nada/nul/nulle.
  • Pourriez-vous fournir un peu de code? Il est difficile pour moi de penser à un code dupliqué qui a l'air mieux qu'un non-doublé d'un
  • Je ne peux pas copier le code ici en raison de la propriété intellectuelle. Mais la question est, en partie, de ne pas être en mesure de nommer l'abstraction avec quelque chose de significatif et donc de rendre le code plus difficile à comprendre. Je vais essayer de revenir avec un exemple.
  • if (str == null || str.length() == 0) vs isStringNullOrEmpty(str) qui est mieux, je sais ce qui est plus facile à taper et plus. Je sais qui est plus descriptive et plus facile à gérer si je veux ajouter un autre test. Si une ligne de code peut être remaniée pour une fonction qui est plus descriptif, je ne peux pas imaginer à 25 ans de programmation 15 lignes de code qui ne peut pas être nommé à une fonction.
  • Je n'ai même pas permettre à des personnages en double! =P
  • Eh bien, je ne sais pas. Comment dupliquer beaucoup de code pouvez-vous tolérer?
  • isStringNullOrEmpty est moins descriptive, lorsque vous voulez ajouter un autre test". Ce code est juste un mauvais exemple en général.
  • - Je accepter une réponse à un certain point. Depuis que cette question est subjective, je vais accepter la réponse avec le plus de votes. Merci à tous pour votre très précieuse.
  • Une fois, j'ai eu des problème avec un code comme cela, c'était une combinaison de tout/pause et de code supplémentaire dans des endroits différents. Faire classe parent et 4 enfants de classes de rendre le code un peu plus compliqué.