Mastering Go: Writing Golang production applications using Network Libraries, deep concurrency, advanced Go data structures and cloud-native techniques
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
- 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
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.
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
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.
Table of Contents
Chapter 1. Go and the Operating System
Chapter 2. Understanding Go Internals
Chapter 3. Working with Basic Go Data Types
Chapter 4. The Uses of Composite Types
Chapter 5. Enhancing Go Code with Data Structures
Chapter 6. What You Might Not Know About Go Packages
Chapter 7. Reflection and Interfaces for All Seasons
Chapter 8. Telling a Unix System What to Do
Chapter 9. Go Concurrency – Goroutines, Channels, and Pipelines
Chapter 10. Go Concurrency – Advanced Topics
Chapter 11. Code Testing, Optimization, and Profiling
Chapter 12. The Foundations of Network Programming in Go
Chapter 13. Network Programming – Building Servers and Clients
Chapter 14. Other Books You May Enjoy
from this link