64 lines
5.2 KiB
Markdown
64 lines
5.2 KiB
Markdown
---
|
||
title: Rubocop
|
||
localeTitle: Rubocop
|
||
---
|
||
[Rubocop](https://github.com/bbatsov/rubocop) является инструментом статического анализа для [Рубин](https://www.ruby-lang.org/en/) . Что это значит? Это означает, что Rubocop будет «читать» ваш код (в отличие от его запуска, следовательно, «статическая» часть от имени) и проанализировать его. Правила использования Rubocop используются из [Руководство по стилю сообщества Ruby](https://github.com/bbatsov/ruby-style-guide) .
|
||
|
||
Руководство по стилю представляет собой набор конкретных предложений о том, как писать код, который более читабельна, более выразительна и более условна. Как сообщество, это было бы замечательно, если бы мы могли легко читать чужой код, и они могли бы читать легко. Это то, что нам помогает Rubocop. Этот инструмент всегда ценный, но он особенно полезен, когда вы изучаете Ruby и вы можете ввести код, который является _правильным_ , но который не придерживается конвенций Ruby, или не использует некоторые из более мощных функций Ruby.
|
||
|
||
Наиболее полезно, Rubocop может автоматически исправить многие незначительные предупреждения - например, неправильный интервал. Это очень полезно перед просмотром кода, поскольку это означает, что коллеги-разработчики могут сосредоточиться на проблемах более высокого уровня и не тратить время по вопросам синтаксиса.
|
||
|
||
## Использование Rubocop
|
||
|
||
### Монтаж
|
||
|
||
Rubocop поставляется как драгоценный камень, поэтому в типичном проекте, который использует Bundler, вы добавит его в раздел разработки вашего `Gemfile` :
|
||
```
|
||
group :development do
|
||
gem rubocop
|
||
end
|
||
```
|
||
|
||
Это означает, что любой, кто использует ваш проект, будет иметь ту же версию Rubocop, и все согласятся с тем, какова нынешняя лучшая практика.
|
||
|
||
### использование
|
||
|
||
Перед каждым фиксацией мне нравится проверять, что мой новый модифицированный код соответствует стандарт коммьюнити, просто запустив:
|
||
```
|
||
rubocop
|
||
```
|
||
|
||
Это выведет список предупреждений о вашем коде.
|
||
|
||
Полезно спросить Rubocop за дополнительной помощью:
|
||
```
|
||
rubocop --extra-details --display-cop-names
|
||
```
|
||
|
||
(Вы можете добавить их в файл `.rubocop` чтобы сделать их по умолчанию.)
|
||
|
||
Многие редакторы позволят вам интегрировать Rubocop, который может когда вы пишете код.
|
||
|
||
### Устранение неполадок
|
||
|
||
Допустим, я написал новый код; прежде чем я его совершу, я могу решить убедитесь, что оно соответствует рекомендациям:
|
||
|
||
```shell
|
||
rubocop <my new file>
|
||
```
|
||
|
||
Я могу редактировать внесенные изменения вручную, или я могу попросить Rubocop исправить незначительные проблемы автоматически:
|
||
```
|
||
rubocop --auto-correct
|
||
```
|
||
|
||
### Запуск только определенных полицейских
|
||
|
||
Каждое руководство сообщества реализуется в рубикоповом «полицейском». При работе над устаревшей кодовой базы, вы можете быть загружены с предупреждениями при представлении Rubocop. В этом случае часто бывает полезно запустить только одного копа codebase и проверьте эти изменения, прежде чем перейти к следующему руководству, для пример:
|
||
```
|
||
rubocop --auto-correct --only 'Layout/EmptyLineAfterMagicComment'
|
||
```
|
||
|
||
### Интеграция текстового редактора
|
||
|
||
Rubocop можно интегрировать с Vim, Visual Studio Code, Atom и другими текстовыми редакторами. Полный список можно найти [здесь](https://rubocop.readthedocs.io/en/latest/integration_with_other_tools/) . |