インスタンス名を取り締まるためのRuboCop拡張 rubocop-instance_variable_name をリリースしました。

github.com

何ができるの?

この拡張がやっているのは、とてもシンプルなことで、インスタンス変数名の長さが一定以下(デフォルトだと2)のインスタンス変数に警告を出します。

@ms = 'foo' # bad code

@message = 'foo' # good code

作った動機

最近、他人の書いたコードをレビューしたり、他人の書いたコードを修正する機会が増えてきました。 その中で、いつも悩まされるのが変数名がわかりづらい時でした。 特に、インスタンス変数名は重要だと思います。 メソッド名やattr_readerなどで定義されるゲッターが分かりづらかったり、複雑なコードだとしても、変数名が何を表しているのかがわかると読み解くことができます。 特にクラス変数名は重要です。

読みづらさの中で最も辛いのは、略語を使ったものです。 普段使わない単語を使っているのも読みづらいのですが、英和辞典やググれば理解することはできます。 ですが、略語になると、それを推測するのが非常に難しくなります。

ということで、インスタンス変数名の長さに注目し、受け入れられない長さの変数名を指摘するRuboCop拡張を作りました。

是非ご活用ください。 また、何か不具合等ございましたら、Issueを作っていただけると助かります。