https://christina04.hatenablog.com/entry/go-clean-architecture

概要

こちらで

という対応をしました。 当時は試行錯誤の連続でしたが対応から1年程経ち、ある程度設計もfixされてきたので知見をまとめます。

知見

前提

Clean Architectureの図は多くの人が目にしているように以下の通りです。

今回話す内容は青色の部分を除いた

です。

goのリポジトリの構成は以下のようにしています。

.
├── Dockerfile
├── Makefile
├── README.md
├── cmd/
├── codes/
├── config/
├── docker-compose.yml
├── domain/
├── go.mod
├── go.sum
├── interface/
├── mock/
├── proto/
├── registry/
├── usecase/
├── utils/
└── vendor/

ディレクトリを説明すると以下です。

Untitled

ドメイン層には大きく以下の要素がありますので、それぞれでpackageを切ります。

model

個人的な考えですが、DDDはオブジェクト指向の延長です。なので