毎日やったことを記録していく(2019/10/8 184日目)

今日やったこと

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

読書

Refactoring: Ruby Edition

位置No: 959〜979

開発

danime-nico-tools
  • fixturesの更新

知ったこと

関数合成

関数合成はProc#>>やProc#<<を使う。
そして&にはProcを渡せる。
つまり下記のような書き方ができる。

# Ruby2.7のNumbered Parameterも使ったコード
Hoge.public_instance_methods(false).tap(&-> { delegate(_1, to: :hoge) } >> -> { private *_1 }) # Rails5.2の場合はdelegateにprivateキーワードがあるのでこの書き方はしなくてもいい

大変便利。

Enumerator::Lazy

遅延評価をするためのクラス。
複数回mapを読んだりする場合にループ回数を減らしたりできるが、lazyは基本的に遅くなる。 下記のような場合に使う。

  1. 大きすぎて全体をメモリに乗せられないもの 例:数GBのファイル
  2. 終わりがわからないもの 例:ネットワーク越しにやってくるデータ
  3. 終わりがないもの 例: (Date.today..)

感想等

仕事は落ち着いた。
今日はruby-jpに入り浸ってしまったwww(ちゃんと仕事はしてると前置きしつつ)
週末に社内でLTしないといけないけど準備全然できてないー(゚Д゚)ウボァー