Skip to content

Instantly share code, notes, and snippets.

@AntonStoeckl
Created May 20, 2022 10:59
Show Gist options
  • Save AntonStoeckl/65edc7886ff716830e90deae6c24d269 to your computer and use it in GitHub Desktop.
Save AntonStoeckl/65edc7886ff716830e90deae6c24d269 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
│   ├── forselectingdecks
│   │   ├── command_handler.go # driver port definition and implementation
│   │   ├── command_handler_test.go # driver adapter
│   │   ├── command.go # command
│   │   ├── commandstest.go # unit tests
│   │   ├── http_handler.go # driver adapter
│   │   ├── integration_test.go # driver adapter
│   │   ├── select_deck.go # domain logic
│   │   ├── select_deck_test.go # unit tests
│   │   └── # more files skipped
│   ├── forunselectingdecks
│   │   ├── command_handler.go # driver port definition and implementation
│   │   ├── command_handler_test.go # driver adapter
│   │   ├── command.go # command
│   │   ├── command_test.go # unit tests
│   │   ├── http_handler.go # driver adapter
│   │   ├── integration_test.go # driver adapter
│   │   ├── unselect_deck.go # domain logic
│   │   ├── unselect_deck_test.go # unit tests
│   │   └── # more files skipped
│   ├── forenrollingplayers
│   │   └── # files skipped
│   ├── forsigningoutplayers
│   │   └── # files skipped
│   ├── forpurginginactiveplayers
│   │   └── # files skipped
│   ├── forfinishingcards
│   │   └── # files skipped
│   ├── forrejectingcards
│   │   └── # 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