目录
前言
Go语言基础实战/
1.1Go语言基础/
1.1.1基础语法/
1.1.2变量/
1.1.3常量/
1.1.4运算符/
1.1.5流程控制语句/
1.2字符串实战技巧/
1.2.1字符串基础/
1.2.2中文字符串的截取/
1.2.3按单词或字节反转字
符串/
1.2.4生成随机字符串/
1.2.5控制大小写/
1.2.6去除字符串首尾的空格/
1.2.7生成CSV数据/
1.2.8解析CSV数据/
1.2.9获取中文字符串/
1.2.10按指定函数分割字符串/
1.2.11合并与分割字符串/
1.2.12按照指定函数截取字
符串/
1.2.13【实战】生成可下载的CSV
文件/
1.2.14【实战】用Go运行Shell脚本
程序/
1.3数组和切片基础技巧/
1.3.1数组和切片基础/
1.3.2迭代处理数组/
1.3.3从数组中删除元素/
1.3.4将数组转换为字符串/
1.3.5检查某个值是否在数
组中/
1.3.6查找一个元素在数组中的
位置/
1.3.7查找数组中最大值或最小值
元素/
1.3.8随机打乱数组/
1.3.9删除数组中重复的元素/
1.4数组高级技巧/
1.4.1一维数组的排序/
1.4.2二维数组的排序/
1.4.3多维数组声明/
1.4.4多维数组遍历/
1.4.5多维数组的查询/
1.4.6多维数组的修改/
1.4.7三维数组生成器/
1.4.8【实战】从数据库中获取数据并
进行合并处理和导出/
1.5map常见实战技巧/
1.5.1map基础/
1.5.2检查一个键是否在
map中/
1.5.3json与map互相转化/
1.5.4map排序示例/
1.5.5map高级使用技巧/
1.5.6map排序技巧/
1.5.7【实战】从数据库中获取数据
并导出特定CSV文件/
1.6结构体的使用技巧/
1.6.1结构体基础/
1.6.2结构体初始化/
1.6.3继承/
1.6.4结构体组合/
1.6.5匿名结构体/
1.6.6结构体嵌套/
1.6.7结构体字段标签/
1.6.8Go语言面向对象编程/
1.6.9【实战】模拟二维矢量移动
小游戏/
1.7接口常用技巧/
1.7.1接口的赋值/
1.7.2接口的查询/
1.7.3接口的组合/
1.7.4接口的常见应用/
1.7.5接口使用注意事项/
目录
Go语言高级开发与实战1.8Go语言模块管理/
1.9通道实战技巧/
1.9.1通道基础/
1.9.2创建定时通知/
1.9.3使用通道传送通道/
1.9.4检查通道的长度和容量/
1.9.5速率限制/
1.10回顾和启示/
Go语言高级编程技巧/
2.1函数与指针技巧/
2.1.1递归函数/
2.1.2匿名变量和匿名函数/
2.1.3指针/
2.1.4函数的参数传递/
2.1.5函数使用的常见
注意事项/
2.2反射应用技巧/
2.2.1反射原理/
2.2.2反射3大法则简介/
2.3Go语言编译/
2.3.1编译基础知识/
2.3.2Go语言编译原理/
2.3.3Go语言编译器入口/
2.3.4编译器调试/
2.4CGO编程技巧/
2.4.1CGO基础使用/
2.4.2CGO使用的问题和挑战/
2.5错误和异常处理技巧/
2.5.1错误和异常简介/
2.5.2错误处理的技巧/
2.5.3异常处理的技巧/
2.6密码学算法技巧/
2.6.1Hash算法/
2.6.2对称与非对称加密算法/
2.6.3椭圆曲线加密算法/
2.6.4字符串编码与解码/
2.7性能剖析与事件追踪/
2.7.1pprof性能剖析/
2.7.2trace事件追踪/
2.8回顾和启示/
Go Web编程/
3.1Go Web基础/
3.1.1Go语言接收HTTP请求/
3.1.2Go语言处理HTTP请求/
3.2Go HTTP2编程/
3.2.1HTTP简介/
3.2.2Go HTTP2编程实例/
3.3Go HTTP3编程/
3.3.1HTTP3简介/
3.3.2Go HTTP3编程实例/
3.4Go Socket编程/
3.4.1什么是Socket/
3.4.2TCP Socket/
3.4.3UDP Socket/
3.4.4【实战】用Socket开发简易
聊天程序/
3.5Go MySQL使用技巧/
3.5.1Go 使用MySQL/
3.5.2MySQL常见ORM/
3.6Go Redis使用技巧/
3.6.1Go Redis常见处理技巧/
3.6.2使用Go Redis实现排行榜
功能/
3.7Go gRPC使用/
3.7.1什么是gRPC/
3.7.2Go gRPC的使用/
3.8【实战】使用gRPC开发一个简易分
布式爬虫系统/
3.9回顾和启示/
Go语言并发编程/
4.1并发编程基础/
4.2计算机常见并发模型/
4.2.1线程和锁/
4.2.2演员模型/
4.2.3通信顺序进程/
4.3Go语言并发模型/
4.4Go语言常见并发设计模式/
4.4.1屏障模式/
4.4.2未来模式/
4.4.3管道模式/
4.4.4扇出和扇入模式/
4.4.5协程池模式/
4.4.6发布-订阅模式/
4.5同步常用技巧/
4.5.1竞态/
4.5.2互斥锁/
4.5.3读写互斥锁/
4.5.4只执行一次/
4.5.5等待组/
4.5.6竞态检测器/
4.5.7并发安全字典/
4.6goroutine使用技巧/
4.6.1限制并发数量/
4.6.2节拍器/
4.6.3使用select多路复用/
4.7【实战】开发一个并发任务
系统/
4.8回顾和启示/
分布式系统/
5.1分布式系统原理/
5.1.1什么是分布式系统/
5.1.2分布式系统的常见一致性
算法/
5.2负载均衡简介/
5.3常见负载均衡算法/
5.3.1轮询调度算法/
5.3.2随机算法/
5.3.3一致性哈希算法/
5.3.4键值范围算法/
5.4分布式锁/
5.4.1分布式锁简介/
5.4.2基于MySQL数据库表实现
分布式锁/
5.4.3用ZooKeeper实现分布
式锁/
5.4.4使用Redis的SETNX实现
分布式锁/
5.4.5使用etcd实现分布式锁/
5.4.5分布式锁的选择/
5.5Go实现常见的分布式应用/
5.5.1用Snowflake框架生成分布
式ID/
5.5.2Go 语言实现 Paxos一致性
算法/
5.6Go语言常见分布式框架/
5.6.1Go Micro框架/
5.6.2Consul框架/
5.7回顾和启示/
Go语言秒杀系统实战/
6.1秒杀系统简介/
6.1.1高并发系统简介/
6.1.2秒杀系统简介/
6.2秒杀系统架构/
6.2.1架构原则/
6.2.2秒杀系统架构/
6.3HTML静态页面开发/
6.3.1秒杀页面设计/
6.3.2秒杀页面静态化/
6.3.3客户端限流/
6.4服务器端开发/
6.4.1代理层设计/
6.4.2应用层实现/
6.4.3数据库层隔离/
6.5压力测试/
6.6回顾与启示/