《Go程序开发实战宝典》结合典型案例进行知识点讲解,内容通俗易懂、重点突出、实用性强,囊括Go语言的主要功能。全书共14章,前6章主要包括基础数据类型、循环控制、函数和指针、内置容器、字符串处理等;第7章主要讲解Go语言的面向对象编程,主要包括结构体、方法、接口、设计模式、反射等内容;第8~13章主要介绍服务端开发经常需要处理的问题,主要包括Go语言的编写规范、错误处理、异常处理、文件读写操作、JSON编码解码、网络编程、gRPC、并发编程、数据库编程、网络安全和测试等内容。此外,本书还对一些数据类型的底层结构、并发机制、垃圾回收进行了深入的讲解,*后一章通过对Gin框架的介绍和使用,完成了一个基础的分布式网盘项目。
《Go程序开发实战宝典》附赠了相关知识点的视频讲解及案例源代码,读者可自行下载(详细方法见本书封底)。
《Go程序开发实战宝典》适合所有对Go语言感兴趣的开发人员阅读,即使没有Go语言基础也可以直接上手使用,同时也可作为计算机相关专业师生的参考用书。
按知识点分类的视频列表
前言
第1章 初识Go语言
1.1 Go语言简介
1.1.1 Go语言的三位主要作者
1.1.2 关于名字
1.1.3 吉祥物
1.1.4 特点与优势
1.1.5 著名项目
1.2 开发环境搭建
1.2.1 Linux环境
1.2.2 Windows环境
1.3 集成开发环境GoLand
1.3.1 下载及安装
1.3.2 创建项目
1.3.3 编写第一个程序
1.4 Go语言程序结构
1.4.1 标识符
1.4.2 关键字
1.4.3 字面量
1.4.4 注释
1.4.5 分隔符
1.4.6 可见性规则
1.5 本章小结
1.6 习题
第2章 数据类型与运算符
2.1 变量
2.1.1 变量的概念
2.1.2 变量声明与赋值
2.1.3 变量多重赋值
2.1.4 匿名变量
2.2 数据类型
2.2.1 整型
2.2.2 浮点型
2.2.3 复数
2.2.4 布尔型
2.2.5 字符串
2.2.6 字符
2.2.7 类型转换
2.2.8 类型别名
2.3 常量
2.3.1 声明方式
2.3.2 枚举
2.3.3 iota
2.4 运算符
2.4.1 算术运算符
2.4.2 关系运算符
2.4.3 逻辑运算符
2.4.4 位运算符
2.4.5 赋值运算符
2.4.6 其他运算符
2.4.7 运算符优先级
2.5 本章小结
2.6 习题
第3章 流程控制
3.1 条件判断语句
3.1.1 语法结构
3.1.2 if语句
3.1.3 if else语句
3.1.4 else if语句
3.1.5 if嵌套语句
3.2 switch语句
3.2.1 语法结构
3.2.2 type switch
3.2.3 switch初始化
3.2.4 fallthrough
3.3 循环语句
3.3.1 语法结构
3.3.2 嵌套循环
3.3.3 range子语句
3.4 循环控制语句
3.4.1 break语句
3.4.2 continue语句
3.4.3 goto语句和标签
3.5 本章小结
3.6 习题
第4章 函数与指针
4.1 函数
4.1.1 函数声明
4.1.2 作用域
4.1.3 函数变量
4.1.4 闭包与匿名函数
4.1.5 可变参数
4.1.6 递归函数
4.2 指针
4.2.1 指针的本质
4.2.2 基本操作
4.2.3 new函数
4.2.4 nil指针
4.2.5 指针的指针
4.3 函数的参数传递
4.3.1 形参和实参
4.3.2 值传递
4.3.3 引用传递
4.3.4 值类型和引用类型
4.4 本章小结
4.5 习题
第5章 复合数据类型
5.1 数组
5.1.1 理解数组
5.1.2 声明和初始化
5.1.3 访问和修改
5.1.4 遍历数组
5.1.5 多维数组
5.1.6 函数间传递数组
5.1.7 数组指针与指针数组
5.2 切片
5.2.1 理解切片
5.2.2 声明和初始化
5.2.3 修改和截取
5.2.4 增长和复制
5.2.5 删除切片元素
5.2.6 快速排序
5.3 map
5.3.1 理解map
5.3.2 创建map
5.3.3 删除元素
5.3.4 函数间传递map
5.4 本章小结
5.5 习题
第6章 字符串
6.1 基本操作
6.1.1 字符串底层结构
6.1.2 UTF-8编码
6.1.3 常用操作
6.1.4 遍历字符串
6.2 处理方法
6.2.1 检索字符串
6.2.2 分隔字符串
6.2.3 大小写转换
6.2.4 修剪字符串
6.2.5 比较字符串
6.2.6 连接和替换
6.3 类型转换
6.3.1 字符串转其他类型
6.3.2 其他类型转字符串
6.4 正则表达式
6.4.1 基本规则
6.4.2 使用regexp包
6.5 本章小结
6.6 习题
第7章 面向对象编程
7.1 结构体
7.1.1 结构体定义
7.1.2 实例化
7.1.3 函数间传递结构体
7.1.4 匿名结构体
7.1.5 匿名成员
7.1.6 结构体嵌入
7.2 方法
7.2.1 为类型添加方法
7.2.2 方法与函数的区别
7.2.3 值语义和引用语义
7.2.4 方法继承和重写
7.3 接口
7.3.1 Duck Typing
7.3.2 接口的使用
7.3.3 接口赋值
7.3.4 接口查询
7.3.5 多态
7.3.6 空接口
7.3.7 类型断言
7.4 设计模式
7.4.1 开闭原则
7.4.2 依赖倒置原则
7.4.3 单例模式
7.4.4 工厂方法模式
7.4.5 抽象工厂模式
7.4.6 外观模式
7.4.7 观察者模式
7.5 反射
7.5.1 Go语言的反射
7.5.2 反射法则
7.5.3 反射变量的类型和值
7.5.4 创建新实例
7.5.5 创建引用类型的实例
7.5.6 创建函数
7.6 本章小结
7.7 习题
第8章 编写规范和错误处理
8.1 编写规范
8.1.1 代码风格
8.1.2 注释
8.1.3 命名
8.2 错误处理
8.2.1 error接口
8.2.2 处理error的方式
8.2.3 自定义错误
8.2.4 引入包
8.3 defer
8.3.1 执行顺序
8.3.2 值传递
8.4 异常处理
8.4.1 panic
8.4.2 recover
8.4.3 实现原理//可以删除
8.5 内存管理
8.5.1 内存分区
8.5.2 Go Runtime内存分配
8.5.3 逃逸分析
8.5.4 语法糖
8.5.5 垃圾回收
8.5.6 临时实例池
8.6 本章小结
8.7 习题
第9章 文件读写操作
9.1 文件信息
9.1.1 文件概述
9.1.2 FileInfo接口
9.2 文件常规操作
9.2.1 创建目录
9.2.2 创建文件
9.2.3 打开和关闭文件
9.2.4 删除文件
9.3 读写文件
9.3.1 写入文件
9.3.2 读取文件
9.3.3 拷贝文件
9.4 缓冲区
9.4.1 缓冲区原理
9.4.2 bufio.Reader
9.4.3 bufio.Writer
9.4.4 Scanner类型和方法
9.5 JSON
9.5.1 语法规则
9.5.2 编码和解码
9.5.3 JSON与map的转换
9.5.4 JSON与结构体的转换
9.5.5 结构体字段标签
9.5.6 匿名字段
9.6 本章小结
9.7 习题
第10章 网络编程
10.1 套接字
10.1.1 实现步骤
10.1.2 TCP套接字
10.1.3 UDP套接字
10.2 Web编程
10.2.1 理解路由
10.2.2 交互流程
10.2.3 Web服务器
10.2.4 客户端
10.3 模板
10.3.1 变量
10.3.2 逻辑判断
10.3.3 遍历
10.3.4 嵌套
10.4 RPC应用
10.4.1 内置RPC
10.4.2 Protobuf
10.4.3 gRPC
10.4.4 自签证书
10.4.5 拦截器和认证
10.4.6 添加HTTP接口
10.5 本章小结
10.6 习题
第11章 并发编程
11.1 并发基础
11.1.1 并发与并行
11.1.2 进程和线程
11.1.3 协程
11.2 Goroutine
11.2.1 Goroutine原理
11.2. 2GPM模型
11.2.3 Goroutine的使用
11.2.4 闭包与Goroutine
11.2.5 调度Goroutine
11.3 Channel
11.3.1 Channel基础
11.3.2 无缓冲Channel
11.3.3 阻塞
11.3.4 有缓冲Channel
11.3.5 生产者消费者模型
11.3.6 单向Channel
11.3.7 定时器
11.3.8 select分支语句
11.4 同步操作
11.4.1 同步等待组
11.4.2 竞争状态
11.4.3 互斥锁
11.4.4 读写互斥锁
11.4.5 条件变量
11.5Context
11.5.1Context的作用
11.5.2Context接口
11.5.3超时取消
11.5.4传值
11.6 MapReduce
11.6.1 编程模型原理
11.6.2 编程实验
11.6.3 实现方案
11.7 本章小结
11.8 习题
第12章 数据库编程
12.1 数据库简介
12.1.1 关系型数据库
12.1.2 非关系型数据库
12.2 操作MySQL
12.2.1 安装MySQL驱动
12.2.2 连接数据库
12.2.3 CRUD操作
12.2.4 预编译语句
12.2.5 事务处理
12.3 对象关系映射
12.3.1 XORM框架
12.3.2 数据库配置
12.3.3 结构体映射
12.3.4 表基本操作
12.3.5 CRUD操作
12.4 Redis
12.4.1 数据类型
12.4.2 读写操作
12.4.3 连接池
12.5 本章小结
12.6 习题
第13章 安全与测试
13.1 信息安全
13.1.1 Hash算法
13.1.2 Base64
13.1.3 对称加密
13.1.4 非对称加密
13.1.5 数字签名
13.2 测试
13.2.1 单元测试
13.2.2 基准测试
13.2.3 Mock依赖
13.3 本章小结
13.4 习题
第14章 项目实战
14.1 Gin框架
14.1.1 Gin框架特点
14.1.2 请求参数获取
14.1.3 数据绑定和验证
14.1.4 输出响应
14.1.5 路由设置
14.1.6 中间件
14.2 分布式网盘项目
14.2.1 项目架构
14.2.2 MVC设计模式
14.2.3 数据库
14.2.4 路由设置
14.2.5 基础配置
14.2.6 工具设置
14.3 分布式文件系统
14.3.1 FastDFS简介
14.3.2 FastDFS工作原理
14.3.3 安装和配置FastDFS
14.3.4 配置Nginx模块
14.4 用户模块开发
14.4.1 用户注册
14.4.2 登录功能
14.4.3 首页设计
14.5 文件模块开发
14.5.1 上传和下载
14.5.2 秒传原理
14.5.3 文件信息展示
14.6 本章小结