explaingit

chai2010/advanced-go-programming-book

Analysis updated 2026-06-21

20,065GoAudience · developerComplexity · 1/5LicenseSetup · easy

TLDR

A freely available Chinese-language book for experienced Go developers covering advanced topics like CGO, Go assembly, RPC systems, Protobuf plugins, web frameworks, and distributed systems.

Mindmap

mindmap
  root((Advanced Go Book))
    Topics covered
      CGO C interop
      Go assembly
      RPC systems
      Protobuf plugins
    Advanced concepts
      Web frameworks
      Distributed systems
      Compiler internals
    Audience
      Experienced Go devs
      Systems programmers
      Chinese-language readers
    Companion books
      Go AST book
      Toy compiler book
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Study how to call C libraries from Go using CGO to use performance-critical C code in Go applications.

USE CASE 2

Learn Go assembly language to understand how Go standard library hot paths are optimized at a low level.

USE CASE 3

Build an RPC system from scratch in Go by following the book step-by-step implementation chapters.

USE CASE 4

Understand distributed systems design and web framework construction in Go beyond what introductory tutorials cover.

What is it built with?

GoMarkdown

How does it compare?

chai2010/advanced-go-programming-bookknadh/listmonkapache/casbin
Stars20,06520,04920,107
LanguageGoGoGo
Setup difficultyeasymoderatemoderate
Complexity1/53/53/5
Audiencedeveloperpm founderdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Reading-only resource, browse online or clone the Markdown source, no build step required.

CC BY-NC-ND 4.0, free to read online but cannot be used commercially or republished in modified form.

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 am reading the CGO chapter of Advanced Go Programming. Help me write a Go wrapper around a C library function that takes a struct pointer and returns an error code.
Prompt 2
Explain the key concepts from the Advanced Go Programming chapter on Go assembly, how do Go functions call assembly routines and what are the calling conventions?
Prompt 3
I want to implement a simple RPC system in Go following the pattern described in Advanced Go Programming. Start me with the server and client handshake logic.
Prompt 4
Walk me through building a minimal Protobuf plugin in Go as described in Advanced Go Programming, what does the plugin receive and what must it output?
Prompt 5
I finished the basics of Go. What chapters of Advanced Go Programming should I read first to understand how Go works at the systems level?

Frequently asked questions

What is advanced-go-programming-book?

A freely available Chinese-language book for experienced Go developers covering advanced topics like CGO, Go assembly, RPC systems, Protobuf plugins, web frameworks, and distributed systems.

What language is advanced-go-programming-book written in?

Mainly Go. The stack also includes Go, Markdown.

What license does advanced-go-programming-book use?

CC BY-NC-ND 4.0, free to read online but cannot be used commercially or republished in modified form.

How hard is advanced-go-programming-book to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is advanced-go-programming-book for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub chai2010 on gitmyhub

Verify against the repo before relying on details.