30代Webエンジニア転職奮闘記 プログラミングスクール第9週目

こんにちは。Almontaです!

この記事では、Webエンジニアへの転職を決めた、私のプログラミングスクールDIVE INTO CODE入校から卒業までの4ヶ月間(123日)、更には就職までの軌跡を記していきます。

9週目に入りました!

日記ブログとなり、読者に配慮のない記事となっていますが、プログラミングスクールではどのような過程で、どんな内容を学んでいくのか、これからプログラミングスクールを考えている方には参考になるかと思います。

必要に応じて、本日記ブログを整理し、別でまとめ記事を作成しようと思います。

スクールの4ヶ月間の全体スケジュールがこちら

引用:DIVE INTO CODE公式HP

52日目 2021年6月21日(月)

今日やったこと

  • 課題タスク作成アプリstep3
  • Start Bootstrapの導入について ペアワーク

課題タスク作成アプリstep3

昨日に引き続き、タスク名検索機能と、ステータスの検索機能を追加した。

2つの条件で検索をかけるため、どちらか一方の検索条件を入れた場合と、両方入れた場合とで条件式を追加し、そのロジックをコントローラからモデルに移す方法について学んだ。

Start Bootstrapの導入について ペアワーク

Bootstrapのテンプレートの導入についてペアでワークを行った。

以下により、簡単にデザインを導入できる。

今日の成果

2つの条件で検索をかける機能の実装完了

今日の気づき

  • なぜコントローラからモデルにロジックを移したのか?
    コントローラには、情報取得用のメソッドやSQLの情報は記載しないのが原則ということを知った。

53日目 2021年6月22日(火)

今日やったこと

  • マインドセット
  • 課題タスク作成アプリstep3

マインドセット

A little bit better
前よりも少しずつ良い状態にしていくということがイノベーションの原点

「ときどき、ただの問題解決をイノベーションだと勘違いしている人がいる。イノベーションにとって大切なのは知識よりもモチベーション。もっと知りたい、もっと良くしたいという情熱がなければイノベーションは起こらない」

Stephen Wozniak

今日は、Appleの創業者Stephen Wozniakの言葉

問題解決はイノベーションじゃない。衝撃を受けました。前よりも少しずつの改善で良いけど、問題解決時点で、改善を止めてしまっては、イノベーションは生まれない。イノベーションはその先にある。この貪欲に求め続けるモチベーションこそが世界を変えると学びました。

課題タスク作成アプリstep3

今日やった要件は2点

  • 作成したタスク名検索とステータス検索機能、ソート機能のRspec
  • 検索インデックスを追加

検索、ソートが正しく行われているか、テストコードを追加した。

また、検索インデックスという、DBの登録を名前順に整理して、検索を早くしてくれる機能の追加を行った。

今日の成果

2つのテストのRspecができた!

今日の気づき

  • Rspecについてじっくり学び、いろいろな方法を試したのことで、let/let!/beforeの違いについて理解できた!Rspecは最初取っ付きづらいし、エラー文にヒントが少ないため嫌だったけど分かると楽しい!

54日目 2021年6月23日(水)

今日やったこと

  • 課題タスク作成アプリstep3

課題タスク作成アプリstep3

今日学んだことは以下4点

  • 検索機能のModel spec
  • 優先順位の設定(これは、先週日曜日に学んだ終了期限のソート機能を流用出来た)
  • ページネーションの追加
  • Bootstrapでデザイン導入

今日は特に詰まること無く進められた。

しいて挙げると、優先順位の追加は、終了期限に基づいてコードを書いたはずなのにうまく実装出来ない。原因は複数形/単数形の誤記だった(priorityにしなければいけないところをpriorities)にしていた。

今日の成果

課題タスク作成アプリstep3完了

今日の気づき

  • RSpecは動くと楽しい!けど、テストするべきことが合っていなくても、テストは通ってしまうから、コードをどう書くか、ちゃんと学ぶ必要がある。

55日目 2021年6月24日(木)

今日やったこと

  • 課題タスク作成アプリstep4

課題タスク作成アプリstep4

今日実装した機能はこちら

  • Userのモデルを追加し、Taskとアソシエーションで紐付け
  • ログイン機能追加
  • 管理画面を追加し、CRUD機能追加

今日の成果

ログイン機能の追加完了

今日の気づき

  • アソシエーションしたあとのアソシエーションした後の外部キーuser_idに値を入れる処理を忘れていた。「外部キーはnillであってはならない」というRailsの仕様

56日目 2021年6月25日(金)

今日やったこと

  • 課題タスク作成アプリstep4
  • グループワーク 各自課題で作成したコードのコードリーディング

課題タスク作成アプリstep4

昨日に引き続きStep4。今日実装した機能はこちら

  • ページアクセス制限の追加(管理者以外は管理者ページにアクセス出来なくする)
  • N+1問題
    これは大量のデータを扱う時はクエリの発行回数を軽減できるようアソシエーションメソッドを使うというもの。
  • コールバックについて
    管理者が一人もいなくなってしまわないようモデルに、処理を停止させる機能を書く

グループワーク 各自課題で作成したコードのコードリーディング

課題で各自が書いたコードの見せ合いをした。

  • コントローラの条件分岐の書き方について
  • モデルに書いた検索ロジックについて
  • Rspecの書き方について

ペアワークを通して学んだこと

  • RspecのFactoryBotの活用の仕方
  • Rspecでsleeepを使う。リンクはパスを使う
  • Bootstrapを活用してすごいデザインを取り入れている

などなど、とても勉強になる。

今日の成果

コールバックについて習得

今日の気づき

  • Bootstrapの可能性が拡がった。もっと使えるようになりたい。

57日目 2021年6月26日(土)

今日やったこと

  • 課題タスク作成アプリstep4

課題タスク作成アプリstep4

今日やったことはこちら

  • リファクタリング
    昨日のワークで、コードリーディングをする際の可読性の大切さを感じたので、コードを整えた。具体的には、RspecのFactorybotで作る名前をtest1〜にするなど。
  • デザインを整えた
    これも昨日のワークで、デザインについてもう少し知識を付けておこうと思い、デザインを変更した。
  • Rspec
    Step4でログイン機能を追加したことにより、未ログイン状態でのアクセス制限がかかり、Rspecテストが走らなくなってしまった。これを解消するためにRspecを変更
今日の成果

ログイン機能を追加したことによるRspecの変更完了

今日の気づき

Rspec内で定義した”def login”と、ページリンクを書く順番の間違いで、テストが全く起きず3時間くらい苦しめられた。同期の2人に助けられ、解消できた。同期は大事。

58日目 2021年6月27日(日)

今日やったこと

  • 課題タスク作成アプリstep4

課題タスク作成アプリstep4

今日やったことはこちら

  • ページアクセス制限追加
    他人のマイページのアクセス制限
  • Rspec
    ログイン、管理者権限のテストを追加した。

今日の成果

課題タスク作成アプリStep4達成!

今日の気づき

ページアクセス制限の条件の書き方の理解が不十分。current_userやparams[:id]、user.idなど、その辺りを今後注意深く見ていく必要がある。

まとめ

先週の時点では、Rspecが分からなくて困っていたが、Rspecは分かるようになり、わかれば楽しい!と感じるようになった。それよりも、今週はページアクセス制限の条件付けで結構苦労したため、今後注意深く見ていくようにしたい。

コメント