На днях я немного изучал устаревшую систему, которую я поддерживаю, с помощью NDepend (отличный инструмент). Мои выводы почти заставили меня выплеснуть глоток кофе по всему экрану. Лучшие 3 функции в этой системе ранжируются по убыванию цикломатической сложности:
- SomeAspNetGridControl.CreateChildControls(CC из 171 !!!)
- SomeFormControl.AddForm(CC из 94)
- SomeSearchControl.SplitCriteria(CC of 85)
Я имею в виду 171, вау! Разве это не должно быть ниже 20 или что-то? Так что это заставило меня задуматься. Какую самую сложную функцию вы поддерживаете или переделали? И как бы вы занялись рефакторингом такого метода?
Примечание: измеренный CC - это код, а не IL.