ちょっとイラッとするRubyコードを集めてみました。そして、ちょっとイラッとするぐらいなら大体autofixできるので、autofixするツールも合わせて紹介します。あくまでちょっとイラッとですよ。
9個挙げてみた
9種類だけちょっと挙げてみました。他にもなにかあればコメント・はてぶコメント等々でぜひご共有下さい。追記します。
1. 気にする人は気にする、white space
気にする人はwhite spaceを見えるようにしたりしてるので、イラッとしますよね。 意味があるやつならいいのですが、末尾とかにちょろっとついてると、キッって。 これがたくさんあると、そのプロジェクトを見た時点で、やる気無くしますよね。
これが全角スペースだと更に涙目。(ていうか動かないから全角スペースはさすがに気づく)
2. イ ン デ ン ト
インデントが揃ってないとイラッとしますよね! あと、white spaceと異なり、普通にバグを生みやすい、良くないコードです。 どこでどのブロックが終わってるのか分かりづらいですからね。
3. 無意味なコード
このコード、railsのcontrollerのmethodなんですが、中身が空っぽで無意味ですよね。 railsはroutesに定義してあるパス・メソッドで、viewファイルがあれば、controllerに書く必要はないので、無意味です。もちろん、controllerに書いてあったほうが分かりやすいという意見もあるので断定は出来ないですが、イラッとする人はイラッとするかなと。
4. やたらと深いメソッドチェーン
これもイラッとしませんか?イラッとっていうか、読みづらい、書きづらいという。。。
ちなみにこのいらっとに対するプラクティスとしては下記が挙げられます。
要約すると「直接の友達とだけ話すこと」とのことで、
Before:
monkey.parents.father.foods.each do |food|
After:
monkey.father_foods.each do |food|
のように直接father_foodsをアクセス出来るメソッドを、モデルに定義するのがより良いと思われます。
5. unused?なコード
このメソッド, インスタンス変数, アクセサ, その他etc, 使ってるの?か分からなくて消せないってことよくありませんか?
どこでどういう用途をするのか、どういった値を返すのかなど、何らかコメントを書くなどしておいた方が良いですね。どこで使っているか、Javaなどなら検索しやすいのですが、railsのルール全部に対応したエディタを普段から使ってる人はそれほど多くないと思うので、こういったコメント無しの外部からアクセスされる系コードとかは非常に分かりづらいです。
ちょいっとイラッと、というか、もやっとしますよね。
6. 削除されないコメントアウト
どうせgitでバージョン管理してるんだし、消そうよ!イラッとするよ!と思います。
7. DONT REPAT YOURSELF
いやいや、その2つのメソッドやってることほとんど一緒じゃん!コピペコードじゃん!コピペやめてー!ってよく有りますよね。。。
DRYの法則は常に意識したいところです。
8. バージョン管理されないGemfile
RubyといえばGemfile。どのFrameworkを使ってても使ってなくても割りと使うGemfile。こんな風にgemのバージョンが指定されてない(&Gemfile.lockがない)と、開発者の環境ごとに差異が出て開発に影響が出まくります。
マイナーアップデートだけ許可しますよ〜って書いてみたり、
このバージョンだけ!って書いてみたり、して欲しいですよね。
RubyやRailsのバージョンも指定出来るのでGemfile凄いです。
(Gemfileに従うRVMやrbenvが凄いとも言えます)
9. ミススペル
priciengじゃなくてpricingでしょ!
しかもこのメソッドあちこちから呼び出されてるし!
みたいなのも時々ありますよね。OSSとかだと見かけないですが、呼びだそうと思ってメソッド名叩いたらメソッドが見つからない。コードを読んでみたらモデル側のメソッド名がミススペル。みたいな。
イラッとを見つけたら?
コードにイラッとしたら、まずは今後の再発防止策を打つのが良いと思います。宣伝で恐縮ですが、SideCIがこんなイラッとコードの再発防止にオススメです。
white space, メソッドチェーン, unsed_method あたりはSideCIで検出、検出したら即座にGitHubコメントなどでお知らせします。
既に発生しているイラッとコードのいくつかは コーディング規約をチェックするRubocopとPHP_CodeSniffer でご紹介させて頂いたRubocopなどで、autofixして一網打尽にすることも可能です。
イラッとコードを死滅させましょう!そして、再発を防止しましょう!
ps. プログラマじゃない方も、美意識?が低いプログラマが書いたコードは美意識が高いプログラマの気力を削ぐので、ぜひ直す時間をプリーズです。