######Go 的参考资料汇总:
1.GO 语言零基础入门资料整理
2.Restful 接口开发 (PHP)
3.Go 入门指南
4.Learngobyexample 巩固语法基础的 Demo, 初学者 "抄"(学习) 代码的地方
5.Go 初学者成长之路
6.Go 标准库中文文档
7.《编程之法: 面试和算法心得》
8.
目录:
第 1 章 课程介绍
欢迎大家来到深度讲解 Go 语言的课堂. 本课程将从基本语法讲起, 逐渐深入, 帮助同学深度理解 Go 语言面向接口, 函数式编程, 错误 处理, 测试, 并行计算等元素, 并带领大家实现一个分布式爬虫的实战项目.
1. 跟着 google 工程师学 Go 语言 (一):Golang 准备工作 & 目录
第 2 章 基础语法
变量, 常量, 类型, 选择, 循环, 函数, 指针, 本章节带领大家学习一门新语言所需的必备语法知识. 让大家对 Go 语言有一个初步的认识!
2. 跟着 google 工程师学 Go 语言 (二):Golang 变量定义
3. 跟着 google 工程师学 Go 语言 (三):Golang 内建变量类型
4. 跟着 google 工程师学 Go 语言 (四):Golang 常量与枚举
5. 跟着 google 工程师学 Go 语言 (五):Golang 条件语句
6. 跟着 google 工程师学 Go 语言 (六):Golang 循环
7. 跟着 google 工程师学 Go 语言 (七):Golang 函数
8. 跟着 google 工程师学 Go 语言 (八):Golang 指针
第 3 章 内建容器
本章节我们来学习数组, 切片, Map 和字符串. 在 Go 语言中, 我们一般不直接使用数组, 而是使用切片来管理线性表结构, 它的语法类似 python 的 list, 不过更强大哦. 当然, Map 和字符串的学习也是必不可少. 掌握至此, 我们就可以写一些简单的算法了, 刷刷 leetcode 不在话下, 我们就来试一试....
9. 跟着 google 工程师学 Go 语言 (九):Golang 数组
10. 跟着 google 工程师学 Go 语言 (十):Golang 切片 slice
11. 跟着 google 工程师学 Go 语言 (十一):Golang Map
第 4 章 面向 "对象"
Go 语言没有 class, 只有 struct. 我们来看看 struct 如何使用, Go 语言给结构体定义类似方法或者成员函数的做法非常有特色. 我们还将学习 Go 语言的包的概念, 以及如何封装, 如何扩展已有类型等. 我们还将学习 GOPATH 和 Go 语言项目的目录结构, 如何从网上下载依赖包等一系列项目相关的知识. 我们将以 "树" 的结构和遍历作为贯穿本章...
12. 跟着 google 工程师学 Go 语言 (十二):Golang 结构体和方法
13. 跟着 google 工程师学 Go 语言 (十三):Golang 包和封装
14. 跟着 google 工程师学 Go 语言 (十四):Golang GOPATH 及目录结构
第 5 章 面向接口
这一章我们从 duck typing 的概念开始学起, 还将探讨其他语言中对 duck typing 的支持, 由此引出接口的概念. 我们将深入理解 Go 语言接口的内部实现以及使用接口实现组合的模式.
15. 跟着 google 工程师学 Go 语言 (十五):Golang 接口
第 6 章 函数式编程
在其他通用语言中, 函数式编程是 "高级" 概念, 但对于 Go 语言却非常基本. 本章我们将讲解函数式编程的概念并且比较其他语言函数式编程的实现方法. 我们将重点理解闭包. 这章中我们将采用多样的例题来帮助大家更好的理解闭包, 函数作为一等公民等及其常见概念和应用方法....
16.[跟着 google 工程师学 Go 语言 (十六):Golang 函数式编程
第 7 章 错误处理和资源管理
这将是本课程最 "无聊" 的一章, 但却是区分出优秀软件工程师的关键能力. Go 语言独特的 defer/panic/recover, 以及错误机制, 在社区有着广泛的争论. 我们来深入理解 Go 语言的错误处理机制, 看看 Go 语言如何区分错误以及异常. 最后, 我们实现一个 web 应用微型项目, 采用商业服务的错误处理思路, 结合函数式编程, 来演示 Go 语言错误...
17. 跟着 google 工程师学 Go 语言 (十七):Golang 错误处理和资源管理
第 8 章 测试与性能调优
Go 语言的测试不同于其他如 junit,Go 语言采用 "表格驱动测试" 的理念. 我们将学习和体会这样的理念, 并用 Go 语言的测试支持库来实践表格驱动测试, 并做代码覆盖和性能检测, 通过內建的性能调优工具来优化我们之前的算法. 最后演示了对 http 服务器的多种粒度的测试....
18. 跟着 google 工程师学 Go 语言 (十八):Golang 测试与性能调优
第 9 章 Goroutine
这一章开始我们进入并发编程. 我们讲解 Goroutine, 协程的概念, 以及背后的 Go 语言调度器.
19. 跟着 google 工程师学 Go 语言 (十九):Golang 并发编程 goroutine
第 10 章 Channel
Channel 是 Goroutine 之间通信的桥梁, 它和函数一样是一等公民. 在介绍完 Channel 的语法及运行方式后, 我们将采用数个例题来演示 Go 语言并发编程中最常见的任务极其解决模式.
20. 跟着 google 工程师学 Go 语言 (二十):Golang 通道 Channel
第 11 章 http 及其他标准库
这里我们简要介绍一下 Go 语言中非常重要而且封装良好的 http 标准库, 回顾并实现 http 客户端和服务器. 我们还介绍了 Go 语言中其他的标准库.
21. 跟着 google 工程师学 Go 语言 (二十一):Golang http 及其他标准库
第 12 章 迷宫的广度优先搜索
这章我们将综合运用学过的知识实现一个广度优先算法来解迷宫, 为接下来的实战项目做好技术和算法上的准备. 广度优先算法不仅是面试和工作中常用的技术, 而且实现上相比大部分其它算法更为复杂, 是检验是否熟练掌握一门语言的经典例题. 让我们来试一试吧....
22. 跟着 google 工程师学 Go 语言 (二十二):Golang 迷宫的广度优先搜索
第 13 章 开始实战项目
至此为止, 恭喜同学完成了这门课 Go 语言部分的学习. 接下来我们来进入实战项目. 本章将介绍项目的具体内容, 课题的选择, 技术选型, 总体架构, 以及实现步骤.
23. 跟着 google 工程师学 Go 语言 (二十三): 爬虫项目介绍及总体算法
第 14 章 单任务版爬虫
在考虑性能之前我们首先应该考虑正确性. 单任务版爬虫确保我们能够正确爬取我们所需的信息. 我们应用了之前练习的广度优先算法, 抽象出 Parser 和 Fetcher, 学习正则表达式, 成功实现并运行单任务版爬虫.
24. 跟着 google 工程师学 Go 语言 (二十四): 单任务版爬虫
第 15 章 并发版爬虫
为了提升爬虫性能, 我们抽象出 Worker 的概念, 并添加调度器, 实现并发版爬虫. 我们应用接口的概念, 完成了由简至复杂的多个调度器的实现. 同学可以在实战项目中更真实的体会并学习 Go 语言并发编程的多种模式.
25. 跟着 google 工程师学 Go 语言 (二十五):Golang 并发版爬虫
第 16 章 数据存储和展示
是时候检验我们项目的成果了. 我们将采用 Docker+Elasticsearch 来存储我们爬取的信息. 在简单了解 Docker 和 Elasticsearch 后, 我们将使用 Elasticsearch 的 Go 语言客户端将爬取数据写入. 之后我们使用 Go 语言的模板引擎迅速实现前端网页展示. 至此, 我们已经可以尝试自己喜欢的搜索条件去查看数据啦....
26. 跟着 google 工程师学 Go 语言 (二十六):Golang 数据存储和展示
第 17 章 分布式爬虫
本章在简要介绍分布式概念后, 将我们的并发爬虫改写成分布式. 我们在很少改动的情况下, 加入 jsonrpc 客户 / 服务端, 实现并部署分布式爬虫. 最后探讨实战项目的更多改进方案.
27. 跟着 google 工程师学 Go 语言 (二十七):Golang 分布式爬虫
第 18 章 课程总结
感谢同学们学到这里, 恭喜同学们给自己的技术栈加上了非常重要的 Go 语言技能. 希望同学们带着这门课上学到的知识, 更好的参与到项目中去, 共同推动 Go 语言的发展.
----------------
来源: http://www.bubuko.com/infodetail-3234557.html