doc.dev1x.org

アプリケーションアーキテクチャ設計に関する覚書(Go)

1. 前提条件

2. 基本的な考え方

3. ディレクトリ構造

.
├── config
├── handler
├── lib
├── migrate
├── model
├── repository
├── usecase
├── validator
├── main.go
├── go.mod
└── go.sum

4. 各モジュールの役割

config

package config

type Config struct {
    ...
}

handler

lib

model

repository

usecase

type ShowExampleUseCase interface {
    Execute() error
}

func NewShowExampleUseCase(arg int) ShowExampleUseCase {
    return &showExampleUseCase{
        value: arg,
    }
}

type showExampleUseCase struct {
    value: int
}

func (u *showExampleUseCase) Execute() error {
    ...
}

validator

main.go

5. ファクトリーとinterface