J'entends beaucoup parler de garder les méthodes courtes et j'ai entendu beaucoup de programmeurs dire que l'utilisation de balises #region dans une méthode est un signe certain qu'elle est trop longue et devrait être refactorisée en plusieurs méthodes. Cependant, il me semble qu'il existe de nombreux cas où la séparation du code avec des balises #region au sein d'une méthode est la meilleure solution pour la refactorisation en plusieurs méthodes.
Supposons que nous ayons une méthode dont le calcul peut être séparé en trois phases plutôt distinctes. De plus, chacune de ces étapes n'est pertinente que pour le calcul de cette méthode, et donc les extraire dans de nouvelles méthodes ne nous permet pas de réutiliser le code. Quels sont donc les avantages d'extraire chaque phase dans sa propre méthode? Pour autant que je sache, tout ce que nous gagnons est une certaine lisibilité et une portée variable distincte pour chaque phase (ce qui aidera à empêcher les modifications d'une phase particulière de casser accidentellement une autre phase).
Cependant, les deux peuvent être atteints sans extraire chaque phase dans sa propre méthode. Les balises de région nous permettent de réduire le code dans un formulaire tout aussi lisible (avec l'avantage supplémentaire que nous n'avons plus à laisser notre place dans ce fichier si nous décidons de développer et d'examiner le code), et d'envelopper simplement chaque phase dans {}
crée sa propre portée pour travailler avec.
L'avantage de le faire de cette façon est que nous ne polluons pas la portée au niveau de la classe avec trois méthodes qui ne sont en fait pertinentes que pour le fonctionnement interne d'une quatrième méthode. Refactoriser immédiatement une méthode longue en une série de méthodes courtes me semble être la réutilisation de code équivalente à une optimisation prématurée; vous introduisez une complexité supplémentaire afin de résoudre un problème qui, dans de nombreux cas, ne se pose jamais. Vous pouvez toujours extraire l'une des phases dans sa propre méthode ultérieurement si l'occasion de réutilisation du code se présente.
Pensées?
#region
balises, mais je désactive complètement le pliage de code dans Visual Studio. Je n'aime pas le code qui essaie de me cacher.