Skip to content

Instantly share code, notes, and snippets.

@AntonStoeckl
Last active May 20, 2022 11:29
Show Gist options
  • Save AntonStoeckl/45841b00dbcb0bd1adbec7021813c433 to your computer and use it in GitHub Desktop.
Save AntonStoeckl/45841b00dbcb0bd1adbec7021813c433 to your computer and use it in GitHub Desktop.
Example for Blog Post "Hexagonal Architecture: Structuring a project and the influence of granularity"
game
├── application
│   ├── deckselection
│   │   ├── commands.go # all commands
│   │   ├── commands_test.go # unit tests
│   │   ├── integration_test.go # driver adapter
│   │   ├── command_handler.go # driver port definition and implementation
│   │   ├── command_handler_test.go # driver adapter
│   │   ├── http_handler.go # driver adapter
│   │   ├── select_deck.go # domain logic
│   │   ├── select_deck_test.go # unit tests
│   │   ├── unselect_deck.go # domain logic
│   │   ├── unselect_deck_test.go # unit tests
│   │   └── # more files skipped
│   ├── enrollment
│   │   └── # files skipped
│   ├── gameplay
│   │   └── # files skipped
│   └── dependencies.go # driven ports for all use cases
├── infrastructure
│   ├── esdb
│   │   ├── event_store.go # dependency impl. for driven adapter
│   │   ├── player_event_store.go # driven adapter
│   │   └── # more files skipped
│   ├── # more packages skipped
│   └── dependencies.go # dependency interfaces for driven adapters
├── events.go # all events, shared between use-cases
└── # more shared domain code (value objects, entities, ...)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment