Skip to content

OLIENTTECH/backend-challenges

Repository files navigation

📝 バックエンド採用課題

開発環境の構築

本リポジトリの推奨される Go のバージョンは以下の通りです。
インストールについてはこちらの公式サイトを参照してください。

v1.21.7

プロジェクトを開始する前に下記を実行してください。 lefthookがインストールされていない場合は、brewやこちらのgithubを参考にしてlefthookをインストールしてください。

lefthook install

.env.local ファイルを作成し、.env.exampleの内容を設定してください。

cp .env.example .env.local

Docker コンテナをビルドしてください。

make build

開発

下記を実行すると、Docker コンテナの起動や停止を行えます。

# launching docker containers
make up
# down docker containers
make down

ヘルスチェック

コンテナ起動後、以下のコマンドを実行して Go の開発環境準備ができているか確認してください。

curl http://localhost:8080/health

成功すると、OK が返されます。

DB の準備

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=xxx

Lint

Goファイルのlintを実行するには下記を実行してください。

make lint

開発における注意点

  • ユースケース層においては必ずユニットテストを実施
  • pkgディレクトリ内のコードは今後別のPJで扱うことも考慮してできるだけテストを実施すること
  • ドメイン層やユーザインターフェース層においては、可能な限りテストを実施すること

Architecture

このプロジェクトは、 レイヤードアーキテクチャ + DDDを採用しています。

Cording Style

コーディングルールとAPIデザインルールは、以下に従うものとします。

About

バックエンド採用課題

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •