おはようございます。Style/TrailingCommaInArguments
はconsistent_comma
派のうなすけです。
さて、ちょっと前からspicelifeでは、TMIXとSTEERSの両方でrubocopを用いたLintのチェックをCIで実行するようになりました。
導入背景
そもそもrubocopによる文法の統一ですが、最近になってようやく導入したわけではありません。 STEERSでは2015年10月にrubocopをCI上で実行するPull Requestがmergeされています。
それ以降、STEERSでは継続してLintチェック、rubocop.yml更新が行われてきました。
さて一方のTMIXは、もともとが古いプロジェクトであること、関わってきた人数の数などもあり、コードの統一性は全くありませんし、そしてそのようなコードが大量に存在している状態です。 だからこそrubocopが力を発揮できる、ということが言えるでしょうが、しかしそれでもdefaultの設定でrubocopを実行すると、無限に警告が発生してしまい途方に暮れてしまうので、なかなか導入できずにいました。
しかし今後追加されるコードも無秩序でいいという理由はなく、導入しないという選択肢はないので、重い腰を上げてようやく導入に踏み切ったというのが、つい先日のことになります。
どのようなルールを使っているのか
会社全体で使用するルールを決め、基本的には各プロジェクトでそれに従うことにしています。そのルールは公開しており、どなたでも閲覧することができる状態になっています。
また、各プロジェクトにおいて、そぐわないルールを上書くこともしています。
TMIXでの運用
TMIXでは、先述のようにCIでrubocopを実行すると警告の嵐になってしまいます。rubocop_todo.ymlを生成してもいいのですが、放置されてしまうことも考えられます。
なので、CIではrubocopを実行せず、hound ciを導入し、新しく書かれるコードにのみrubocopでのチェックを行なっています。
hound ciにした理由は人数とリポジトリ数で各CIサービスを比較した場合に高価すぎないためです。
雑感
これまで個人の好みによって文法の指摘がされていたのが、統一した規則ができ、かつbotによって指摘されるので、開発環境がよりよいものへと改善されたように思います。
複数人での開発においてこそ、rubocopは真価を発揮すると考えているので、みなさんも、Rubyによる共同開発をしていて、導入していないのならrubocopを導入することをオススメします。