kotlin-ddd-sample
kotlin-ddd-sample copied to clipboard
DDD sample project using Kotlin
kotlin-ddd-sample
This is a DDD sample using Kotlin.
Modeled using Amazon's account function as a theme.
Run Application
Account
$ ./gradlew :account:bootRun
Address
$ ./gradlew :address:bootRun
API
Account
http://localhost:8080/swagger-ui/
Address
http://localhost:8081/swagger-ui/
Domain-driven design
Context map

Use case


Language
Account
| japanese | english |
|---|---|
| アカウント | account |
| アカウントのID | account id |
| アカウントの氏名または会社名 | name |
| アカウントの発音 | name pronunciation |
| アカウントのメールアドレス | |
| アカウントのパスワード | password |
| アカウントの住所 | account address |
| アカウントの住所のID | account address id |
| アカウントの住所録 | address book |
Address
| japanese | english |
|---|---|
| 住所 | address |
| 住所の氏名または会社名 | full name |
| 住所の郵便番号 | zip code |
| 住所の都道府県 | state or region |
| 住所の住所欄1 | line1 |
| 住所の住所欄2 | line2 |
| 住所の電話番号 | phone number |
| 住所の電話番号 | phone number |
| 住所の持ち主 | owner |
| 住所の持ち主のID | owner id |
Package configuration
Clean Architecture の思想に則ったパッケージを用意する。
| package | layer | description |
|---|---|---|
| domain | Enterprise Business Rules | ビジネスロジックを表現するレイヤー。 |
| usecase | Application Business Rules | ビジネスロジックを用いてユースケースを実現するレイヤー。 |
| adapter | Interface Adapters | REST APIを用いた外部からのリクエストやデータベースのような外部接続といった外界と内部のレイヤーの連携する役割を果たすレイヤー。 |
| external | Frameworks & Drivers | 外界との境界ににあり相互に通信する役割を果たすレイヤー。Webフレームワークやデータベースなどに関連するコードを配置する。 |