作为时下流行的一种系统编程语言,Go 简单易学,性能很好,且支持各类主流平台。已有大量项目采用 Go 编写,这其中就包括 Docker 等明星作品,其开发和执行效率早已被证明。本书经四年多逐步完善,内容覆盖了语言、运行时、性能优化、工具链等各层面知识。且内容经大量读者反馈和校对,没有明显的缺陷和错误。上卷细致解析了语言规范相关细节,便于读者深入理解语言相关功能的使用方法和注意事项。下卷则对运行时源码做出深度剖析,引导读者透彻了解语言功能背后的支持环境和运行体系,诸如内存分配、垃圾回收和并发调度等。本书不适合编程初学入门,可供有实际编程经验或正在使用Go 工作的人群参考。
作者简介 自 1996 年从事计算机软件开发工作以来,已 20 春秋。期间供职于北大方正、西单电子商务、九城数码、知乎等公司。主要从事核心开发、架构设计,以及部分管理工作。
目录: 上卷 语言详解 第1 章 概述 ................................................................................................................. 3 1.1 特征 ......................................................................................................................... 3 1.2 简介 ......................................................................................................................... 6 第2 章 类型 ............................................................................................................... 18 2.1 变量 ....................................................................................................................... 18 2.2 命名 ....................................................................................................................... 22 2.3 常量 ....................................................................................................................... 24 2.4 基本类型 ............................................................................................................... 28 2.5 引用类型 ............................................................................................................... 31 2.6 类型转换 ............................................................................................................... 33 2.7 自定义类型 ........................................................................................................... 34 第3 章 表达式 ........................................................................................................... 38 3.1 保留字 ................................................................................................................... 38 3.2 运算符 ................................................................................................................... 38 3.3 初始化 ................................................................................................................... 44 3.4 流控制 ................................................................................................................... 45 第4 章 函数 ............................................................................................................... 59 4.1 定义 ....................................................................................................................... 59 4.2 参数 ....................................................................................................................... 63 4.3 返回值 ................................................................................................................... 67 4.4 匿名函数 ............................................................................................................... 69 4.5 延迟调用 ............................................................................................................... 76 4.6 错误处理 ............................................................................................................... 80 第5 章 数据 ............................................................................................................... 86 5.1 字符串 ................................................................................................................... 86 5.2 数组 ....................................................................................................................... 95 5.3 切片 ..................................................................................................................... 100 5.4 字典 ..................................................................................................................... 110 5.5 结构 ..................................................................................................................... 118 第6 章 方法 ............................................................................................................. 130 6.1 定义 ..................................................................................................................... 130 6.2 匿名字段 ............................................................................................................. 133 6.3 方法集 ................................................................................................................. 134 6.4 表达式 ................................................................................................................. 136 第7 章 接口 ............................................................................................................. 141 7.1 定义 ..................................................................................................................... 141 7.2 执行机制 ............................................................................................................. 145 7.3 类型转换 ............................................................................................................. 150 7.4 技巧 ..................................................................................................................... 151 第8 章 并发 ............................................................................................................. 153 8.1 并发的含义 ......................................................................................................... 153 8.2 通道 ..................................................................................................................... 163 8.3 同步 ..................................................................................................................... 183 第9 章 包结构 ......................................................................................................... 187 9.1 工作空间 ............................................................................................................. 187 9.2 导入包 ................................................................................................................. 188 9.3 组织结构 ............................................................................................................. 192 9.4 依赖管理 ............................................................................................................. 197 第10 章 反射 ........................................................................................................... 200 10.1 类型 ................................................................................................................... 200 10.2 值 ....................................................................................................................... 207 10.3 方法 ................................................................................................................... 210 10.4 构建 ................................................................................................................... 212 10.5 性能 ................................................................................................................... 213 第11 章 测试 ........................................................................................................... 216 11.1 单元测试 ........................................................................................................... 216 11.2 性能测试 ........................................................................................................... 221 11.3 代码覆盖率 ....................................................................................................... 224 11.4 性能监控 ........................................................................................................... 226 第12 章 工具链 ........................................................................................................ 229 12.1 安装 ................................................................................................................... 229 12.2 工具 ................................................................................................................... 231 12.3 编译 ................................................................................................................... 234 下卷 源码剖析 第13 章 准备 ............................................................................................................ 243 第14 章 引导 ............................................................................................................ 244 第15 章 初始化 ........................................................................................................ 247 第16 章 内存分配 ..................................................................................................... 255 16.1 概述 ................................................................................................................... 255 16.2 初始化 ............................................................................................................... 259 16.3 分配 ................................................................................................................... 265 16.4 回收 ................................................................................................................... 279 16.5 释放 ................................................................................................................... 283 16.6 其他 ................................................................................................................... 285 第17 章 垃圾回收 ...................................................................................................... 291 17.1 概述 ................................................................................................................... 291 17.2 初始化 ............................................................................................................... 293 17.3 启动 ................................................................................................................... 294 17.4 标记 ................................................................................................................... 300 17.5 清理 ................................................................................................................... 311 17.6 监控 ................................................................................................................... 314 17.7 其他 ................................................................................................................... 317 第18 章 并发调度 ...................................................................................................... 326 18.1 概述 ................................................................................................................... 326 18.2 初始化 ............................................................................................................... 327 18.3 任务 ................................................................................................................... 332 18.4 线程 ................................................................................................................... 344 18.5 执行 ................................................................................................................... 353 18.6 连续栈 ............................................................................................................... 370 18.7 系统调用 ........................................................................................................... 385 18.8 监控 ................................................................................................................... 390 18.9 其他 ................................................................................................................... 396 第19 章 通道 ............................................................................................................. 407 19.1 创建 ................................................................................................................... 407 19.2 收发 ................................................................................................................... 408 19.3 选择 ................................................................................................................... 418 第20 章 延迟 ............................................................................................................. 427 20.1 定义 ................................................................................................................... 427 20.2 性能 ................................................................................................................... 433 20.3 错误 ................................................................................................................... 434 第21 章 析构 ............................................................................................................. 438 21.1 设置 ................................................................................................................... 438 21.2 清理 ................................................................................................................... 443 21.3 执行 ................................................................................................................... 445 第22 章 缓存池 ......................................................................................................... 450 22.1 初始化 ............................................................................................................... 450 22.2 操作 ................................................................................................................... 453 22.3 清理 ................................................................................................................... 455
|