20210117_アウトプット(フリマアプリテストコード追加/オリジナルアプリ)

アウトプット画像

今日行ったこと 10時間5分

  • 昨日の復習・アウトプット 1時間

  • フリマアプリのテストコード追加(結合テスト) 4時間5分
    👉Basic認証に苦戦(完了✨)

  • オリジナルアプリ 5時間
    *ユーザー管理の結合テストの続き...20分
    *目標設定ページ(7つのアクション分完成✨)...3時間25分
    *目標設定テストコード(モデルテストは完成✨結合テストの途中)...1時間15分
    👉目標設定のページについて、ビューと結合テスト以外は完了✨



新しい発見

実装していた時に、参考にしたサイト

さすが伊藤さん😭この記事のおかげでプルダウンで選択する生年月日の結合テストコードの部分がかけた。

qiita.com

結合テストを書いていたときに、ベーシック認証が突破できずエラーになったときに以下2つの記事が参考になった。

qiita.com 👉予めメソッド・変数・URLに定義して、メソッドを呼び出すことを理解。

qiita.com

👉コメント欄にある伊藤さんのマインドが励みになった。



パスワードの一意性について

*「 パスワード=一意性制約をかける」ことが良いと思っていた。

  • しかし、メンターさんに質問して話しているときに、「一番大切なのはemailの一意性と、emailとpasswordの組み合わせでは」と新しい視点を得られた。

  • パスワードに一意性をかけることによって「そのパスワードダブってますよ」と表示が出ることにより、「他の人のいずれかが使っているんだ」とわかることになる。

  • 一意性に関して「こちらの方がいい!」という視点を持ちすぎず、本当に大事なのはどの部分だろうとその都度見極める視点を持とうと思った。



Basic認証結合テストコードについて

今日一番悩んだ部分。describe(説明)の前に、メソッドを定義してcontextで呼び出すことによって実装できると理解。

require 'rails_helper'

def basic_pass
  username = ENV["BASIC_AUTH_USER"] 
  password = ENV["BASIC_AUTH_PASSWORD"]
  visit "http://#{username}:#{password}@#{Capybara.current_session.server.host}:#{Capybara.current_session.server.port}"
end

RSpec.describe 'ユーザー新規登録', type: :system do
  before do 
    @user = FactoryBot.build(:user)
  end
  
  context 'ユーザー新規登録ができるとき' do 
    it '正しい情報を入力すればユーザー新規登録ができてトップページに移動する' do
      # basic_passのメソッドを実行
      basic_pass
      # トップページに移動する
      root_path

(省略)
  • basic_passについて引数がなくても実装できた。

  • usernamepasswordについて、実際のusernamepasswordで実装した後、環境変数で出来ないかと複数試したら出来た。



感想

  • 先週の木曜日から作り直し始めたオリジナルアプリ。前回の頓挫したアプリは「挑戦:8、今まで得た知識:2」くらいの割合で作っていたが、今回は「挑戦:2、今まで得た知識:8」の割合に方向転換。まず形にしてから、「挑戦2」の割合部分を広げていこうと思っている。

  • 方向転換したら、前に進む感覚がもてて、楽しすぎて気付いたらめっちゃ時間経ってた😂目標を投稿する機能がブラウザに現れたときめちゃくちゃ嬉しかったなあ・・・♡😂1つの機能をやっと形にできたことが嬉しい!!!

  • 残りの2つの機能をつけるまでは1週間程度オリジナルアプリに集中しようと思っている。(PHPの勉強と追加実装の勉強、少しの間お休み)

  • 今日は久しぶりのライフコーチとの面談があった。話していて落ち着く。今の進捗や夢、それに対するアドバイスを受けているうちにますます元気になってその後の実装もポジティブな気持ちで進められた。

  • 昨日仲間とも話していたけれど、「応援してくれる人」がいると、頑張れる。本当にいつもありがとうございます。



覚書(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)