Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save AntonStoeckl/94baf20bc16a6553455b84d7167d24d5 to your computer and use it in GitHub Desktop.
Save AntonStoeckl/94baf20bc16a6553455b84d7167d24d5 to your computer and use it in GitHub Desktop.
Example for Blog Post "Hexagonal Architecture: Structuring a project and the influence of granularity V2
game
├── application
│ ├── card_play_command_handler.go # hexagon impl.
│ ├── deck_selection_command_handler.go # hexagon impl.
│ ├── for_enrolling_players.go # primary port
│ ├── for_playing_cards.go # primary port
│ ├── for_reading_active_players_projections.go # secondary port
│ ├── for_reading_deck_sets.go # secondary port
│ ├── for_selecting_decks.go # primary port
│ ├── for_storing_events.go # secondary port
│ └── player_enrollment_command_handler.go # hexagon impl.
├── domain
│ ├── deck_set.go # aggregate
│ ├── deck_set_test.go # unit test
│ ├── player.go # aggregate
│ └── player_test.go # unit test
└── infrastructure
└── adapter
├── secondary
│ ├── forreadingdecksets
│ │ └── file_deck_set_reader.go # secondary adapter
│ └── forstoringevents
│ ├── esdb_event_store.go # generic
│ └── player_event_store.go # secondary adapter
└── primary
├── forenrollingplayers
│ ├── http_handler.go # primary adapter
│ ├── integration_test.go # primary adapter
│ ├── player_enrollment_command_handler_test.go # primary adapter (unit test)
│ └── scheduler.go # primary adapter
├── forplayingcards
│ ├── card_play_command_handler_test.go # primary adapter (unit test)
│ ├── http_handler.go # primary adapter
│ └── integration_test.go # primary adapter
└── forselectingdecks
├── deck_selection_command_handler_test.go # primary adapter (unit test)
├── http_handler.go # primary adapter
└── integration_test.go # primary adapter
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment