Master key features of Go, including advanced concepts like concurrency and working with JSON, to create and optimize real-world services, network servers, and clients.
Key Features
- Third edition of the bestselling guide to advanced Go programming, expanded to cover RESTful servers, the WebSocket protocol, and Go generics
- Use real-world exercises to build high-performance network servers and powerful command line utilities
- Packed with practical examples and utilities to apply to your own development work and administrative tasks
- Clearly explains Go nuances and features to simplify Go development
Book Description
Go is the language of the future for high-performance systems due to its simplicity and clear principles. Mastering Go shows you how to put Go to work on real production systems. This new edition has been updated to include topics like creating RESTful servers and clients, understanding Go generics, and developing gRPC servers and clients.
Mastering Go, Third Edition explores the capabilities of Go in practice. You will become confident with advanced concepts, including concurrency and the operation of the Go Garbage Collector, using Go with Docker, writing powerful command-line utilities, working with JavaScript Object Notation (JSON) data, and interacting with databases. You will also improve your understanding of Go internals to optimize Go code and use data types and data structures in new and unexpected ways.
This Go programming book also covers the nuances and idioms of Go with exercises and resources to fully embed your newly acquired knowledge. Become an expert Go programmer by building Go systems and implementing advanced Go techniques in your projects.
What you will learn
- Use Go in production
- Write reliable, high-performance concurrent code
- Manipulate data structures including slices, arrays, maps, and pointers
- Develop reusable packages with reflection and interfaces
- Become familiar with generics for effective Go programming
- Create concurrent RESTful servers, and build gRPC clients and servers
- Define Go structures for working with JSON data
Who this book is for
This book is for Go programmers with previous coding experience, who are familiar with the basics of the language and want to become expert Go practitioners.
Table of Contents
- A Quick Introduction to Go
- Basic Go Data Types
- Composite Data Types
- Reflection and Interfaces
- Go Packages and Functions
- Telling a UNIX System What to Do
- Go Concurrency
- Building Web Services
- Working with TCP/IP and WebSocket
- Working with REST APIs
- Code Testing and Profiling
- Working with gRPC
- Go Generics
- Appendix