作品简介

本书全面介绍了Go语言的特点、安装部署环境、工程规范、工具链、语言语法、并发编程模型以及在多个编程实战中的应用,重点阐述了Go语言并发编程模型和机制。本书共分为四个部分,介绍了Go语言编程环境搭建、Go语言基础编程、Go语言并发编程方法及其原理,以及使用Go语言开发的应用系统的案例讲解。

本书适用于有一定计算机编程基础的从业者以及对Go语言编程感兴趣的爱好者,非常适合作为Go语言编程进阶教程。

郝林,Gopher、高级Java软件工程师、Python程序员和Linux爱好者。目前在宜信公司的小微企业增值服务中心任软件系统架构师。曾就职于搜狐网多年,并任Java项目经理。在互联网软件的设计和开发方面拥有丰富的实战经验。微博名:特价萝卜。

作品目录

  • 专家推荐
  • 推荐序
  • 前言
  • 本书结构
  • 目标读者
  • 关于示例代码
  • 关于勘误
  • 致谢
  • 第一部分 Go语言的世界
  • 第 1 章 初识Go语言
  • 1.1 Go语言特性一瞥
  • 1.2 Go语言的优劣
  • 1.3 怎样学习Go语言
  • 1.4 本章小结
  • 第 2 章 Go语言环境搭建
  • 2.1 安装和设置
  • 2.1.1 Linux
  • 2.1.2 Windows
  • 2.2 工程结构
  • 2.2.1 工作区
  • 2.2.2 GOPATH
  • 2.2.3 源码文件
  • 2.2.4 代码包
  • 2.3 标准命令概述
  • 2.4 本章小结
  • 第二部分 编程基础
  • 第 3 章 词法与数据类型
  • 3.1 基本词法
  • 3.1.1 标识符
  • 3.1.2 关键字
  • 3.1.3 字面量
  • 3.1.4 类型
  • 3.1.5 操作符
  • 3.1.6 表达式
  • 3.2 数据类型
  • 3.2.1 基本数据类型
  • 3.2.2 数组
  • 3.2.3 切片
  • 3.2.4 字典
  • 3.2.5 函数和方法
  • 3.2.6 接口
  • 3.2.7 结构体
  • 3.2.8 指针
  • 3.2.9 数据初始化
  • 3.3 数据的使用
  • 3.3.1 赋值语句
  • 3.3.2 常量与变量
  • 3.3.3 可比性与有序性
  • 3.3.4 类型转换
  • 3.3.5 内建函数
  • 3.4 本章小结
  • 第 4 章 流程控制方法
  • 4.1 基本流程控制
  • 4.1.1 代码块和作用域
  • 4.1.2  if 语句
  • 4.1.3  switch 语句
  • 4.1.4  for 语句
  • 4.1.5  goto 语句
  • 4.2  defer 语句
  • 4.3 异常处理
  • 4.3.1  error
  • 4.3.2  panic 和 recover
  • 4.4 实战演练——Set
  • 4.5 实战演练——Ordered Map
  • 4.6 本章小结
  • 第 5 章 程序测试和文档
  • 5.1 程序测试
  • 5.1.1 功能测试
  • 5.1.2 基准测试
  • 5.1.3 样本测试
  • 5.1.4 测试运行记录
  • 5.1.5 测试覆盖率
  • 5.2 程序文档
  • 5.3 本章小结
  • 第三部分 并发编程
  • 第 6 章 并发编程综述
  • 6.1 并发编程基础
  • 6.1.1 串行程序与并发程序
  • 6.1.2 并发程序与并行程序
  • 6.1.3 并发程序与并发系统
  • 6.1.4 并发程序的不确定性
  • 6.1.5 并发程序内部的交互
  • 6.2 多进程编程
  • 6.2.1 进程
  • 6.2.2 关于同步
  • 6.2.3 管道
  • 6.2.4 信号
  • 6.2.5 Socket
  • 6.3 多线程编程
  • 6.3.1 线程
  • 6.3.2 线程的同步
  • 6.4 多线程与多进程
  • 6.5 多核时代的并发编程
  • 6.6 Go语言的并发编程
  • 6.6.1 线程实现模型
  • 6.6.2 调度器
  • 6.6.3 更多的细节
  • 6.7 本章小结
  • 第 7 章 Goroutine和Channel
  • 7.1 Goroutine的使用
  • 7.1.1  go 语句与Goroutine
  • 7.1.2 Goroutine的运作过程
  • 7.1.3  runtime 包与Goroutine
  • 7.1.4 Happens Before
  • 7.2 Channel
  • 7.2.1 Channel是什么
  • 7.2.2 单向Channel
  • 7.2.3  for 语句与Channel
  • 7.2.4  select 语句
  • 7.2.5 非缓冲的Channel
  • 7.2.6  time 包与Channel
  • 7.3 实战演练——载荷发生器
  • 7.3.1 参数和结果
  • 7.3.2 基本结构
  • 7.3.3 初始化
  • 7.3.4 启动和停止
  • 7.3.5 调用器和功能测试
  • 7.4 本章小结
  • 第 8 章 同步
  • 8.1 锁的使用
  • 8.2 条件变量
  • 8.3 原子操作
  • 8.4 只会执行一次
  • 8.5 WaitGroup
  • 8.6 临时对象池
  • 8.7 实战演练——Concurrent Map
  • 8.8 本章小结
  • 第四部分 编程实战
  • 第 9 章 一个网络爬虫框架的设计和实现
  • 9.1 网络爬虫与框架
  • 9.2 功能需求和分析
  • 9.3 总体设计
  • 9.4 详细设计
  • 9.4.1 基本数据结构
  • 9.4.2 接口的设计
  • 9.5 中间件的实现
  • 9.5.1 通道管理器
  • 9.5.2 实体池
  • 9.5.3 停止信号
  • 9.5.4 ID生成器
  • 9.6 处理模块的实现
  • 9.6.1 网页下载器
  • 9.6.2 分析器
  • 9.6.3 条目处理管道
  • 9.7 调度器的实现
  • 9.7.1 基本结构
  • 9.7.2 主要的函数和方法
  • 9.7.3 请求缓存
  • 9.7.4 摘要信息的类型
  • 9.8 一个使用演示
  • 9.8.1 再看调度器参数
  • 9.8.2 开启调度器
  • 9.8.3 调度器监控函数
  • 9.9 当前的不足和解决思路
  • 9.10 本章小结
  • 附录 Go语言的学习资源
  • 知名的Go语言开源框架
  • 国内的Go语言社区
展开全部