Skip to content

Instantly share code, notes, and snippets.

@AntonStoeckl
Created June 3, 2022 07:36
Show Gist options
  • Save AntonStoeckl/48d584aefc568acdcc5571468d5f543b to your computer and use it in GitHub Desktop.
Save AntonStoeckl/48d584aefc568acdcc5571468d5f543b 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
├── hexagon
│ ├── deckselection
│ │ ├── integration_test.go # primary adapter
│ │ ├── select_deck_command_handler.go # primary port + hexagon impl.
│ │ ├── select_deck_command_handler_test.go # primary adapter (unit test)
│ │ ├── select_deck.go # aggregate logic
│ │ ├── select_deck_http_handler.go # primary adapter
│ │ ├── select_deck_test.go # unit test
│ │ ├── unselect_deck_command_handler.go # primary port + hexagon impl.
│ │ ├── unselect_deck_command_handler_test.go # primary adapter (unit test)
│ │ ├── unselect_deck.go # aggregate logic
│ │ ├── unselect_deck_http_handler.go # primary adapter
│ │ └── unselect_deck_test.go # unit test
│ ├── enrollment
│ │ ├── enroll_player_command_handler.go # primary port + hexagon impl.
│ │ ├── enroll_player_command_handler_test.go # primary adapter (unit test)
│ │ ├── enroll_player.go # aggregate logic
│ │ ├── enroll_player_http_handler.go # primary adapter
│ │ ├── enroll_player_test.go # unit test
│ │ ├── integration_test.go # primary adapter
│ │ ├── purge_inactive_players_command_handler.go # primary port + hexagon impl.
│ │ ├── purge_inactive_players_command_handler_test.go # primary adapter (unit test)
│ │ ├── sign_out_player_command_handler.go # primary port + hexagon impl.
│ │ ├── sign_out_player_command_handler_test.go # primary adapter (unit test)
│ │ ├── sign_out_player.go # aggregate logic
│ │ ├── sign_out_player_http_handler.go # primary adapter
│ │ └── sign_out_player_test.go # unit test
│ ├── gameplay
│ │ ├── finish_card_comand_handler.go # primary port + hexagon impl.
│ │ ├── finish_card_comand_handler_test.go # primary adapter (unit test)
│ │ ├── finish_card.go # aggregate logic
│ │ ├── finish_card_http_handler.go # primary adapter
│ │ ├── finish_card_test.go # unit test
│ │ ├── integration_test.go # primary adapter
│ │ ├── reject_card_command_handler.go # primary port + hexagon impl.
│ │ ├── reject_card_command_handler_test.go # primary adapter (unit test)
│ │ ├── reject_card.go # aggregate logic
│ │ ├── reject_card_http_handler.go # primary adapter
│ │ └── reject_card_test.go # unit test
│ ├── scheduler
│ │ └── scheduler.go # primary adapter
│ └── dependencies.go # all secondary ports
└── infrastructure
├── esdb
│ ├── event_store.go # generic
│ └── player_event_store.go # secondary adapter
└── file
└── deck_set_reader.go # secondary adapter
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment