explaingit

chai2010/advanced-go-programming-book

20,064GoAudience · developerComplexity · 4/5QuietLicenseSetup · easy

TLDR

A free Chinese-language book teaching advanced Go topics like CGO, assembly, RPC, and distributed systems for developers who already know the basics.

Mindmap

mindmap
  root((Advanced Go))
    Topics Covered
      CGO and C interop
      Go assembly language
      RPC systems
      Protobuf plugins
    Learning Path
      Requires Go basics
      System programming
      Performance tuning
    Use Cases
      Building compilers
      Distributed systems
      Web frameworks
    Format
      Free online book
      Markdown source
      Second edition print

Things people build with this

USE CASE 1

Learn how to call C code from Go and vice versa using CGO for system-level programming.

USE CASE 2

Understand Go's low-level assembly language to optimize performance-critical code.

USE CASE 3

Build distributed systems by learning RPC implementation and Protobuf serialization.

USE CASE 4

Study advanced patterns for designing web frameworks and concurrent systems in Go.

Tech stack

GoCGOProtobufAssembly

Getting it running

Difficulty · easy Time to first run · 5min
Free to read online, but cannot be used commercially or republished in modified form under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0.

In plain English

This repository contains the source for "Advanced Go Programming" (Go语言高级编程), a freely available Chinese-language book for experienced Go developers who want to go deeper into the language. A second edition has been published in print and is also available online. The book is aimed at Go developers who already know the basics and want to understand advanced topics that typical introductory resources skip. The topics covered include CGO (the Go mechanism for calling C code from Go, and vice versa), Go assembly language (the low-level assembly dialect used inside Go's own standard library), implementing Remote Procedure Call (RPC) systems from scratch, building Protobuf plugins (Protobuf is a widely-used data serialization format common in distributed systems), building web frameworks, and designing distributed systems. The authors recommend that readers new to Go start with "The Go Programming Language" (a foundational book) before tackling this material. The repository also links to companion books by the same author on Go's abstract syntax tree (for those interested in building compilers or code analysis tools) and building a toy Go compiler from scratch. The book is written in Go and the repository contains the book's Markdown source. It is published under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 license, meaning it can be read freely but not used commercially or republished in modified form. You would use this as a study resource if you are a Go developer comfortable with the basics and want to understand how Go works at a deeper level, particularly around system programming, performance, and distributed computing.

Copy-paste prompts

Prompt 1
I'm a Go developer ready to learn advanced topics. Walk me through the CGO chapter from the Advanced Go Programming book and show me a practical example of calling C code.
Prompt 2
Explain how Go assembly language works and why I'd need to understand it. Give me a simple example from the Advanced Go Programming book.
Prompt 3
I want to build an RPC system in Go. Summarize the RPC chapter from Advanced Go Programming and outline the key steps.
Prompt 4
Show me how to write a Protobuf plugin in Go using concepts from the Advanced Go Programming book.
Prompt 5
What distributed systems patterns does the Advanced Go Programming book cover? Give me the main takeaways.
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.