コードレビューは積極的にしてもらおう!

2017/06/08

仕事でコードレビューをしてもらって、「こんなにも違う書き方になるのか」という発見があったのでメモ。

例えば、Userモデルがあり、そこにprefectureというカラムがあるとします。
そしてprefectureには日本の都道府県が入るとします。

あるデータ群に、1つでもprefecture=東京都のものがあれば”東京あり”、ない場合は”東京なし”と出力したい場合はどうすればよいでしょうか。

ぼくが最初に書いたコードがこちら。

users = User.all
prefecture_array = users.map do |user|
user.prefecture
end
prefecture_array.any? {|prefecture| prefecture ~~ "東京都"} ? "東京あり" : "東京なし"

たしかに、なんかめっちゃ汚い。。。そして冗長。

それでコードレビューをもらって最終的にできたのがこちら

User.all.any? {|user| user.prefecture == "東京都"} ? "東京あり" : "東京なし"

なんときれいなコードなんでしょう。

本当はブロックの中身はもっと複雑だったので、1行には収まらないのですが、
プログラムって本当にいろんな書き方があるんだなーと学んだのでした。

コードレビューは積極的にしてもらったほうがいいし、してあげたほうがいい。
その時間をいかに捻出するかも、エンジニアチームとしてはテーマになると思う。

そして、もっとリファクタリングできるかもしれないと考える癖がついたのも大きいですね。