{"version":1,"pages":[{"id":"-LyNMnvBI3uBESKoCw4x","title":"Go语言高级编程(Advanced Go Programming)","pathname":"/go","siteSpaceId":"sitesp_okn2Z","description":""},{"id":"-LyNMyP4DyFayBBCn_lV","title":"第1章 语言基础","pathname":"/go/ch1-basic","siteSpaceId":"sitesp_okn2Z","description":""},{"id":"-LyNMyP5ZXmCfq7qR3yy","title":"1.1 Go语言创世纪","pathname":"/go/ch1-basic/ch1-01-genesis","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第1章 语言基础"}]},{"id":"-LyNMyP6EEDgXHj2WSai","title":"1.2 Hello, World 的革命","pathname":"/go/ch1-basic/ch1-02-hello-revolution","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第1章 语言基础"}]},{"id":"-LyNMyP7oDWuSctPh1KF","title":"1.3 数组、字符串和切片","pathname":"/go/ch1-basic/ch1-03-array-string-and-slice","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第1章 语言基础"}]},{"id":"-LyNMyP8dsKGOGpQFpMe","title":"1.4 函数、方法和接口","pathname":"/go/ch1-basic/ch1-04-func-method-interface","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第1章 语言基础"}]},{"id":"-LyNMyP9ZnpzxfsdZuCO","title":"1.5 面向并发的内存模型","pathname":"/go/ch1-basic/ch1-05-mem","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第1章 语言基础"}]},{"id":"-LyNMyPARmELXEybV34R","title":"1.6 常见的并发模式","pathname":"/go/ch1-basic/ch1-06-goroutine","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第1章 语言基础"}]},{"id":"-LyNMyPBxXn59-Ssnjuv","title":"1.7 错误和异常","pathname":"/go/ch1-basic/ch1-07-error-and-panic","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第1章 语言基础"}]},{"id":"-LyNMyPCQsplqGlaHwGP","title":"1.8 补充说明","pathname":"/go/ch1-basic/ch1-08-ext","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第1章 语言基础"}]},{"id":"-LyNMyPDiw-b1YEMQKpT","title":"第2章 CGO编程","pathname":"/go/ch2-cgo","siteSpaceId":"sitesp_okn2Z","description":""},{"id":"-LyNMyPERWnvca2l67vS","title":"2.1 快速入门","pathname":"/go/ch2-cgo/ch2-01-hello-cgo","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第2章 CGO编程"}]},{"id":"-LyNMyPFRfLAOCyH2lwW","title":"2.2 CGO基础","pathname":"/go/ch2-cgo/ch2-02-basic","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第2章 CGO编程"}]},{"id":"-LyNMyPGQdwuQV4fIvti","title":"2.3 类型转换","pathname":"/go/ch2-cgo/ch2-03-cgo-types","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第2章 CGO编程"}]},{"id":"-LyNMyPH1UpLc5u8yv4a","title":"2.4 函数调用","pathname":"/go/ch2-cgo/ch2-04-func","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第2章 CGO编程"}]},{"id":"-LyNMyPIrKeRXH2g8MKX","title":"2.5 内部机制","pathname":"/go/ch2-cgo/ch2-05-internal","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第2章 CGO编程"}]},{"id":"-LyNMyPJz76OcJQan1ta","title":"2.6 实战: 封装qsort","pathname":"/go/ch2-cgo/ch2-06-qsort","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第2章 CGO编程"}]},{"id":"-LyNMyPKldHOiv8cDWqB","title":"2.7 CGO内存模型","pathname":"/go/ch2-cgo/ch2-07-memory","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第2章 CGO编程"}]},{"id":"-LyNMyPLzDu0lQy3D19S","title":"2.8 C++类包装","pathname":"/go/ch2-cgo/ch2-08-class","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第2章 CGO编程"}]},{"id":"-LyNMyPMdr2SvwAx67es","title":"2.9 静态库和动态库","pathname":"/go/ch2-cgo/ch2-09-static-shared-lib","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第2章 CGO编程"}]},{"id":"-LyNMyPNj7QR2XnkhmNy","title":"2.10 编译和链接参数","pathname":"/go/ch2-cgo/ch2-10-link","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第2章 CGO编程"}]},{"id":"-LyNMyPOvEnqT_ibcZWv","title":"2.11 补充说明","pathname":"/go/ch2-cgo/ch2-11-ext","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第2章 CGO编程"}]},{"id":"-LyNMyPPfX1l8ip9D_pn","title":"第3章 汇编语言","pathname":"/go/ch3-asm","siteSpaceId":"sitesp_okn2Z","description":""},{"id":"-LyNMyPQzhlHM-UBamcD","title":"3.1 快速入门","pathname":"/go/ch3-asm/ch3-01-basic","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第3章 汇编语言"}]},{"id":"-LyNMyPRIhbSz_ESWt7L","title":"3.2 计算机结构","pathname":"/go/ch3-asm/ch3-02-arch","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第3章 汇编语言"}]},{"id":"-LyNMyPSevBjP8iiV1NT","title":"3.3 常量和全局变量","pathname":"/go/ch3-asm/ch3-03-const-and-var","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第3章 汇编语言"}]},{"id":"-LyNMyPT8k5SjWC2-K9_","title":"3.4 函数","pathname":"/go/ch3-asm/ch3-04-func","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第3章 汇编语言"}]},{"id":"-LyNMyPU6kqnRzoYGSgT","title":"3.5 控制流","pathname":"/go/ch3-asm/ch3-05-control-flow","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第3章 汇编语言"}]},{"id":"-LyNMyPV3Kmxa5jbBkYV","title":"3.6 再论函数","pathname":"/go/ch3-asm/ch3-06-func-again","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第3章 汇编语言"}]},{"id":"-LyNMyPWOkmju--IJhAA","title":"3.7 汇编语言的威力","pathname":"/go/ch3-asm/ch3-07-hack-asm","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第3章 汇编语言"}]},{"id":"-LyNMyPXl_cvNKyx8Q_e","title":"3.8 例子：Goroutine ID","pathname":"/go/ch3-asm/ch3-08-goroutine-id","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第3章 汇编语言"}]},{"id":"-LyNMyPYEd9Cj2HpTS11","title":"3.9 Delve调试器","pathname":"/go/ch3-asm/ch3-09-debug","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第3章 汇编语言"}]},{"id":"-LyNMyPZ6LTgjckfP_aj","title":"3.10 补充说明","pathname":"/go/ch3-asm/ch3-10-ext","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第3章 汇编语言"}]},{"id":"-LyNMyP_Ix_cc9-9_fEd","title":"第4章 RPC和Protobuf","pathname":"/go/ch4-rpc","siteSpaceId":"sitesp_okn2Z","description":""},{"id":"-LyNMyPawKU6yIeDBRBq","title":"4.1 RPC入门","pathname":"/go/ch4-rpc/ch4-01-rpc-intro","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第4章 RPC和Protobuf"}]},{"id":"-LyNMyPbimM4iL_s9K4D","title":"4.2 Protobuf","pathname":"/go/ch4-rpc/ch4-02-pb-intro","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第4章 RPC和Protobuf"}]},{"id":"-LyNMyPctgSxhBixt0zj","title":"4.3 玩转RPC","pathname":"/go/ch4-rpc/ch4-03-netrpc-hack","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第4章 RPC和Protobuf"}]},{"id":"-LyNMyPdmpEb_FQp8gpA","title":"4.4 gRPC入门","pathname":"/go/ch4-rpc/ch4-04-grpc","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第4章 RPC和Protobuf"}]},{"id":"-LyNMyPeNkgaOG0A5BZ2","title":"4.5 gRPC进阶","pathname":"/go/ch4-rpc/ch4-05-grpc-hack","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第4章 RPC和Protobuf"}]},{"id":"-LyNMyPf4coZcSC3LR9k","title":"4.6 gRPC和Protobuf扩展","pathname":"/go/ch4-rpc/ch4-06-grpc-ext","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第4章 RPC和Protobuf"}]},{"id":"-LyNMyPgFQn0LI_jJHr_","title":"4.7 pbgo: 基于Protobuf的框架","pathname":"/go/ch4-rpc/ch4-07-pbgo","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第4章 RPC和Protobuf"}]},{"id":"-LyNMyPhqZMsfcshryTB","title":"4.8 grpcurl工具","pathname":"/go/ch4-rpc/ch4-08-grpcurl","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第4章 RPC和Protobuf"}]},{"id":"-LyNMyPiTj0xVcNJNIYB","title":"4.9 补充说明","pathname":"/go/ch4-rpc/ch4-09-ext","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第4章 RPC和Protobuf"}]},{"id":"-LyNMyPjsQCMz4DOCPek","title":"第5章 Go和Web","pathname":"/go/ch5-web","siteSpaceId":"sitesp_okn2Z","description":""},{"id":"-LyNMyPkehpkugfitQKI","title":"5.1 Web开发简介","pathname":"/go/ch5-web/ch5-01-introduction","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第5章 Go和Web"}]},{"id":"-LyNMyPlZpBoOnPMbByG","title":"5.2 请求路由","pathname":"/go/ch5-web/ch5-02-router","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第5章 Go和Web"}]},{"id":"-LyNMyPmrHhVHLXvu-zP","title":"5.3 中间件","pathname":"/go/ch5-web/ch5-03-middleware","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第5章 Go和Web"}]},{"id":"-LyNMyPnrGyeJnmCibvR","title":"5.4 请求校验","pathname":"/go/ch5-web/ch5-04-validator","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第5章 Go和Web"}]},{"id":"-LyNMyPoSoiTVAOAdN7L","title":"5.5 和数据库打交道","pathname":"/go/ch5-web/ch5-05-database","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第5章 Go和Web"}]},{"id":"-LyNMyPpIjIIwHskT_Db","title":"5.6 服务流量限制","pathname":"/go/ch5-web/ch5-06-ratelimit","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第5章 Go和Web"}]},{"id":"-LyNMyPqcyLCWtbttre9","title":"5.7 大型Web项目分层","pathname":"/go/ch5-web/ch5-07-layout-of-web-project","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第5章 Go和Web"}]},{"id":"-LyNMyPrUvJi5vGYhny2","title":"5.8 接口和表驱动开发","pathname":"/go/ch5-web/ch5-08-interface-and-web","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第5章 Go和Web"}]},{"id":"-LyNMyPsrKOhyHlQxGcb","title":"5.9 灰度发布和A/B测试","pathname":"/go/ch5-web/ch5-09-gated-launch","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第5章 Go和Web"}]},{"id":"-LyNMyPtR-PgSTIgRfsE","title":"5.10 补充说明","pathname":"/go/ch5-web/ch5-10-ext","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第5章 Go和Web"}]},{"id":"-LyNMyPuLvUF2HFg7jxS","title":"第6章 分布式系统","pathname":"/go/ch6-cloud","siteSpaceId":"sitesp_okn2Z","description":""},{"id":"-LyNMyPv9w-7pth2eL1O","title":"6.1 分布式 id 生成器","pathname":"/go/ch6-cloud/ch6-01-dist-id","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第6章 分布式系统"}]},{"id":"-LyNMyPw1rTeI5nXnlfc","title":"6.2 分布式锁","pathname":"/go/ch6-cloud/ch6-02-lock","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第6章 分布式系统"}]},{"id":"-LyNMyPxwee3Q2ilRbUN","title":"6.3 延时任务系统","pathname":"/go/ch6-cloud/ch6-03-delay-job","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第6章 分布式系统"}]},{"id":"-LyNMyPy-jdF68Hc1eDv","title":"6.4 分布式搜索引擎","pathname":"/go/ch6-cloud/ch6-04-search-engine","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第6章 分布式系统"}]},{"id":"-LyNMyPzyuJGG27zNafs","title":"6.5 负载均衡","pathname":"/go/ch6-cloud/ch6-05-load-balance","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第6章 分布式系统"}]},{"id":"-LyNMyQ-mIIfJXvMoBto","title":"6.6 分布式配置管理","pathname":"/go/ch6-cloud/ch6-06-config","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第6章 分布式系统"}]},{"id":"-LyNMyQ09hDpFp0TTp5W","title":"6.7 分布式爬虫","pathname":"/go/ch6-cloud/ch6-07-crawler","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第6章 分布式系统"}]},{"id":"-LyNMyQ15KpFqqIOtJU8","title":"6.8 补充说明","pathname":"/go/ch6-cloud/ch6-08-ext","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"第6章 分布式系统"}]},{"id":"-LyNMyQ2Y85eDQZp_m4y","title":"附录","pathname":"/go/appendix","siteSpaceId":"sitesp_okn2Z","description":""},{"id":"-LyNMyQ3VLytaF4TpS71","title":"附录A: Go语言常见坑","pathname":"/go/appendix/appendix-a-trap","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"附录"}]},{"id":"-LyNMyQ4xJtdMWmrlyGp","title":"附录B: 有趣的代码片段","pathname":"/go/appendix/appendix-b-gems","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"附录"}]},{"id":"-LyNMyQ5NOD6hOCyWYvr","title":"附录C: 作者简介","pathname":"/go/appendix/appendix-c-author","siteSpaceId":"sitesp_okn2Z","description":"","breadcrumbs":[{"label":"附录"}]}]}