
网盘:百度 | 学分:5,VIP免费 | 发布:2023-02-06 | 查看:0 | 更新:2023-02-06 | GO
【GO】Google资深工程师深度讲解Go语言 由浅入深掌握Go语言
网盘:百度 | 学分:5,VIP免费 | 发布:2023-02-06 | 查看:0 | 更新:2023-02-06 | GO
【GO】Google资深工程师深度讲解Go语言 由浅入深掌握Go语言
〖课程介绍〗:
Go作为专门为并发和大数据设计的语言,在编程界越来越受欢迎!不论是C/C++,PHP,Java,重构首选Go。本课程特邀谷歌资深工程师,从Go基本语法到函数式编程、并发编程,最后构建分布式爬虫系统,步步深入,带你快速掌握go语言!
〖课程目录〗:
第1章 课程介绍 试看5 节 | 46分钟
欢迎大家来到深度讲解go语言的课堂。本课程将从基本语法讲起,逐渐深入,帮助同学深度理解go语言面向接口,函数式编程,错误处理,测试,并行计算等元素,并带领大家实现一个分布式爬虫的实战项目。
收起列表
视频:1-2 安装与环境 (03:29)
视频:1-3 国内镜像配置 (08:52)
视频:1-4 IntelliJ Idea 的安装和配置 (09:20)
视频:1-5 vscode 的安装和配置 (04:37)
第2章 基础语法7 节 | 85分钟
量,常量,类型,选择,循环,函数,指针,本章节带领大家学习一门新语言所需的必备语法知识。让大家对go语言有一个初步的认识!
收起列表
视频:2-1 变量定义 (11:04)
视频:2-2 内建变量类型 (17:21)
视频:2-3 常量与枚举 (07:00)
视频:2-4 条件语句 (09:39)
视频:2-5 循环 (09:59)
视频:2-6 函数 (18:01)
视频:2-7 指针 (11:32)
第3章 内建容器6 节 | 96分钟
本章节我们来学习数组,切片,Map和字符串。在go语言中,我们一般不直接使用数组,而是使用切片来管理线性表结构,它的语法类似python的list,不过更强大哦。当然,Map和字符串的学习也是必不可少。掌握至此,我们就可以写一些简单的算法了,刷刷leetcode不在话下,我们就来试一试。…
收起列表
视频:3-1 数组 (15:19)
视频:3-2 切片的概念 (20:41)
视频:3-3 切片的操作 (16:15)
视频:3-4 Map (11:18)
视频:3-5 Map例题 (13:20)
视频:3-6 字符和字符串处理 (18:12)
第4章 面向“对象”4 节 | 60分钟
go语言没有class,只有struct。我们来看看struct如何使用,go语言给结构体定义类似方法或者成员函数的做法非常有特色。我们还将学习go语言的包的概念,以及如何封装,如何扩展已有类型等。我们还将学习GoPATH和go语言项目的目录结构,如何从网上下载依赖包等一系列项目相关的知识。我们将以“树”的结构和遍历作为贯穿本章…
收起列表
第5章 Go语言的依赖管理4 节 | 55分钟
收起列表
第6章 面向接口 试看6 节 | 84分钟
这一章我们从duck typing的概念开始学起,还将探讨其他语言中对duck typing的支持,由此引出接口的概念。我们将深入理解go语言接口的内部实现以及使用接口实现组合的模式。
收起列表
视频:6-1 接口的概念 (23:22)
视频:6-2 duck typing的概念 (14:19)试看
第7章 函数式编程3 节 | 32分钟
在其他通用语言中,函数式编程是“高级”概念,但对于go语言却非常基本。本章我们将讲解函数式编程的概念并且比较其他语言函数式编程的实现方法。我们将重点理解闭包。这章中我们将采用多样的例题来帮助大家更好的理解闭包,函数作为一等公民等及其常见概念和应用方法。…
收起列表
第8章 错误处理和资源管理5 节 | 62分钟
这将是本课程最“无聊”的一章,但却是区分出优秀软件工程师的关键能力。go语言独特的defer/panic/recover,以及错误机制,在社区有着广泛的争论。我们来深入理解go语言的错误处理机制,看看go语言如何区分错误以及异常。最后,我们实现一个Web应用微型项目,采用商业服务的错误处理思路,结合函数式编程,来演示go语言错误…
收起列表
视频:8-1 defer调用 (12:15)
视频:8-2 错误处理概念 (06:37)
视频:8-4 panic和recover (07:39)
第9章 测试与性能调优7 节 | 85分钟
go语言的测试不同于其他如junit,go语言采用“表格驱动测试”的理念。我们将学习和体会这样的理念,并用go语言的测试支持库来实践表格驱动测试,并做代码覆盖和性能检测,通过內建的性能调优工具来优化我们之前的算法。最后演示了对http服务器的多种粒度的测试。…
收起列表
视频:9-1 测试 (19:41)
第10章 Goroutine2 节 | 28分钟
收起列表
第11章 Channel8 节 | 115分钟
Channel是Goroutine之间通信的桥梁,它和函数一样是一等公民。在介绍完Channel的语法及运行方式后,我们将采用数个例题来演示go语言并发编程中最常见的任务极其解决模式。
收起列表
视频:11-1 channel (22:42)
第12章 迷宫的广度优先搜索2 节 | 43分钟
这章我们将综合运用学过的知识实现一个广度优先算法来解迷宫,为接下来的实战项目做好技术和算法上的准备。广度优先算法不仅是面试和工作中常用的技术,而且实现上相比大部分其它算法更为复杂,是检验是否熟练掌握一门语言的经典例题。让我们来试一试吧。…
收起列表
第13章 http及其他标准库6 节 | 83分钟
这里我们简要介绍一下go语言中非常重要而且封装良好的http标准库,回顾并实现http客户端和服务器。我们还介绍了go语言中其他的标准库。
收起列表
视频:13-1 http标准库 (20:50)
视频:13-2 其它标准库 (06:38)
视频:13-6 为gin增加middleware (14:26)
第14章 开始实战项目5 节 | 59分钟
至此为止,恭喜同学完成了这门课go语言部分的学习。接下来我们来进入实战项目。本章将介绍项目的具体内容,课题的选择,技术选型,总体架构,以及实现步骤。
收起列表
第15章 单任务版爬虫10 节 | 134分钟
在考虑性能之前我们首先应该考虑正确性。单任务版爬虫确保我们能够正确爬取我们所需的信息。我们应用了之前练习的广度优先算法,抽象出Parser和Fetcher,学习正则表达式,成功实现并运行单任务版爬虫。
收起列表
视频:15-2 正则表达式 (23:11)
视频:15-3 提取城市和url (12:32)
视频:15-5 Engine 与 Parser (21:17)
视频:15-6 测试CityListParser (12:24)
第16章 并发版爬虫7 节 | 92分钟
为了提升爬虫性能,我们抽象出Worker的概念,并添加调度器,实现并发版爬虫。我们应用接口的概念,完成了由简至复杂的多个调度器的实现。同学可以在实战项目中更真实的体会并学习go语言并发编程的多种模式。
收起列表
视频:16-5 重构和总结 (14:29)
第17章 数据存储和展示11 节 | 182分钟
是时候检验我们项目的成果了。我们将采用Docker+ElasticSearch来存储我们爬取的信息。在简单了解Docker和ElasticSearch后,我们将使用ElasticSearch的go语言客户端将爬取数据写入。之后我们使用go语言的模板引擎迅速实现前端网页展示。至此,我们已经可以尝试自己喜欢的搜索条件去查看数据啦。…
收起列表
视频:17-1 ItemSaver的架构 (11:48)
视频:17-4 ElasticSearch入门 (16:35)
视频:17-7 添加URL与ID (23:07)
视频:17-8 重构与运行 (16:55)
视频:17-11 完善前端展示 (16:23)
第18章 分布式爬虫11 节 | 184分钟
本章在简要介绍分布式概念后,将我们的并发爬虫改写成分布式。我们在很少改动的情况下,加入jsonRPC客户/服务端,实现并部署分布式爬虫。最后探讨实战项目的更多改进方案。
收起列表
第19章 课程总结2 节 | 44分钟
感谢同学们学到这里,恭喜同学们给自己的技术栈加上了非常重要的go语言技能。希望同学们带着这门课上学到的知识,更好的参与到项目中去,共同推动go语言的发展。
收起列表
*声明:课程资源购自网络,版权归原作者所有,仅供参考学习使用,严禁外传及商用,若侵犯到您的权益请联系客服删除。