Skip to content

gohiei/go-ddd-demo

Repository files navigation

Domain-Driven Design + Clean Architecture for golang

Steup & Run

  • Create your own config file (refer to: configs/config.example.yaml)
  • go run main.go server -c <your config filename>
    • More detail: go run main.go --help
    • More detail: go run main.go server --help
  • Swagger API Document

Test

  • Use mockery to generate mock files: mockery --all --dir internal/user/ --output test/mocks/user
  • Run all tests: go test ./...
  • Run some tests: go test cypt/internal/user/usecase
  • See installation

Release

  • make build
  • ./cypt server -c <config> -p 8080

Todo

  • EventBus
  • Restful API (gin)
  • Database Read/Write Split (gorm)
  • IoC/DI package (Deprecated)
  • Tests
  • Logger
  • Customized Error (ref)
  • Configuration (viper)
  • Commandline tool (cobra)
  • Makefile

Breaking Change

  • [2023-08-01] When will return error (77d2e4a)

Recommendation

Modules

Auth

  • Use gin middleware for authentication
  • Use jwt token for validation

Logger

  • Use gin middleware for event generation
  • Use event for logging

About

Implement of Domain-Driven Design and Clean Architecture by Golang

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published