Interfaces, Functions and Modules in Go: Structuring Your Code for TDD Without Adding Unnecessary Complexity
How do you use interfaces, functions and Go modules in a Test-Driven Development mindset? How do you mock, where should interfaces live, how do you isolate a package that exposes only functions, and how do you avoid unnecessary complexity?