Подскажите пожалуйста тул, который умеет ругаться на вот такое:
1. Слишком длинный метод — больше N строчек
2. Слишком длинные строчки — больше N символов
3. Слишком много аргументетов у метода — больше N аргументов
4. Слишком много зависимостей у класса — типа как п.3., только про параметры конструктора и пропертиз с аннотацией типа [Inject]
5. Слишком много методов в классе — больше N методов
6. Дурацкое имя у класса — не Существительное и не ПрилагательноеСуществительное
7. Дурацкое имя у метода — не СделатьЧтоТо, и не OnЧтоТоСлучилось
8. Дурацкое имя у переменной — не ЧтоТоТам
Очень бы хотелось бы ещё:
1. У класса слишком размазанное состояние: например есть 10 флайжков bool и какая-то хитрая логика вокруг них, при этом некоторые флажки имеют смысл только в зависимости от некоторых других
2. Метод не покрыт тестами — т.е. метод есть, но в тестах не вызывается ни явно, ни неявно
Было бы совсем круто, если бы тул умел ругаться на очевидно-не-очень-хороший-дизайн: у класса есть 3 зависимости, которые используются только в одном методе, при этом в том же методе есть обращение только к одному полю класса (ну, кроме зависимостей):
class Controller {
ServiceA a; // только для DoSomething()
ServiceB b; // только для DoSomething()
ServiceC c; // только для DoSomething()
ServiceD d;
ServiceE e;
string something; // изменяется только в DoSomething()
...
// очевидно, стоит рассмотреть вариант выделения отдельного сервиса:
// serviceX.GetABCData()
void DoSomething() {
var aa = a.GetData();
var bb = b.GetData();
var cc = c.GetData();
something = aa + bb + cc;
}
...
}