毎日やったことを記録していく(2019/6/6 60日目)

今日やったこと

英語

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

開発

danime-nico-tools
  • fixturesの更新

転職活動

  • 調査

知ったこと

なし

感想等

inkdropに英語でバグリポート

inkdropをv4にバージョンアップした際にノートの検索ができなくなっていたので英語でバグリポートに挑戦。
そしたら投稿から2分という超爆速で作者の@craftzdogさんからリプライが返ってきた。
実にいいUXだった。

毎日やったことを記録していく(2019/6/5 59日目)

今日やったこと

英語

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

開発

danime-nico-tools
  • fixturesの更新
案件1
  • プリンタの対応

転職活動

  • 調査

知ったこと

なし

感想等

ちょっと色々あってすごく落ち込む。
そのせいでその後は何も手につかなかった・・・。

毎日やったことを記録していく(2019/6/4 58日目)

今日やったこと

英語

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

開発

danime-nico-tools
  • fixturesの更新

転職活動

  • 調査

コミュニティ

Kobe.rb
  • 他の方のサポート

知ったこと

なし

感想等

今日は祖母の手術が緊急で入ったため、色々とあんまり進まなかった。

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

今日やったこと

英語

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

開発

danime-nico-tools
  • fixturesの更新

転職活動

  • 調査

コミュニティ

Sendagaya.rb
  • ActiveRecord
  • 認証
  • Railsのアップデートの際に大変なGem
  • 開発環境でのデータ

知ったこと

Range

Ruby2.6から..xのような終端なしRangeが使えるようになった。
逆の始端なしRangeはSyntax的にまだできないらしい。

ActiveRecordのメソッドかSQL

ある程度複雑なクエリを投げようとすると全てActiveRecordのメソッドで書くと可読性が著しく下がっていくので、その場合はSQL書いた方がいい。

感想等

ActiveRecord

今日のSendagaya.rbではActiveRecordの話で盛り上がった。
それに関連してSqueelとかRansackとかRailsのアップデートの際に大変なGemの話もした。
コレを機会にActiveRecordとかRansackのコードをもっと読もうと思った。

毎日やったことを記録していく(2019/6/2 56日目)

今日やったこと

英語

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

開発

danime-nico-tools
  • fixturesの更新

OSS

Annict
  • Episodeのtitleが長いとデザインが崩れる現象に対してPR
    • マージされました!
Bootcamp
  • Vue.jsのコードリーディングと色々触ってみる

知ったこと

same-origin

Requestの際にcredentialsにsame-originをセットするとRequest先のURLが呼び出し元のスクリプトと同一オリジンだった場合、クッキーを送信する。

感想等

Vue.jsの理解不足

BoorcampのissueでやってみたいやつがあったのでVue.jsの勉強も兼ねて今日色々いじってみていたけど、Vue.js力が全然足りてないことが改めて確認できた。
なのでこれからもっと重点的にやっていこうかなと思う。

毎日やったことを記録していく(2019/6/1 55日目)

今日やったこと

英語

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

開発

danime-nico-tools
  • fixturesの更新

その他

  • RubyのProc・lambdaについて調査

知ったこと

RubyのProc・lambdaに関して

RubyのProcとlambdaに関して理解不足なところがあったので調べ直して知識を整理してみた。

ブロック引数の書き方の違い
def a
  Proc.new { |b| puts b }
end

# 上記と下記は同じ
def a
  -> (b) { puts b }
end
ブロック引数の数の厳密性の違い

Procは渡した引数が多い場合は必要なもの以外は無視され、少ない場合は足りない箇所にはnilが入る。

# 渡す引数が多い場合
a = Proc.new { |b| b }
a.call(1,2) # => 1

# 渡す引数が少ない場合
a = Proc.new { |b,c| [b,c] }
a.call(1) # => [1,nil]

lambdaはブロック引数の数が異なるとArgumentErrorが発生する。

a = Proc.new { |b| puts b }
a.call(1,2) # => ArgumentError
returnやbreakを使用した際の違い

Procはメソッド内でcallするとcallされたメソッド自体の処理から抜ける。

def using_proc
  proc = Proc.new { return "proc"}
  a = proc.call
  'after ' + a
end
using_proc # =>"proc"

lambdaはブロック内の処理からのみ抜ける。

def using_lambda
  lambda = -> { return "lambda"}
  a = proc.call
  'after ' + a
end
using_lambda # =>"after lambda"
mapとかでよく見る&演算子

例えば下記のようなやつ。

[1,2,3].map(&b)

これは&で修飾されたオブジェクトをブロックとして評価する。

def b
  -> (c) { puts c }
end

[1,2,3].map(&b)

# 上記は下記と同じ
[1,2,3].map { |c| puts c }

あと&にメソッド名をシンボルで渡した場合。
まず、&にはProcやlambda以外にも、to_procを持つオブジェクトを渡せる。
デフォルトだとProc、lambda、Methodのオブジェクトがto_procを持つ。
また、シンボルもto_procを持っている。
リファレンスによると下記の通り。

self に対応する Proc オブジェクトを返します。
生成される Proc オブジェクトを呼びだす(Proc#call)と、 Proc#callの第一引数をレシーバとして、 self という名前のメソッドを 残りの引数を渡して呼びだします。

この&の挙動とSymbol#to_procによって、下記のようなよく見るコードが実現されている。

[1,2,3].map(&:to_s)

# Symbol#to_procが実行された際のイメージとしてはこんな感じ?
[1,2,3].map { |n| to_s_proc.call(n) }

# 最終的に下記を書いたことになる
[1,2,3].map { |n| n.to_s }
その他参考

methodを使ったテクはかなり有用そう。
ただ乱用すると可読性は落ちるかも?

qiita.com yuroyoro.hatenablog.com

感想等

この調子で

今日はずっと後回しにしていたProcに関する疑問を理解できたのでよかった。
この調子でコツコツタスクを消化していきたい。

毎日やったことを記録していく(2019/5/31 54日目)

今日やったこと

英語

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

開発

danime-nico-tools
  • fixturesの更新
  • Railsのアップデート
    • 5.2.1 → 5.2.3
  • Rubyのアップデート
    • 2.5.1 → 2.6.3
  • Node.jsのアップデート
    • v8.0.0 → v12.3.1

知ったこと

Webpacker4

現在のWebpackerはstylesheet_pack_tagを使う際はconfig/webpacker.ymlでextract_css: trueを設定してやらないといけない。
これを設定しておかないとstylesheet_pack_tagがnilを返すのでwebpackerで管理しているcssをViewで読み込んでくれない。

感想等

アップデート

今までサボっていたdanime-nico-toolsの各種アップデートを今日はまとめてやった。
Node.jsとかWebpacker周りとかかなり手こずったけど、1回経験できたので次からはもう少しスムーズにできる・・・はず。