Pretty unfortunate arguments that are mostly grounded in lack of knowledge combined with deep entrenchment in practices that are obsolete as a whole or at least have solid alternatives.

It’s true that error handling in Go is boilerplatish. But it’s still ok in many ways, personally I do like the specificity of purposefully pushing an error up the stack as opposed to throwing and catching randomly around. Throw/catch has way more pitfalls and it’s just as prone to error ignoring. Also, you can catch panics in go.

Go does have a fairly mature ORM, gorm. It’s not as mature as hibernate, of course, but you also don’t need to manually write most types of queries. It doesn’t come with caching but it makes adding caching fairly trivial.

The ecosystem also includes the whole range of CNCF projects, including grafana and Prometheus, the gold standard of metrics and monitoring. There are plenty of tools and patterns for reliability and security.

As a final note on bibliography, Fowler himself has admitted in 2014 that he has moved away from some concepts he described in his book on enterprise software, which he wrote mostly in 1999 and 2000. You know, the world has evolved from the sweaty monoliths of yesteryear, just ask the guys at Revolut.


Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store