20210201・0202_アウトプット(オリジナルアプリ・フリマアプリ)

アウトプット画像

2/1行ったこと 2時間30分
  • Rubyアルゴリズム…30分

  • オリジナルアプリ…2時間
    👉Herokuでアップすると、JavaScriptで挿入している画像が上手く反映されない。AWSのS3実装したら直るかな?と思って実装していた。(結果上手く行かず・・)

  • 夜は履歴書、職務経歴書の作成
    👉5割進んだ。

2/2行なったこと 6時間40分
  • オリジナルアプリ…5時間
    👉テラテイルのおかげでエラー解決できた。本当に嬉しい。

  • フリマアプリ…1時間
    👉Elastic IP アドレスと、 Capistrano、アソシエーションについて知れた!!

  • アウトプット…40分

新しい発見について

オリジナルアプリについて

  • 本番環境において「セルフコンパッション」で呟くと、画像が反映されないことに悩んでいた。

  • テラテイルで質問したら、3名の方が返事をくれた。(嬉しい)

teratail.com

  • いただいた回答を元に、格闘すること3時間・・遠回りしまくったけどできた〜!!
いただいた回答のおかげで学べたこと
  • 本番環境においてアセットコンパイルは自動で行われないので自分で行う必要があること。

  • あやふやだった絶対パス相対パスの違いについて、絶対パスは外からみて対象のところまで辿る方法。相対パスは今いるところから上を眺める方法と理解。👀

  • 検証から、ネットワークを選択するとエラー原因(番号)が見れること。(ターミナルや、VSコードだと、ローカル環境では上手く行っているけど本番環境では上手く行っていない時の、本番環境のログ出てこなくて、どこ見たらいいのか分からなかったので、本当に助かった!今後の勉強にもなった。)

フリマアプリについて

*久しぶりに、Elastic IP アドレスでフリマアプリにログインしたところエラーになってしまった。we're sorry, but something went wrong.

  • 結論から言うと、Capistranoを使って最新のマスターにあるデータを本番環境にデプロイしていなかったのが原因だった😭

Capistranoについて

f.〇〇@e〇〇noMacBook-Air furima-29074 % bundle exec cap production deploy
  • Capistranoを設定しているおかげで、カレントディレクトリに移動し上記コマンドを打つことによって、マスターブランチの内容がAWS EC2に反映されることを理解。

  • また、今更ながら、Capistranoの自動化によって、「紫色」のコマンドが実行され、本番環境に反映されていくと理解。

キャピストラーノ

  • なので、反対に言えば、「紫色」以外のコマンドは、EC2上のカレントディレクトリに移動し、コマンドを打って本番環境へ反映させる必要があると理解。

(例)「紫色」以外のコマンドで、データベースをドロップしたい時

# ホームディレクトリに移動する
〇〇@〇〇noMacBook-Air furima-29074 % cd ~

# sshに移動する
〇〇@〇〇noMacBook-Air ~ % cd .ssh/

# 接続する
〇〇@e〇〇noMacBook-Air .ssh % ssh -i sde〇〇.pem ec2-user@54.〇〇

# EC2内の対象アプリへ移動する
[ec2-user@ip-172-31-7-175 ~]$ cd /var/www/furima-29074

# DBをドロップする
[ec2-user@ip-172-31-7-175 furima-29074]$ RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:drop

本番環境のログを確認したい時

# カレントディレクトリから、production.logに移動して見ている。「シフトキー+Gで」最新のログの場所へいく!
[ec2-user@ip-172-31-7-175 furima-29074]$ less current/log/production.log

アソシエーションについて

ずっと曖昧だったアソシエーションについてメンターさんに教えていただいた😭

  • アソシエーションを組むことによって簡単な記述で、他のDBからの情報を反映できると理解。

  • アソシエーションを使わずに、SQL文などを使って表示させることも可能だが、長くなってしまう。

  • データを表示させるには「アソシエーション」+「ストロングパラメーター」が必須と思っていたが、あくまで「ストロングパラメーター」はデータベースに保存させるときにどのデータを許可するか?という話なので、「データを保存させる必要がない」けど「他のDBからデータを取ってきたい」と言う場合にはアソシエーションだけでOKと知った!!!




感想

  • ずっとモヤモヤしていた、アソシエーションのことや、Herokuでの画像が反映しないこと、フリマアプリ気付いたらAWS EC2で見れなくなっていたこと(デプロイコマンドしていなかっただけだった)について解決できた!!!!!!! 嬉しかったなあ〜!!!!!!!!

  • 最近、すごく集中して、勉強したり転職に向けた準備をしているけれど、家でも会社でも朝から晩までパソコン見すぎて目が痛い。

  • 集中していると瞬きするの忘れているのかな?目も大事なので気をつけたい。💦

  • 来週か再来週から応募しようと思っているので、オリジナルアプリ完成(できれば周りの人に使っていただいて、改善もしたい)まで進めたい!💦

  • 最近、つい焦ってしまう自分がいるので、じっくりマイペースで楽しみながら勉強したいとふと思ったりすることがある。(会社の時間もコード書いていたいなあ、と思ったりする。)

  • アルゴリズムわかっていなくて、本当にプログラマーなれるのかなって不安でいっぱいになったりもする。

  • 他人と比べても自分が成長してくれるわけでなく、コツコツ自分が成長するしか方法はないと捉えてまた明日やろう!!


覚書(12/29計画の見直し)

(1)やるべきこと (2)やりたいこと (3)やれること

(1)やるべきこと

  • 卒業要件の完成

(2)やりたいこと

(3)やれること

メンタル:楽しみながら、ゲーム感覚でいく🎮😎

時間で区切り(達成すればよし)
  • 1日 15分以上勉強する
追加実装のミニアプリを作り、引き出しを増やす
優先順位 内容(機能) 締め切り 達成度
1 AWS S3 12/18 完了(フリマアプリ)に実装)
2 AWS EC2 12/24 完了(フリマアプリに実装)
3 ウィザード形式 12/27 完了
4 SNS認証 12/28 完了
5 複数条件検索 12/29 完了
6 タグ付 12/31 完了
7 画像プレビュー 1/2 完了※フォーク
8 複数枚写真OK 1/4 完了※7に追加実装
9 コメント機能(即時更新) 1/8 完了
10 クレカ登録 1/10 完了
11 パンくず 1/14 完了
12 日本語エラー 1/18 完了



身に付ける力(直近)

  • PHP7

  • Docker


身に付ける力(ゆくゆく・覚書)

  • ドメイン駆動開発

  • 環境構築

  • 環境変数などのOS知識

  • バージョン対応力

  • データベースをインポートする力・エクスポートする

  • GitHubActions×OpenAPIGenerator(APICilent)