20210116_アウトプット(オリジナルアプリ)

アウトプット画像

今日行ったこと 7時間15分

  • オリジナルアプリ 
    *ホーム画面(ヘッダーフッターの実装)👉2時間15分(完)
    *新規登録・ログイン画面のビュー👉2時間40分(完)  
    *ユーザー新規登録のテストコード👉2時間20分(8割くらい)



新しい発見

実装していた時に、参考にしたサイト
  • 記事に影を出す際、勉強になった!!

qiita.com

  • 記事を投稿する時にこれ使いたいと思った。見易くて便利!

uxmilk.jp

Userモデルのテストコードについて

ダミーを作れるFakerについて、文字数に関する制限ができるのとできないのがあると知った💡

  • nicknameについて「15文字以下」にしたかったので、nickname { Faker::Name.name(max_length: 15) }にしたら以下の通りエラー。
     ArgumentError:
       wrong number of arguments (given 1, expected 0)
  • 何故だろう??と思って、FakerのGithub見ていたら、見本から、lengthを設定できるものと出来ないものがある(それぞれ毎に型が決まっている)という違いを見つけた。

  • nickname { Faker::String.random(length: 1..15) }にしたところ、15字以下で生成されるようになったが、stringなのに、記号とかも生成されちゃうので、テストコードのコマンド実行時にアプリのDB側で「保存できません」とエラーになってしまった😂

  • 結果、ニックネームということでキャラクターの名前のFakerを使った。



Rails6.0とMysql2の互換性について

テストコード上は、緑色になり完了するものの、警告がでた。(フリマアプリの時ログ見たら同じエラー出ていたのに気づかなかった) Rails6とMysql互換性

まずこのエラーはなにか?

qiita.com

  • 一意性を持たせる制約について、Mysqlは大文字と小文字を区別するが、Rails6.0は区別しないので、エラーが出ていることが分かった。

そこから解決しようと思ったこと

  • 伊藤さんの記事では割愛されているが最良と思われる「DB側のcollationをutf8mb4_binのような「大文字小文字を区別するcollation」に変更する」にチャレンジしたかった。

  • 結論、下記の記事を見て、マイグレーションファイルの変更を試みたがうまくいかなかった。

qiita.com

  • 分かったことは、utf-8でもutf-8mb4でも、このエラーは発生すること。(utf-8mb4が原因かと思い以下のようにDBリセットするも同じエラー)
rails db:drop
utf8に直す
rails db:create
  • 最近リリースされたRails6.1ではその部分が解消できるようなので、オリアプ作り終えたらバージョンアップにもチャレンジしたいと思った。

  • 今のところRails6.0とMysqlは、Actionテーブルと、エンコードの部分で互換性が弱いという事を理解。



感想

  • 今日はひたすらオリジナルアプリを作っていた。

  • 最近、DBとフレームワークの関係性について視点を持てるようになった。(前までは「RailsではMysqlを使う」という把握で、それ以外にもDBはあるという事を分かっていなかった)

  • 互換性を予め知ることは、後々の運用でバグを減らす一助になるのではないか?と思った。

  • 後、今はユーザーが誰もいないので、「drop」「reset」を簡単にできるけど、リリースしたらすでにある情報の移し替えなどもあるだろうし、DBを後から変更するのは、労力が大きいと思うので最初に何選ぶのかちゃんと考えるのが大事、そのために互換性について今後も把握していきたい!と感じた。

  • 企業に入れたら、どんなDB使っているのか・何故使っているのか等知れたら楽しそうだなあとワクワクしながらオリジナルアプリ作っていた。

  • 行きたい企業のプログラマーになりたいなあ。頑張ろう!



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

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

(1)やるべきこと

  • 卒業要件の完成

(2)やりたいこと

(3)やれること

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

時間で区切り(達成すればよし)
  • PHP 一日15分以上

  • オリジナルアプリ 1日1時間以上

追加実装のミニアプリを作り、引き出しを増やす
優先順位 内容(機能) 締め切り 達成度
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)