Back in April 2007 I bought Design Patterns: Elements of Reusable Object-Oriented Software (affiliate link), to tell the truth this was the first time I was introduced to such a fascinating subject: Design Patterns. Obviously I did not get everything the first time, so I also bought Head First Design Patterns: A Brain-Friendly Guide in September the same year.
Fast forward 10 years later and I finish reading Go Design Patterns (affiliate link) a book relatively new, just published last month in February 2017! Written by Mario Castro Contreras and published by Packt.
I was interested in this book since I saw the alpha in December last year, mostly because I know with Go patterns change to what you usually get in Object Oriented programming languages, I was curious to see what were the differences between the popular (and not that popular) patterns in Go and your average language supporting things Go does not.
Go Design Patterns is a long book, it took me to complete significantly longer than I expected, about two weeks conmute-time, so about 60 minutes a day give or take. I think I’ll be getting the physical version of Go Design Patterns, it should be a good quick reference for the future because it does not seem like Go will be changing too much any time soon so this book will still be relevant in the following years.
Personally I enjoyed the chapters covering io.Writer, io.Reader and how you can use pipes for interacting with them, as well as the patterns using concurrency, however there are few cases where you can clearly see the code does not compile so fair warning if you’re trying to compile what you read.
In the end I’m really satisfied with my purchase, and I know some Go developers have a love/hate relationship with Design Patterns, not me I like patterns in Go, I only do not force them.