インスタンス名を取り締まるためのRuboCop拡張 rubocop-instance_variable_name
をリリースしました。
何ができるの?
この拡張がやっているのは、とてもシンプルなことで、インスタンス変数名の長さが一定以下(デフォルトだと2)のインスタンス変数に警告を出します。
@ms = 'foo' # bad code
@message = 'foo' # good code
作った動機
最近、他人の書いたコードをレビューしたり、他人の書いたコードを修正する機会が増えてきました。
その中で、いつも悩まされるのが変数名がわかりづらい時でした。
特に、インスタンス変数名は重要だと思います。
メソッド名やattr_reader
などで定義されるゲッターが分かりづらかったり、複雑なコードだとしても、変数名が何を表しているのかがわかると読み解くことができます。
特にクラス変数名は重要です。
読みづらさの中で最も辛いのは、略語を使ったものです。 普段使わない単語を使っているのも読みづらいのですが、英和辞典やググれば理解することはできます。 ですが、略語になると、それを推測するのが非常に難しくなります。
ということで、インスタンス変数名の長さに注目し、受け入れられない長さの変数名を指摘するRuboCop拡張を作りました。
是非ご活用ください。 また、何か不具合等ございましたら、Issueを作っていただけると助かります。