Автоматический инструмент контроля качества кода для Ruby?[закрыто]

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

Вопрос

Одна вещь, которую мне очень не хватает в Java, — это поддержка инструментов.FindBugs, Checkstyle и PMD представляют собой святую троицу показателей качества кода и автоматической проверки ошибок.

Есть ли что-нибудь, что будет проверять простые ошибки и/или нарушения стиля кода Ruby?Бонусные баллы, если я смогу адаптировать его для таких фреймворков, как Rails, чтобы соблюдать идиомы Rails.

Это было полезно?

Решение

Недавно я начал искать что-то подобное для Ruby.С чем я столкнулся до сих пор:

Это может быть отправная точка.К сожалению, я еще недостаточно использовал ни один из трех, чтобы составить хорошее мнение.

Другие советы

Saikuro и Flog могут быть полезны для получения базового представления о сложности кода.Вы также можете использовать такой инструмент, как rcov, чтобы просмотреть покрытие вашего теста.
Для проектов Rails существует плагин, который объединяет все эти метрики в одну rake-задачу.Это называется metric_fu.

Проекты, которые я недавно нашел и протестировал:

Возможно, вы захотите попробовать Рубокоп.Это средство проверки стиля кода Ruby, основанное на Руководство по стилю Ruby.Он поддерживается довольно активно и основан на стандартных инструментах Ruby (таких как ripper библиотека).Он хорошо работает с Ruby 1.9 и 2.0 и имеет отличную интеграцию с Emacs.Надеюсь, вы найдете это полезным!

Пыль похоже, это может помочь вам найти неиспользуемый и бесполезный код, который, кажется, соответствует тому, что вам нужно.

Других подобных инструментов я не знаю.
Эту проблему гораздо сложнее решить в Ruby, чем в Java — вы заметите, что все эти Java-инструменты позиционируют себя как использующие «статический анализ» кода.
Статический анализ кода Ruby часто невозможен, поскольку нет ничего статического, что можно было бы анализировать (методы часто создаются во время выполнения и т. д.).

В любом случае, некоторые из этих вещей в Ruby не нужны, поскольку они встроены в язык.Например, вам не нужен стандарт кодирования, чтобы гарантировать, что все ваши классы являются NamedLikeThis потому что код не будет работать, если это не так.

P.S.я иметь добавить стандартное заявление об отказе от ответственности о том, что подобные инструменты часто могут быть отвлекающим маневром.Вы можете потратить весь день на то, чтобы ваш код соответствовал тому, каким, по мнению инструмента, он должен быть, и в итоге получить больше ошибок, чем было изначально.
ИМХО, лучшее решение — писать код свободно, чтобы вам было легче его читать.Никакой статический анализ не будет так хорош, как код, читаемый человеком, в котором четко указано, для чего он предназначен.Благодаря возможности сделать это Ruby на несколько световых лет опережает многие другие языки.Лично я бы рекомендовал вам направить свои усилия на то, чтобы научиться писать более свободно и обучать свою команду таким вещам, а не тратить время на статический анализ.

Еще один неплохой инструмент, хотя на ранних стадиях по словам автора пахнет:

http://reek.rubyforge.org/

В настоящее время reek включает очень наивные проверки на следующие запахи кода:

  • Длинный метод
  • Большой класс
  • Функция зависти
  • Некоммуникативное имя
  • Длинный список параметров
  • Вспомогательная функция
  • Вложенные итераторы
  • Контрольная пара
  • Дублирование
  • Пункт списка

Лично я считаю, что у него по-прежнему слишком много ложных срабатываний, но простой просмотр результатов некоторых фрагментов моего кода помог мне переосмыслить некоторые решения относительно стиля и архитектуры кода.

Код Климат — это SaaS-инструмент, который интегрируется через git и автоматически «оценивает» ваш код.Он уведомляет вас по различным каналам в случае внезапного падения качества.Хороший пользовательский интерфейс.

Я не увидел этих вопросов, когда их задавали, но сообщение в блоге, которое я сделал, тоже могло бы помочь.В нем я расскажу о нескольких инструментах Ruby и особенно о четырех инструментах качества кода...

  1. Руди
  2. Пыль
  3. порка
  4. Сайкуро

Возможно, вам также стоит посмотреть Towelie and Flay.

http://devver.wordpress.com/2008/10/03/ruby-tools-roundup/

Теперь мы объединили множество инструментов в единственный Ruby-инструмент для мониторинга качества и показателей кода под названием Caliper.Это может хорошо соответствовать вашим потребностям.Он отслеживает различные показатели качества на протяжении всего проекта.

Калипер — улучшите свой Ruby-код

А также есть отличный.Я еще не пробовал, но это тоже выглядит многообещающе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top