November 2017
Intermediate to advanced
670 pages
17h 35m
English
If you like design patterns, use Java, not Go.
Let's think about where this thinking comes from. Java (as well as C++) tends to focus on type hierarchies and type taxonomies.
Take the ObjectRetrievalFailureException class from the Spring Framework for example:

This looks far too complicated and over-abstracted, right?
Unlike Java, Go is designed to be a pragmatic language where we won't get lost in infinite levels of inheritance and type hierarchies.
When we implement a solution in a language that places so much emphasis on a type hierarchy, levels of abstractions, and class inheritance, our code refactorings tend ...