Google资深工程师深度讲解Go语言 由浅入深掌握Go语言(课程代码) 课程链接 从汇编的角度理解Go gin框架学习 go编译器和链接器 go语言版本数据结构及算法 go 反射及动态代理 go gRPC的应用,包含流程及抓包分析 go 调用c/c++ cch123的go学习笔记 目录 第1章 课程介绍 1-1 Google资深工程师深度讲解go语言最近学习 1-2 安装与环境 1-3 国内镜像配置 1-4 IntelliJ Idea 的安装和配置 1-5 vscode 的安装和配置 第2章 基础语法 2-1 变量定义 2-2 内建变量类型 2-3 常量与枚举 2-4 条件语句 2-5 循环 2-6 函数 2-7 指针 第3章 内建容器 3-1 数组 3-2 切片的概念 3-3 切片的操作 3-4 Map 3-5 Map例题 3-6 字符和字符串处理 第4章 面向“对象” 4-1 结构体和方法 4-2 包和封装 4-3 扩展已有类型 4-4 使用内嵌来扩展已有类型 第5章 Go语言的依赖管理 5-1 依赖管理 5-2 GOPATH 和 GOVENDOR 5-3 go mod的使用 5-4 目录的整理 第6章 面向接口 6-1 接口的概念 6-2 duck typing的概念 6-3 接口的定义和实现 6-4 接口的值类型 6-5 接口的组合 6-6 常用系统接口 第7章 函数式编程 7-1 函数式编程 7-2 函数式编程例一 7-3 函数式编程例二 第8章 错误处理和资源管理 8-1 defer调用 8-2 错误处理概念 8-3 服务器统一出错处理 8-4 panic和recover 8-5 服务器统一出错处理2 第9章 测试与性能调优 9-1 测试 9-2 代码覆盖率和性能测试 9-3 使用pprof进行性能调优 9-4 测试http服务器(上) 9-5 测试http服务器(下) 9-6 生成文档和示例代码 9-7 测试总结 第10章 Goroutine 10-1 goroutine 10-2 go语言的调度器 第11章 Channel 11-1 channel 11-2 使用Channel等待任务结束 11-3 使用Channel进行树的遍历 11-4 用select进行调度 11-5 传统同步机制 11-6 并发模式(上) 11-7 并发模式(下) 11-8 并发任务的控制 第12章 迷宫的广度优先搜索 12-1 迷宫_算法 12-2 迷宫代码实现 第13章 http及其他标准库 13-1 http标准库 13-2 其它标准库 13-3 json数据格式的处理 13-4 第三方API数据格式的解析技巧 13-5 gin 框架介绍 13-6 为gin增加middleware 第14章 开始实战项目 14-1 爬虫项目介绍 14-2 爬虫的法律风险 14-3 新爬虫的选择 14-4 总体算法 14-5 模拟相亲网站上线啦! 第15章 单任务版爬虫 15-1 获得初始页面内容 15-2 正则表达式 15-3 提取城市和url 15-4 单任务版爬虫的架构 15-5 Engine 与 Parser 15-6 测试CityListParser 15-7 城市解析器 15-8 用户信息解析器(上) 15-9 用户信息解析器(下) 15-10 单任务版爬虫性能 第16章 并发版爬虫 16-1 并发版爬虫架构 16-2 简单调度器 16-3 并发调度器 16-4 队列实现调度器 16-5 重构和总结 16-6 更多城市 16-7 更多用户与去重 第17章 数据存储和展示 17-1 ItemSaver的架构 17-2 Docker和ElasticSearch介绍 17-3 Docker的安装和使用 17-4 ElasticSearch入门 17-5 向ElasticSearch存储数据 17-6 完整爬虫的运行与数据存储 17-7 添加URL与ID 17-8 重构与运行 17-9 标准模板库介绍 17-10 实现前端展示页面 17-11 完善前端展示 第18章 分布式爬虫 18-1 分布式系统简介 18-2 分布式爬虫架构 18-3 jsonrpc的使用 18-4 ItemSaver服务 18-5 整合ItemSaver服务 18-6 解析器的序列化 18-7 实现爬虫服务 18-8 完整分布式爬虫的运行 18-9 使用连接池链接爬虫集群 18-10 实战项目总结 18-11 进一步的工作 第19章 课程总结 19-1 体会Go语言的设计 19-2 课程总结 原课程说明