毎日やったことを記録していく(2019/9/3 149日目)

今日やったこと

英語

TOEIC® L&R テスト 文法問題 でる1000問
  • 回答数:5問
iKnow
  • 新規:0個
  • 復習:5個
スタディサプリENGLISH
  • クイックワードクイズ:1サブセクション

開発

danime-nico-tools
  • fixturesの更新

知ったこと

定数(クラス)の取得

生のRubyではString#classifyが使えないが、Object.const_getで定数(クラスも)を取得できる。
ただし、1階層しか取得できないので子階層の定数(クラス)を取得する際は複数回Object.const_getを呼ぶ必要がある。

不要な抽象化

柔軟性やDRYを求め過ぎて抽象化しすぎるとかえって可読性・保守性の低いコードになってしまうので、素直なコードを書いた方がいい場面も多い。

参考

blog.sigbus.info note.mu

名前をつけるか直に書くか

名前をつけたバージョン
def hoge_information
  hoge_information_members.map(&method(:member)).join(', ')
end

def hogeinformation_members
  %i[first_name last_name age address telephone_number]
end
直に書いたバージョン
def hoge_information
  %i[first_name last_name age address telephone_number].map(&method(:member)).join(', ')
end

メソッドとして名前をつけた場合、配列の種類が増えてくるとhoge_information_memberのようなメソッドがどんどん増えていくことになるのでソースコードの見通しが悪くなってしまう。

感想等

やっぱりレビュー受けるのは楽しい

研修でコードレビューを受けてるけど、一人でコードを書いているときにはない学びを得られて非常に楽しい。
あと、レビューで褒められるとモチベーション上がるのが実感できたので今後は褒めスキルをもっと高めていきたい。