https://www.nyamucoro.com/entry/2018/08/08/221018
目次
良くない例
laravelのスタートページ表示 by klack710 · Pull Request #1 · klack710/study-laravel · GitHub
自作のLaravelの基本の開発環境です。
これの良くないところはどこでしょうか。
mysqlのコンテナの中身全部入ってる
mysql配下の中身、これはmysqlのデータとかが全部入っちゃってます。
これは良くないですね。
え、なぜ悪いか?
重い
gitでプッシュする、プルする時に、ユーザーの入力全部送ったりしてしまいます。
もし、手元で仮の入力とかしたら、それもコミットの中身に入っちゃいますね。
そもそもソースコードの本質ではない
また、このプロジェクト、このコードの本質には、データベースの中身は関係ないはずです。
ユーザーAの会員登録情報が、このプロジェクトの中身の本質か?そんなの関係ないはずです。
でも、新しくテーブル作った時とか、初期データ空っぽ?
開発で、テーブルを新しく作った時とかあると思います。
その時に、初期データどうするか。
これに関しては、何が本質かを見てみましょう。
ユーザーの区分など→マイグレーションファイル
Usersテーブルに、Rolesテーブル。
Usersテーブルは会員情報、Rolesテーブルは、会員における区分を司るとします。
ここに、role_idカラムを追加する。
このRolesテーブルに、adminやclient、userなどの区分を保存する時。
これは変化しない値で、ユーザーの性質を扱うものなので、マイグレーションファイルで初期値として入れればいい。
ユーザーの情報→シード
そもそもユーザー情報がなかったら、
開発するたびに会員登録して、そしてユーザー作って開発するのか。
そうはならないと思います。
そういう時は、データのバックアップをとって、seed値として取っておきましょう。
実際のデータ、あるいは実際に開発できる最低限のデータをseed値として用意して、
開発環境を構築するときに、そのデータでデータベースを作りましょう。
gitで管理するものは、プロジェクトの本質だけを残すべき
ソースコードには、そのプロジェクトにおける本質となるものだけ入れましょう。
エディターによって生成されるファイル、Macだから生成されるファイルとかは、含めないように。
そして、今回のデータベースの情報も、含めないべき情報です。
そういうファイルやフォルダは、 .gitignore
に記述してコミットに含めないように気をつけましょう。
0 件のコメント:
コメントを投稿