Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

Ответ 5

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

Я не знаю других подобных инструментов. Эта проблема намного сложнее адресовать в рубине, чем в java - вы заметите, что все эти java-инструменты используют себя как "статический анализ" кода.
Статический анализ рубинового кода часто невозможен, потому что нет ничего статического, что вы можете проанализировать (методы часто создаются во время выполнения и т.д.)

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

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

Ответ 6

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

http://reek.rubyforge.org/

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

  • Длинный метод
  • Большой класс
  • Особенность Envy
  • Uncommunicative Name
  • Список длинных параметров
  • Полезная функция
  • Вложенные итераторы
  • Управляющая пара
  • Тиражирование
  • Элемент списка

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

Ответ 7

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

Ответ 8

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

  • Roodi
  • Пыль
  • Flog
  • Saikuro

Также может быть стоит проверить Towelie и Flay

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

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

Caliper - улучшите свой код Ruby

Ответ 9

Существует также excellent. Я еще не пробовал, но это тоже выглядит многообещающе.