0.背景
本記事は、前回の記事「実務未経験状態でLaravelを使用した共同開発」で取り組んだタスクのうち、usersテーブルの作成とシーダーによるテストデータ登録に関する実装内容の詳細をまとめたもの。
1.タスクの見積もり
期間
・1週間
理由
テーブル設計やSeeder作成はおおよそイメージできていたものの、以下の点を考慮し、余裕を持った見積もりとしました。
・初の共同開発という環境でのタスク対応であること
・Git操作やブランチ運用に不慣れな点の確認作業
・Laravelのマイグレーション・シーダーに関する操作確認
・テストケースの作成・確認時間の確保
・PR提出後のレビュー対応時間の見積もり
実績
・仕様作成完了、テストケース確認:1日
・PR完了:2日
・マージ完了:3日(PR修正なし)
2.実装内容
①usersテーブル作成
・Laravelの初期マイグレーションファイル(create_users_table.php)に softDeletes() を追加し、論理削除に対応。
②テストデータ登録用シーダー作成
users テーブルに以下ルールで2件のレコードを登録:
・name:6文字のランダムな文字列
・email:name + @sample.com 形式
・password:文字列 'password' を Hash::make で暗号化
※ for文を活用し、登録件数を容易に変更できる構成としています。
③UserモデルにsoftDeletes追加
・Illuminate\Database\Eloquent\SoftDeletes をuse句で取り込み、モデルにトレイトを適用。
3.テスト実施内容
・usersテーブルにdeleted_atカラムがあることを確認
・シーダー実行後、usersテーブルにレコードが正しく追加されることを確認
・登録データに対して論理削除が有効であることを確認
4.本実装に関して
・可読性:仕様の理解を補助するため、要所にコメントを記載し、第三者が読んでも意図がわかるように意識。
・再利用性:Seederの構成やモデルの記述についても、他の機能や環境に転用しやすい形で記述。
・再利用性:テストデータ登録数を柔軟に変更できるようfor文とランダム値を活用し、今後の再利用や追加開発への対応を想定。