20201005_アウトプット・今週の振り返り

アプトプット画像

今日学んだこと

binding.pryとrails cの違い


「メッセージ」に「チャットルーム」のidがきちんと紐付けされているか、確認したい時に以下のような違いがある。
今回は、rspecを導入し、FactoryBotで生成されたダミーの中身を確認したい。

【binding.pry】実際の処理を止めて動作や中身を確認できる

確認したい直前に、binding.pryをVSコード上に書く。

# 対象ファイルの実行
〇〇@〇〇noMacBook-Air chat-app % bundle exec rspec spec/models/message_spec.rb

# message_spec.rb内にて、定義していた変数を指定
[1] pry(#<RSpec::ExampleGroups::Message::Create>)> @message

# @messageの中身を確認することができる
=> #<Message:0x00007ff9317016d8
 id: nil,
 content: "Corrupti pariatur veniam ratione.",
 room_id: nil,
 user_id: nil,
 created_at: nil,
 updated_at: nil>
rails c(console)】外から、新しい情報を加えたり、処理することができる
# 立ち上げ
〇〇@〇〇noMacBook-Air chat-app % rails c
Running via Spring preloader in process 68296
Loading development environment (Rails 6.0.3.3)

# 外から作るので、createしないといけない
[1] pry(main)> FactoryBot.create(:message)

# 作ったものを、変数の中に入れる
[2] pry(main)> test = FactoryBot.create(:message)

# 変数の中身を取り出す 
[3] pry(main)> test.room.id

# @messageの中身を見ることができる
=> 13



rails全般

  • どんどん中の箱を開けていく時→ドット(.)を使って深堀する

  • 別のものとの繋がりを持たせる時→コンマ(,)を使って繋げる

  • パラムスが絡む時→キーとバリューで表現する→シンボル(:)を使って表す。(引数で渡すときは()が多い。配列から取り出すときは[]が多い。)



テストコードについて

  • モデルのテストコードと、結合テストコードについて学んだ。



積み残し(復習したいところ)

ピンポイントでわからないところは、昨日メンターさんに聞けたので無し。復習したいところをまとめておく。

  • devise rollback方法

  • カラム追加の方法

  • Rails勉強会



今週の振り返り

現在の戦略

  • (HOWよりも)WHYを大事にする

  • 作業時間を確保する(平日4時間、休日10時間)

  • 優先順位を決めて行う(約60%がテックキャンプのカリキュラムを進めること・仲間とのアウトプット、約20%がプロゲートで知識補う、約20%がブログでアウトプット)

達成具合

7日中、3日達成できた(合計36時間行ったものの、平日4時間と休日10時間のハードルを越せなかった。)

今週の振り返り(優先順位)

  • 初めはカリキュラム中心に進めていたものの、MVCの理解が足りないため、分からなかった。

  • このまま進めていても、このカリキュラムの内容が無駄になってしまう気がしたため、遠回りは近道だと信じて、一旦プロゲート中心に復習をした。

  • 遅れてしまったものの、MVCの理解が深まったおかげで、RailsRubyの繋がりがやっと持てて楽しくなった。(WHYをずっと考えていると、後から急に繋がってくる!!)

  • 週の後半からは、カリキュラムの巻き返しを行った。


今週の振り返り(作業時間)

  • 作業時間確保は、理解を深めるにあたって大事だが、時間を超えるまで頑張ろうとしてしまい、睡眠時間が足りなかった(結果、集中力は落ちている気がする)

  • 勉強時間と、睡眠時間の質は両方とも大事なので、方針を少し見直そうと思った。



来週から(戦略の改善)

  • (HOWよりも)WHYを大事にする

  • 作業時間を確保する(原則、平日4時間、休日10時間)
    ただし、 睡眠時間の0時〜6時を守ること。週35時間以上の勉強時間を確保できれば良しとする。

  • 優先順位を決めて行う(約60%がテックキャンプのカリキュラムを進めること・仲間とのアウトプット、約20%がプロゲートで知識補う、約20%がブログでアウトプット)

その他(チームミーティング)

今週のチームミーティングは、ざっくり言うと「自分でポジティブなルールを作り出せたら最強」という話でした。
本当にその通りだなと思ったので、取り入れていこうと思います。

方法

(1)今週あったポジティブなことを書き出す
(2)他の人の発表との、共通点を見つけ出す(つまり、ポジティブの本質は何なのか。)
(3)共通点を元に、それを偶発的ではなく、計画的に作り出せる方法を考える



自分に置き換えてみた

(1)今週あったポジティブな出来事
  • 仕事で大きいミスが発覚したが、テックキャンプでの思考が活きて「現状の把握」をしっかり行った上で「仮説」を立てながら、一つ一つ確認や調整を行ったところ、解決に向かう見通しが立った。「迅速に対応出来ていて素晴らしいね」とまさかの上司からお褒めの言葉をもらえて嬉しかった。この件を通して、新しいことを学んで成長の糧になっていること。

  • MVCの意味がやっとわかって嬉しかったこと。

  • ローラの筋トレをやったこと。(キツイけど終わるとすっきりする)

  • コロナの講演会が大変勉強になったこと。(対策のアップデートしていなかったことに気が付く)

  • メンターさんに褒めてもらえて嬉しかったこと。

  • 別のチームの方で、気が置けない仲間ができたこと。

  • ビードリルやっと追いついたこと(笑)

  • 職場の別のグループの先輩が、私のことを心配してランチに誘ってくれたこと。(とても癒された)

(2)他の人の発表との、共通点を見つけ出す(つまり、ポジティブの本質は何なのか。)
  • 起きた「事実」に対して、どう捉えるかは自分次第。(それなら、ポジティブな主観の方が楽しい)

  • 一人ではなく、誰かとの繋がりがもたらしている。

  • 好きなことや、楽しみなことがそのまま、ポジティブに繋がっている。

(3)共通点を元に、それを偶発的ではなく、計画的に作り出せる方法を考える
  • アインシュタインの「どうして自分を責めるんですか?他人がちゃんと必要なときに責めてくれるんだから、いいじゃないですか。」という言葉を大事にする。(思考を変える)

  • 誰かとの繋がりを持つ時に、感謝の念を持つ。小さなことでも、良いところに目を向ける。

  • ご褒美DAYを作る(戦略を達成できたら、週に1回くらいのペースでぶどうを食べることと、2週間に1回くらいのペースで夫と映画を見る)

以上です。 見ていただいた方、ありがとうございました。