Comment décidez-vous quelles parties du code sont consolidés / refactorisés suivant?

StackOverflow https://stackoverflow.com/questions/743451

  •  09-09-2019
  •  | 
  •  

Question

Utilisez-vous des mesures pour prendre une décision quelles parties du code (les classes, modules, bibliothèques) doivent être consolidées ou refactorisés suivant?

Était-ce utile?

La solution

Je n'utilise pas de mesures qui peuvent être calculées automatiquement.

J'utilise le code odeurs et heuristiques similaires pour détecter le mauvais code, puis je vais corriger dès que je l'ai remarqué. Je n'ai pas liste de contrôle pour la recherche des problèmes - la plupart du temps, il est un sentiment intestin que « ce code semble désordonnée », puis raisonnement que la raison pour laquelle il est en désordre et à trouver une solution. refactorisations simples comme donner un nom plus descriptif à une variable ou l'extraction d'une méthode ne prennent que quelques secondes. refactorisations plus intensifs, comme l'extraction d'une classe, peut prendre jusqu'à une heure ou deux (dans ce cas, je pourrais laisser un commentaire TODO et refactoriser plus tard).

Une heuristique importante que j'utilise est responsabilité unique Principe . Il rend les classes bien cohérent. Dans certains cas, j'utilise la taille de la classe dans les lignes de code comme une heuristique pour la recherche avec plus d'attention, si une classe a de multiples responsabilités. Dans mon projet actuel j'ai remarqué que lorsque Java écrit, la plupart des classes seront moins de 100 lignes longue, et souvent lorsque la taille approche 200 lignes, la classe fait beaucoup de choses sans rapport et il est possible de le diviser, de manière à obtenir plus ciblées des classes de cohésion.

Autres conseils

Chaque fois que je dois ajouter de nouvelles fonctionnalités je recherche code déjà existant qui fait quelque chose de similaire. Une fois que je trouve un tel code, je pense à la refactorisation pour résoudre à la fois la tâche d'origine et le nouveau. Certes, je ne décide pas factoriser chaque fois -. Le plus souvent je réutiliser le code tel qu'il est

En général, je ne Refactor « à la demande », à savoir si je vois un problème concret immédiat avec le code.

Souvent, quand je dois mettre en œuvre une nouvelle fonctionnalité ou corriger un bug, je trouve que la structure actuelle du code rend cela difficile, par exemple:

  • trop d'endroits pour changer en raison de copier-coller
  • structures de données inappropriées
  • les choses qui doivent codées en dur changer
  • méthodes / cours trop grandes pour comprendre

Alors je factoriser.

Je vois parfois du code qui semble problématique et que je voudrais changer, mais je résiste à l'envie si la zone n'est pas actuellement en cours d'élaboration.

Je vois refactoring comme un équilibre entre l'avenir épreuvage le code et faire des choses qui ne génèrent pas vraiment une valeur immédiate. Par conséquent, je ne serais pas normalement factoriser à moins que je vois un besoin concret.

J'aimerais entendre parler des expériences de personnes qui Refactoriser comme une question de routine. Comment pouvez-vous vous arrêter de polissage tellement vous perdez du temps pour des caractéristiques importantes?

Nous utilisons Cyclomatic_complexity pour identifier le code qui doit être refondus suivant.

J'utilise Moniteur source et Refactor régulièrement des méthodes lorsque la mesure de la complexité va aboove autour 8.0.

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