Laravel+MUI+React+TypeScriptに入門する[3]
ドキュメント作成(前半)
DB定義書とER図
まずはDBに接続してみよう。DBの設定は.envに書いてある。
※ポート番号が被ってしまい、環境構築が上手くいかなかった場合は13306でポートを開放しているかもしれない。
DB仕様書は好きな手順で作ってよい。
A5Mk-2には、DB定義書とER図をテーブルから自動生成する機能があるので、今回はそれを使っていく。Laravelにはマイグレーションファイルという、RDBMS非依存でDBを生成するためのソースコードを書くことができる神機能があるが…その書き方をイチから勉強するのはめんどい。
そこで下記の手順を踏む。
- GUIでテーブルをポチポチつくる
- 作ったテーブルからマイグレーションファイルを自動生成する
- DB仕様書とER図を生成する
HeidiSQLでDBに接続する
DB名(back)を右クリックしてテーブルを作成する
テーブル名を決めて、カラムを追加して、保存ボタンを押したいところだが、
先に注意事項がある。
テーブルやカラムの命名などの規則について
下記の記事を参照にしてほしい。Laravel側が指定してくる。
記事にもある通り、テーブル名はスネークケースの複数形。カラム名もスネークケース。そして、登録日時(created_at)、更新日時(updated_at)のカラム名指定がある。
Laravelに慣れている人なら、これに従わずとも問題ないが、初学者は気を付けて欲しい。
テーブル作成
まずは他のテーブルに依存しないテーブルからポチポチ作る。今回はidとnameだけで良さそうだ。マメな人はコメントにカラムの説明を書いたりしても良い。
コンテンツテーブル
ジャンルテーブル
都道府県テーブル
※全てのテーブルにはidをPRIMARY KEYとして設定する。テーブルのインデックスタブから追加を押下し、タイプをPRIMARY KEYにした後、右クリックからカラムを追加し、idカラムを指定する。
次にユーザテーブルだ。都道府県テーブルを外部キー制約として指定する。
最後に楽曲テーブル。ジャンルとユーザID、コンテンツIDは外部キー制約をかける。
※これらのカラムの長さは結構テキトーである。
ドキュメント生成
- ER図
A5Mk-2でDBに接続する。
フォントや紙の大きさ等を指定して、ER図のリバース生成を実行する。テーブルは全選択で良い。
できあがった汚いER図…
手動で整理する。もっといいER図の作り方(無料)がこの世界にはあるかもしれない
ファイル > PDF出力でPDFを出力できる
- DB定義書
HTMLでもEXCELでも出力できる。
マイグレーションファイルの生成
-
DockerのLaravelコンテナのCLIを開く
-
下記コマンドを実行する
composer require "kitloong/laravel-migrations-generator"
php artisan migrate:generate
こんな感じになれば成功。
うわ、マジでちゃんと生成されてるわ…!(驚愕)
マイグレーションファイルの書き方を調べなくても、手で作成したDBから自動生成できるのは画期的。DB定義書やER図もほぼ自動で出来るのも最高。今後も勉強コストやドキュメント作成・管理コストも可能な限り減らしたい。
今回、必要性を感じないため、ユースケース図やシーケンス図は作成しない。
しかしユーザ、管理者のような複数の権限が存在していたり、ステータスが刻一刻変化するデータが存在していたりする場合はこれらを作るべきだろう。
……ロールやステータスが大量に存在し、大量のテーブルがあったのに、なぜか外部キー制約をひとつもかけておらず、ER図もなかった悲惨な大規模案件のことを思い出す。新卒だった自分にできることは多くはなかったが、ドキュメントの大切さを学ぶ良い機会になった。
優秀なエンジニアはたくさんいたのに、どうしてドキュメントを疎かにしてしまったのだろうか。炎上したときこそ、開発の手を止めて、ドキュメントを手入れしなければならない。ドキュメント管理は全く容易ではないが、少なくともDB定義書、ER図、クラス図などは、DBやソースコードから生成できることは覚えておきたい。
次回はAPI仕様書と画面遷移図を作成していく。
Discussion