Go in Action sets out to do what other books lack. It is kind of an academic introduction to Golang, which is beneficial for developers who have academic interest in the language development and also for those who are looking for a little hand-holding in GoLang. The book will act as a comprehensive language specification for GoLang.
The book starts by giving a quick introduction to what exactly is the Go language, why was it developed in the first place while continuing the discussion about program structure and tooling provided by and for Go. If you are learning Go for the first time, it will be really boring till this stage. However, Chapter 4 onwards the momentum starts when the books starts discussion about built-in data types, viz., arrays, slices and maps. The discussion is intense on the implementation details and the ‘mechanics behind these data structures’. The discussion becomes further interesting when we delve into the type system and talk about structs, named types, interfaces and type embedding.
The book becomes more engrossing in Chapter 6 when we dive deeply into the Go scheduling, concurrency and channels. Like in previous chapters, mechanics behind everything is discussed and explained. The moment of truth however comes in Chapter 7 where we indulge in using the learnings in Chapter 6 practically. This is the high-point of the book.
The book talks further about three packages - log, json and io - all three are crucial in the life of any developer and these being part of standard library talks a lot about the thought that has gone into the design of the language.
The book ends with Testing and benchmarking framework. With all the corporations trying to fix their digital divide, TDD has surely become a big deal over many years and right now is the most important aspect of any application development. The book on a language should discuss this and with GoLang it comes naturally.
I would recommend this book to anyone who is interested in Programming languages and you will really like it. Unlike the language specifications that are monotonous, this book help you understand the specification of Go lang and also provides you practical knowledge of the language enough to help you kickstart your voyage. One should read the book if they are an experienced programmer and have interest in GoLang and mechanics behind its feature. The discussion about the language will help you understand the language well enough and give you a strong hand-holding in Go lang. Go lang Go!
Rating 4/5. I found few chapters boring in the beginning which prevented me to complete the book earlier.
P.S.: I received this book from Manning Publication in exchange of the promise to review this book. However, I didn’t receive any other compensation from them. This review is my true and honest opinion of the book.