Covering the major features and packages of Go, plus its types and datastructures, to enable the reader to write threadsafe, concurrent cloud, and network applications
About This Book
Completes the Golang developer's education
A deep dive into the core libraries and Golang features usually taken for granted
Explains the rationale behind composite data types, Golang concurrency, and the Golang networking library
Who This Book Is For
The reader is supposed to have read an introductory book on Go, or to have worked through the Tour of Go or an equivalent online course. It will definitely help to remember the basic concepts of concurrency. Network programming will be explained.
What You Will Learn
Learn to understand the design choices of Golang syntax
Understand enough Go internals to be able to optimize Golang code
Learn and appreciate concurrency models as available in Golang
Understand the interplay of systems and networking code
Write server-level code that plays well in all environments
Understand the context and appropriate use of Go datatypes and data structures
Go, the programming language, has become the means by which systems, networking, web and cloud applications are being implemented. Given that Go syntax is fairly easy to learn, it is on the level of libraries we start seeing features, speed, and efficiency for which the Go ecology is justly famous.
Once the syntax of Go has been mastered, and some small project have been written, most Golang programmers face the difficulty of having to integrate their Golang skills with production code. The usual introductions to Golang programming stop short of the transition, which Mastering Go provides.
The exposition of Golang begins an account of how Go has been implemented, background that makes the rationale behind Golang types and composite types much easier to understand. Another piece of the puzzle tends to be Golang data structures, which are extremely important - they encompass a whole selection of tries, for instance, and a very well reputed threadsafe package.
But the center piece of this book is to be found in its in-depth account of concurrency and systems and network programming, all of which are extremely important for modern-day native cloud development. A chapter on reflection rounds out the picture.