В Java мне очень не хватает поддержки инструментов. FindBugs, Checkstyle и PMD созданы для святой троицы показателей качества кода и автоматической проверки ошибок.
Есть ли что-нибудь, что будет проверять на наличие простых ошибок и / или нарушений стиля кода Ruby? Бонусные баллы, если я смогу адаптировать его для таких фреймворков, как Rails, чтобы придерживаться идиом Rails.
Я никогда раньше не слышал этот термин, а ссылка, на которую вы ссылаетесь, использует «инструменты, похожие на линт», и никогда не упоминает слово «линтер». Большую часть времени я слышу, как их называют «инструментами статического анализа».
«Линтер» и «линтинг» - это довольно общие и не требующие пояснений термины.
Взгляните на PullReview (pullreview.com). У него впечатляющий набор функций, и я нахожу более полезные рекомендации по устранению проблем с безопасностью и сложностей кода.





Пыль похоже, что он может помочь вам найти неиспользуемый и бесполезный код, который, похоже, соответствует тому, что вам нужно.
Мне неизвестны другие подобные инструменты. Решить эту проблему в Ruby намного сложнее, чем в Java - вы заметите, что все эти java-инструменты позиционируют себя как использующие «статический анализ» кода. Статический анализ кода Ruby часто невозможен, потому что нет ничего статичного, что можно было бы проанализировать (методы часто создаются во время выполнения и т. д.)
Во всяком случае, некоторые из этих вещей в Ruby не нужны, потому что язык встроен в них.
Например, вам не нужен стандарт кодирования для обеспечения того, чтобы все ваши классы были NamedLikeThis, потому что код не будет работать, если это не так.
P.S. Я имеют, чтобы добавить стандартный отказ от ответственности, что такого рода инструменты часто могут быть отвлекающим маневром. Вы можете потратить весь день на то, чтобы ваш код соответствовал тому, что, по мнению инструмента, должно быть, и в итоге получите больше ошибок, чем вы вначале. ИМХО, лучшее решение - писать код плавно, чтобы вам было легче его читать. Никакой статический анализ не будет так хорош, как человеческий читающий код, в котором четко указано, для чего он предназначен. Благодаря этой возможности рубин на световые годы опережает многие другие языки. Я лично рекомендую вам направить свои усилия на то, чтобы научиться писать более свободно и обучить свою команду таким вещам, чем тратить время на статический анализ.
Бегло писать и обучать команду - это, безусловно, цель; однако, когда идиомы меняются (например, от ENV ['RAILS_ENV'] == 'development' до Rails.env.development?), тогда такие инструменты могут быть очень полезны для предотвращения появления вредных привычек.
Недавно я начал искать что-то подобное для Ruby. То, с чем я столкнулся до сих пор:
Это могут быть места для начала. К сожалению, я еще не использовал ни один из трех в достаточном количестве, чтобы высказать хорошее мнение.
Думаю, этот продукт SAAS поможет вам не только в Ruby, но и на других языках. Можете использовать эту ссылку, чтобы получить 1-месячную бесплатную пробную версию. codegrip.app.link/0yxbLJ57zW
Сайкуро и Флог могут помочь получить общее представление о сложности кода. Вы также можете использовать такой инструмент, как rcov, чтобы посмотреть, каково ваше тестовое покрытие. Существует плагин для проектов Rails, который объединяет все эти показатели в одну задачу rake. Он называется metric_fu.
Я не отвечал на этот вопрос, когда его спросили, но написанное мной сообщение в блоге тоже может помочь. В нем я рассказываю о нескольких инструментах Ruby и, в частности, о 4 инструментах для обеспечения качества кода ...
Возможно, стоит также попробовать Полотенце и Пыль
http://devver.wordpress.com/2008/10/03/ruby-tools-roundup/
Теперь мы объединили множество инструментов в единственный инструмент контроля качества и показателей Ruby под названием Caliper. Это может хорошо соответствовать вашим потребностям. Он отслеживает различные показатели качества на протяжении всего проекта.
Еще один приятный инструмент, хотя на ранних стадиях, по словам автора, воняет:
В настоящее время reek включает очень наивные проверки на наличие следующих запахов кода:
Лично я считаю, что у него по-прежнему слишком много ложных срабатываний, но простой просмотр вывода в некоторых частях моего кода помог мне переосмыслить некоторые решения о стиле и архитектуре кода.
Также есть отлично. Я еще не пробовал, но тоже выглядит многообещающе.
Проекты, которые я недавно нашел и протестировал:
Код Климат - это инструмент SaaS, который интегрируется через git и автоматически «оценивает» ваш код. Он уведомляет вас по различным каналам о внезапном падении качества. Хороший интерфейс.
Вы можете попробовать РубоКоп. Это средство проверки стиля кода Ruby, основанное на Руководство по стилю Ruby. Он поддерживается довольно активно и основан на стандартных инструментах Ruby (например, библиотека ripper). Он хорошо работает с Ruby 1.9 и 2.0 и имеет отличную интеграцию с Emacs. Надеюсь, вы сочтете это полезным!
Вы описываете линтер.