从duck typing的概念开始学起,还将探讨其他语言中对duck typing的支持,由此引出接口的概念。深入理解Go语言接口的内部实现以及使用接口实现组合的模式。
5.1 接口的概念
5.2 duck typing的概念
5.3 接口的定义和实现
5.4 接口的值类型
5.5 接口的组合
5.6 常用系统接口
(6)函数式编程
在其他通用语言中,函数式编程是“高级”概念,但对于Go语言却非常基本。本章我们将讲解函数式编程的概念并且比较其他语言函数式编程的实现方法。重点理解闭包。
6.1 函数式编程
6.2 函数式编程例一
6.3 函数式编程例二
(7)错误处理和资源管理
Go语言独特的defer/panic/recover,以及错误机制,在社区有着广泛的争论。我们来深入理解Go语言的错误处理机制,看看Go语言如何区分错误以及异常。最后实现一个Web应用微型项目,采用商业服务的错误处理思路,结合函数式编程,来演示Go语言错误..
7.1 defer调用
7.2 错误处理概念
7.3 服务器统一出错处理
7.4 panic和recover
(8)测试与性能调优
Go语言的测试不同于其他如junit,Go语言采用“表格驱动测试”的理念。学习和体会这样的理念,并用Go语言的测试支持库来实践表格驱动测试,并做代码覆盖和性能检测,通过内建的性能调优工具来优化我们之前的算法。
8.1 测试
8.2 代码覆盖率和性能测试
8.3 使用pprof进行性能调优
8.4 测试http服务器(上)
8.5 测试http服务器(下)
8.6 生成文档和示例代码
8.7 测试总结
(9)Goroutine
并发编程。Goroutine,协程的概念,以及背后的Go语言调度器。
9.1 goroutine
9.2 go语言的调度器
(10)Channel
Channel是Goroutine之间通信的桥梁,它和函数一样是一等公民。学习完Channel的语法及运行方式后,掌握Go语言并发编程中最常见的任务极其解决模式。
10.1 channel
10.2 使用Channel等待任务结束
10.3 使用Channel进行树的遍历
10.4 用select进行调度
10.5 传统同步机制
(11)迷宫的广度优先搜索
综合运用学过的知识实现一个广度优先算法来解迷宫,为接实战项目做好技术和算法上的准备。广度优先算法不仅是面试和工作中常用的技术,而且实现上相比大部分其它算法更为复杂,是检验是否熟练掌握一门语言的经典例题。
11.1 迷宫_算法
11.2 迷宫代码实现
(12)http及其他标准库
Go语言中非常重要而且封装良好的http标准库,回顾并实现http客户端和服务器。Go语言中其他的标准库。
12.1 http标准库
12.2 其它标准库
12.3 gin 框架介绍
12.4 为gin增加middleware
(13)开始实战项目
实战项目。项目的具体内容,课题的选择,技术选型,总体架构,以及实现步骤。
13.1 爬虫项目介绍
13.2 爬虫的法律风险
13.3 新爬虫的选择
13.4 总体算法
13.5 模拟相亲网站上线啦!
(14)单任务版爬虫
单任务版爬虫确保我们能够正确爬取所需的信息。应用了之前练习的广度优先算法,抽象出Parser和Fetcher,学习正则表达式,成功实现并运行单任务版爬虫。
14.1 获得初始页面内容
14.2 正则表达式
14.3 提取城市和url
14.4 单任务版爬虫的架构
14.5 Engine 与Parser
14.6 测试CityListParser
14.7 城市解析器
14.8 用户信息解析器(上)
14.9 用户信息解析器(下)
14.10 单任务版爬虫性能
GO语言学习完要掌握函数式编程、面向接口、并发编程、Go语言工程化、爬虫项目:单任务爬虫、多任务并发爬虫、分布式爬虫等相关内容。
以上知识点总结转载于本公司博学谷,Go语言可以开发什么?学习哪些内容?-区块链资讯-博学谷