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

今日やったこと

英語

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

開発

danime-nico-tools
  • fixturesの更新

知ったこと

ActiveRecord::Base.human_attribute_name

i18nによる翻訳とattributeの値の取得を同時にできるメソッド。

参考

fuqda.hatenablog.com

ActiveRecord::Base.model_name.human

i18nによる翻訳とモデル名の取得を同時にできるメソッド。

slimのruby:フィルター

slimで下記の2つのコードは同じ結果を返す。

# コントロールステートメント
- hoge = @hoge
- fuga = @fuga
- hage = @hage

# rubyフィルター
ruby:
  hoge = @hoge
  fuga = @fuga
  hage = @hage

感想等

以前やった経験があることを忘れていて変なやり方をしてハマってしまった。
人間は脆弱性だらけ・・・。

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

今日やったこと

英語

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

開発

danime-nico-tools
  • fixturesの更新

知ったこと

コミットの粒度

コミットの粒度は作業単位にするのではなく、後でレビュアーやログを参照する人がどのような目的で変更を行ったかがわかるくらいの単位に分けたほうが良い。

感想等

仕事が雑い

急いだりタスクが見積もりや予定から遅れてくると諸々が雑くなって確認作業を怠るのが悪い癖。
どんなときも確認作業は必ず入れなければいけないと反省。
確認怠ると手戻り発生してかえって作業遅れるしいいことない。
注意一秒怪我一生。

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

今日やったこと

英語

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

開発

danime-nico-tools
  • fixturesの更新

知ったこと

puts

Kernel#putsには可変長引数を渡せる。
なので複数行出力したいときに配列にして渡さなくてもいい。

# こう書かなくても
puts \
  [
    header,
    lines,
    footer
  ]

# こっちで上記と同じことができる
puts \
  header,
  lines,
  footer

require

大元のrbファイルで必要なrbファイルを全てrequireしておくだけで動くようになるが、各ファイルで必要なファイルをrequireしておくと個別で使用したくなった場合に便利。

Arrayの特定要素のみをmapする処理

新たに配列を生成してそこからnilを取り除く処理を書く場合、意外にループ回数が2回あるmap + compactの方がinjecteach_with_objectでループ1回で必要なもののみ配列に追加していく書き方よりも早いらしい。 ただ大した差はないので場合によって可読性の高い書き方を選択したほうが吉。

参考

qiita.com

感想等

朝起きたらなぜか頭が痛かった。
風邪ではないはずだが・・・大丈夫だろうか?

毎日やったことを記録していく(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のようなメソッドがどんどん増えていくことになるのでソースコードの見通しが悪くなってしまう。

感想等

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

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

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

今日やったこと

英語

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

開発

danime-nico-tools
  • fixturesの更新

知ったこと

Range#to_a

Range#to_aで配列を作成できる。(以前から知っていたが忘れていたためメモ)

(1..10).to_a  #=> [1,2,3,4,5,6,7,8,9,10]

感想等

初出社。
TimeMachineでの社用マシンへの移行がうまくいかず環境構築に思ったよりも時間がかかってしまった。
GitHubにdotfiles等をあげていたのでなんとかなりそうでよかった。
しかし自宅のWi-fi環境が整うまで自宅で思うように活動できなくてつらたん・・・。

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

今日やったこと

英語

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

読書

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版
  • 位置No: 1250〜1999

開発

danime-nico-tools
  • fixturesの更新

知ったこと

なし

感想等

宅配待ちながらの読書の日。
なんとか最低限必要なことはできた。
明日は初出社だ・・・。

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

今日やったこと

英語

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

読書

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版
  • 位置No: 633〜1249

開発

danime-nico-tools
  • fixturesの更新

知ったこと

なし

感想等

引き続き必要な物の調達に奔走。
明日中にAWSの本も最低限のところまで進めていかねば・・・。