Lazy Providers in Dig

If you haven't yet read my previous post on depedency injection in Go, please do so first. This post describes a simple technique to make dig's DI container even more powerful. All values provided by dig's container are singletons. The provider is called the first time the value is required…

Dependency Injection in Go

I recently built a small project in Go. I've been working with Java for the past few years and was immediately struck by the lack of momentum behind Dependency Injection (DI) in the Go ecosystem. I decided to try building my project using Uber's dig library and was very impressed.…

Clojure core.async and Go: A Code Comparison

Last week, Rich Hickey announced Clojure core.async in a blog post. As mentioned in the post, the new core.async library has a lot in common with Go. In this post, I'll compare the fundamental building blocks of concurrency in core.async and Go with code examples. Note: Clojure…