Тул для проверки кода на вменяемость
От: andyag  
Дата: 10.03.15 08:18
Оценка:
Подскажите пожалуйста тул, который умеет ругаться на вот такое:

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;
  }
  ...
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.