Exploring the major features and packages of Go, along with its types and data-structures, enabling the reader to write threadsafe, concurrent cloud, and network applications
The Go programming language, often referred to as Golang (albeit wrongly), is really making strides, with some masterclass developments, architected by the greatest programming minds. Tobias Lutke, CEO of Shopify, recently quoted as saying “Go will be the server language of the future”, powerful words, with much ambition. Go programmers are in high demand, but more controversially, Go takes the stage, where C and Unix programmers previously led the way.
The growth of the Go language has seen it become the means by which systems, networking, web, and cloud applications are implemented. Comfortable with syntax, you’ll benefit by mastering the use of the libraries and utilise its features, speed, and efficiency, for which the Go ecology is justly famous.
You already know a little Go syntax and you’ve written some small projects, most Go programmers face the difficulty of having to integrate their Golang skills with production code. Typical introductions to Go programming, often stop short of this transition, the author continue on, showing you just how to tackle this.
Offering a compendium of Go, the book begins with an account of how Go has been implemented, also, the reader will benefit from a dedicated chapter, an in-depth account of concurrency, systems and network programming, imperative for modern-day native cloud development.
What You Will Learn Understand the design choices of Golang syntax Know enough Go internals to be able to optimize Golang code Appreciate concurrency models 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 data types and data structures
Table of Contents 1: GO AND THE OPERATING SYSTEM 2: UNDERSTANDING GO INTERNALS 3: WORKING WITH BASIC GO DATA TYPES 4: THE USES OF COMPOSITE TYPES 5: ENHANCING GO CODE WITH DATA STRUCTURES 6: WHAT YOU MIGHT NOT KNOW ABOUT GO PACKAGES 7: REFLECTION AND INTERFACES FOR ALL SEASONS 8: TELLING A UNIX SYSTEM WHAT TO DO 9: GO CONCURRENCY – GOROUTINES, CHANNELS, AND PIPELINES 10: GO CONCURRENCY – ADVANCED TOPICS 11: CODE TESTING, OPTIMIZATION, AND PROFILING 12: THE FOUNDATIONS OF NETWORK PROGRAMMING IN GO 13: NETWORK PROGRAMMING – BUILDING SERVERS AND CLIENTS