本リポジトリの推奨される Go のバージョンは以下の通りです。
インストールについてはこちらの公式サイトを参照してください。
v1.21.7プロジェクトを開始する前に下記を実行してください。 lefthookがインストールされていない場合は、brewやこちらのgithubを参考にしてlefthookをインストールしてください。
lefthook install.env.local ファイルを作成し、.env.exampleの内容を設定してください。
cp .env.example .env.localDocker コンテナをビルドしてください。
make build下記を実行すると、Docker コンテナの起動や停止を行えます。
# launching docker containers
make up
# down docker containers
make downコンテナ起動後、以下のコマンドを実行して Go の開発環境準備ができているか確認してください。
curl http://localhost:8080/health成功すると、OK が返されます。
PostgreSQL のマイグレーションや、ロールバック、シードデータの挿入は下記のコマンドで実行できます。
# create tables to the latest version
make migrate-up
# seed mock data
make migrate-seed
# reset tables and seed
make migrate-reset
# rollback all migrations
make migrate-drop詳細は GOOSE を参照してください。
マイグレーションファイルや、シードファイルを作成するには下記を実行してください。
実行する際は、FILE にファイル名を指定してください。({} は実行の際は必要ないので注意してください。)
# create migration file (DDL)
make create-ddl FILE={filename}
# create migration file (DML)
make create-dml FILE={filename}バックエンドのユニットテストを実行するには下記を実行してください。
make testテスト用のモックを生成するには下記を実行してください。
make mockgen source=xxx destination=xxx filename=xxxGoファイルのlintを実行するには下記を実行してください。
make lint- ユースケース層においては必ずユニットテストを実施
- pkgディレクトリ内のコードは今後別のPJで扱うことも考慮してできるだけテストを実施すること
- ドメイン層やユーザインターフェース層においては、可能な限りテストを実施すること
このプロジェクトは、 レイヤードアーキテクチャ + DDDを採用しています。
コーディングルールとAPIデザインルールは、以下に従うものとします。