Skip to content

Commit

Permalink
📝 update package structure
Browse files Browse the repository at this point in the history
  • Loading branch information
ras0q committed Jul 20, 2024
1 parent de09f61 commit d5e27ce
Showing 1 changed file with 20 additions and 36 deletions.
56 changes: 20 additions & 36 deletions docs/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,44 +6,28 @@

```bash
.
├── bin # makeでコンパイルしたバイナリが入る
├── dev # 開発用の設定ファイル、スクリプト
│ └── bin # makeで使うシェルスクリプト
├── docs # ドキュメント
│ ├── dbschema # DBスキーマ(tblsで自動生成)
│ └── swagger # APIスキーマ
├── domain # domain層。他層に依存しないドメインオブジェクトを格納する
├── infrastructure # infrastructure層。他3層に依存する。
│ └── migration # DBのマイグレーション(go-gormigrate/gormigrateを使用)
├── integration_tests # 結合テスト
│ ├── handler
│ ├── repository
│ ├── testdata
│ └── testutils
├── interfaces # interface層。usecase層、domain層に依存する
│ ├── database # DB操作に関するインターフェイスを定義
│ │ └── mock_database # 単体テスト用モック(手書き)
│ ├── external # 外部サービス(traQ等)に関するインターフェイスを定義
│ │ ├── mock_external # 単体テスト用モック(mockgenで自動生成)
│ │ └── mock_external_e2e # E2Eテスト用モック(手書き)
│ ├── handler # echoハンドラーの実装、組み立て
│ └── repository # usecases/repositoryの実装
│ └── model # DBのモデル
├── usecases # usecase層。domain層に依存する
│ ├── repository # リポジトリ操作に関するインターフェイスを定義
│ │ └── mock_repository # 単体テスト用モック(mockgenで自動生成)
│ └── service # ビジネスロジックに関するインターフェイスの定義、実装
│ └── mock_service # 単体テスト用モック(mockgenで自動生成)
├── util # 汎用パッケージ
│ ├── config # config.yamlから設定を読み込む
│ │ └── testdata
│ ├── mockdata # E2Eテスト、結合テストで用いるサンプルデータを格納
│ ├── optional # null値を扱うためのパッケージ
│ └── random # テストで用いる乱数生成パッケージ
└── main.go
├── main.go # エントリーポイント
├── injector.go # 依存性注入
└── internal
├── domain # 他層に依存しないドメインオブジェクトを格納する
├── usecases # アプリケーションの具体的な操作を表現する (domain層に依存)
│ └── repository # リポジトリ操作に関するインターフェイスの定義
├── handler # Echoによるハンドラー&ルーティング (domain層、usecases層に依存)
│ └── schema # OpenAPIを基に自動生成されたAPIスキーマ
├── infrastructure # 外部APIやDBへのアクセス (domain層、usecases層に依存)
│ ├── external # 外部APIへのアクセス
│ ├── migration # DBのマイグレーション
│ └── repository # DBへのアクセス (usecases/repository の実装)
│ └── model # GORMのDBスキーマ
└── pkgs # 汎用パッケージ
├── config # 設定ファイル、環境変数を読み込み管理する
├── mockdata # E2Eテスト、結合テストで用いるサンプルデータを格納 (消したい)
├── optional # optionalな値を扱うためのパッケージ
├── random # テストで用いる乱数生成パッケージ
└── testutils # テストで用いるユーティリティ
```

## 依存関係
## 依存関係 (WIP)

ユーザー周りに限って紹介

Expand Down

0 comments on commit d5e27ce

Please sign in to comment.