A New, Simpler Way to Do Dependency Injection in Go
7 min readJun 7, 2019
Dependency injection (DI) is a great thing. Even if you haven’t heard of the term, it’s likely that you have already used it.
This article assumes zero existing knowledge of DI. However, a basic understanding of Go. I will work from fundaments, challenges, solutions and eventually lead to how to build a complete service container.
Anatomy of This Article
If you are already familiar with DI, you can skip to Introducing 🐺 Dingo. I will talk about a new project for generating a service container from YAML.
- Overview and Terminology: Some basic language and concepts that will be referred to.
- Simple Example: Diving right in with a simple example that leads to a common problem. We will refactor it to use dependency injection so that unit tests can be created.
- With Great Complexity Comes Great Responsibly: Explains the cost and associated problems with DI as the codebase grows.
- Building the Services With Functions: The simplest method of dealing with the aforementioned problems in the previous section.
- Singletons: An important optimization and DI concept. Explains how it affects your code.
- Introducing: 🐺 dingo: Putting it all together with
dingo
…