ToolUp Tuesday - #5

ToolUp Tuesday - #5

2022-04-21

Chris and Matt return for ToolUp Thursday (a scheduling exception) to refactor their Go player decisions API. Having separately studied Golang between sessions, they revisit the codebase with fresh eyes and immediately identify structural improvements — breaking a monolithic single-file approach into proper Go packages with separate folders for controllers, models, and routes. They compare two popular Go HTTP frameworks, Gorilla Mux and Gin, discussing trade-offs between simplicity and feature richness. Matt demonstrates his own Go project using Mux with Azure Container Apps, showcasing Go interfaces, dependency injection patterns, and the tenant service architecture. The conversation covers Go pointers, reference semantics, struct composition, and how Go’s implicit interface implementation differs from C# and .NET. They also explore unit testing and mocking challenges in Go, noting the ecosystem differences from .NET’s more integrated testing story. The session ends with planning to integrate a file-based data store and start connecting the player decisions API with the world event engine.

Related Content

ToolUp Tuesday - #4

ToolUp Tuesday - #4

2022-04-05

Chris and Matt dive into Go (Golang) for the first time on stream, building a player decisions REST API for their game project. They explore Go fundamentals including structs, pointers, packages, and the Gin HTTP framework while comparing Go patterns to C# and .NET conventions.

ToolUp Tuesday - #3

ToolUp Tuesday - #3

2022-03-08

Chris and Matt build the world events engine in .NET, connecting it to the Player State models via project references. They design a state machine architecture for the game engine, discuss action points as a game mechanic, and plan the player decisions API in Go for the next episode.

ToolUp Tuesday - #1

ToolUp Tuesday - #1

2022-02-08

In this debut episode of ToolUp Tuesday, Chris and Matt kick off a new series by planning a massively multiplayer management sim game from scratch. They design a microservices architecture, choosing .NET for the world events engine and Go for player decisions, and set up a GitHub repository with GitHub Projects for backlog management.