スクール課題アプリ完成後の振り返り

こんにちは、カイノです。

 

スクールが始まって6日経ちました。

毎日コードを書いて、本日スクールの最終課題アプリ開発が終わりました!

 

メンターさん曰く「いままでに無いくらい早い」と言っていただけました。事前学習をはりきって進めていたからではあります。

個人的にはとても難しかったですが、なんとか終わりました。

 

f:id:kaifumi:20200121191158p:plain

 

作ったアプリは基礎的な「本のレビューアプリ」で

内容としては

・本の投稿・一覧・詳細・編集・削除機能実装

・ユーザーの一覧・詳細・編集機能実装

・deviseの実装

・ログイン状態による見え方の調整

・画像投稿機能実装

・部分テンプレート実装

・Bootstrap仕様に変更

・テスト解析後のエラー対応

などです。

 

あっさりしているように見えるかもしれませんが、わからないことが沢山ありとても苦労しました。

その度に調べて、試して、それでもわからなければメンターさんに聞くを繰り返してました。

 

困った時に助けてくれる存在がいるって本当に助かります。

助かってはいますが、

わからないことがあってもすぐ聞くってことはしなかったですね。

自走力も鍛えなきゃいけないので、まずは自分で調べてからです。 

 

やっていくうちに気づいたのですが、

「あ〜難しい、なんだこれ〜」って感じたわからないことは一度でも分かってしまえば、

「なんだ簡単だな〜」ってあとからは思います。

 

つまりは難しいことが簡単なことに変わりました。

難しいこと→簡単なことに持っていくまでに時間をかけ過ぎてはいけないなと思いました。

 

技術的な点で

特に苦労したのでは以下の2点です。

 

・部分テンプレート実装後のビューとコントローラー調整

・devise.rbを不必要にいじったことによるエラー対応

 

1つ目は「部分テンプレート実装後のビューとコントローラー調整」です。

部分テンプレートの説明からしますと、

以下のサイト見てもらうと詳しく載ってますが、

https://qiita.com/okamoto_ryo/items/026b43e965a1180113ba)

通化しているHTML構造の部分を一括にまとめたものを部分テンプレートといいます。

メリットは

・繰り返し再利用できる
・繰り返し書くコードを一回で済ます
・修正するときに修正箇所が少なく済む

ですので、手間が減って便利ですが、表示するビューで求められるインスタンス変数などが定義されてない状態になりがちです。

そのためno methodエラーを吐き出しまくりました。

それぞれのコントローラー・アクション、ビューに条件定義などの設定を根気良くしていってなんとか実装できました。

 

メンターさんにアドバイスもらった内容で

部分テンプレートはアプリ開発ワイヤーフレームを作る段階で決めてしまえばスムーズに作れるそうです。次はそこを意識していきます。

 

 

2つ目の苦労した点が「devise.rbを不必要にいじったことによるエラー対応」です。

いじったことによるエラーの対応数自体は1つじゃなく何個もあるのですが、一番きつかったものをご紹介します。

 

初心者にありがちかと思いますが、変えちゃいけないところを変えちゃったんです。

何が良いか何が良くないか分別がつかない少年のように、あれこれいじっちゃいました。

そのおかげで勉強にはなりました。(笑) 

 

devise.rbとはログイン機能を司るdeviseというGemの設定事項が書かれているファイルです。

ざっくり言いますとここを下手にいじるとログイン機能などにおいてエラーになります。

 

#config.request_keys = [:name]

私はこのデフォルトでコメントアウトされている機能をなぜかハッシュタグを外して適用させていました。

そのためにdeviseでnameを求める機能ではことごとくエラーになりました。

 

何が原因かわからず、デフォルトを確認するとコメントアウトしといてよかったんだと気付きました。

詰まったら絶対リソースやデフォルトを確認しようと思いました。

 

他にもなんやかんやありまして、

あとはrspecというテスト解析Gemを使って、エラー箇所をつぶしていき、なんと完成しました。

テスト解析後、70個エラー出たので白目になってました。

 

 

今回の課題を通してアプリ開発の基礎を学習することができ、なんとなく要領を掴むことができました。

 

まだまだわからないことが多いので引き続き勉強していきます。