git config --local core.hooksPath .githooks
make
######################################################################
# Makeタスク一覧
# $ make XXX
# or
# $ make XXX --dry-run
######################################################################
up サーバー起動
up.db db起動
down.db dbを落とす
test テスト実行
test.with-local-db テスト(with local db)実行
test.e2e e2eテスト実行
fmt format
lint lint
docs.generate-db-docs-schemaspy schemaspyでDB用のドキュメントを作成、表示する(gitに含めない)
docs.generate-kdoc KDocを生成と表示(gitに含めない)
help Make タスク一覧
- UseCase層は必ず
Either<UseCaseError, UseCaseOutput>
を返す(例外:認証時の戻り値はDomainObjectで良い)- Domain〇〇をそのまま返さないこと(必要であればWrapする)
- 詰め替える
- Wrapする時、Either自体の入れ子はやめること(取り出して中身をWrapする)
- Domain〇〇をそのまま返さないこと(必要であればWrapする)
- 基本的にUseCase層でDomainObjectをインスタンス化する時、バリデーションをかける
- UseCaseError、UseCaseOutputの命名では技術的用語を使わないようにする
- Infra層は必ずEither<DomainError, DomainObject>を返す
- Infra層はDobmainObjectのバリデーション無しでインスタンス化可能である
型 | 自作/他作 | 言葉 | 説明、代替表現 |
---|---|---|---|
T | 自作 | 正常系 | - 晴れの日 - 基本コース |
E | 自作 | 準正常系 | - 雨の日 - 代替コース - ビジネス例外 - 予期する例外 - - データとして定義されるエラー |
Throwable | 他作 | 異常系 | - 技術的例外 - 予期しない例外 - |
回復可能・不可能はResult/Eitherに合わせて記述していましたが、「GoodCode,BadCode」を読んで微妙に文脈がずれていると解釈したので、準正常とか異常系を区別するのに使わないことが適切と判断しました