顶级资深工程师深度讲解Go语言

【下载地址:https://pan.baidu.com/s/1nx82k7mOn8ErlPSsCdLfTw

第1章 课程介绍
欢迎大家来到深度讲解Go语言的课堂。本课程将从基本语法讲起,逐渐深入,帮助同学深度理解Go语言面向接口,函数式编程,错误处理,测试,并行计算等元素,并带领大家实现一个分布式爬虫的实战项目。

第2章 基础语法
量,常量,类型,选择,循环,函数,指针,本章节带领大家学习一门新语言所需的必备语法知识。让大家对Go语言有一个初步的认识!

第3章 内建容器
本章节我们来学习数组,切片,Map和字符串。在Go语言中,我们一般不直接使用数组,而是使用切片来管理线性表结构,它的语法类似python的list,不过更强大哦。当然,Map和字符串的学习也是必不可少。掌握至此,我们就可以写一些简单的算法了,刷刷leetcode不在话下,我们就来试一试。

第4章 面向“对象”
Go语言没有class,只有struct。我们来看看struct如何使用,Go语言给结构体定义类似方法或者成员函数的做法非常有特色。我们还将学习Go语言的包的概念,以及如何封装,如何扩展已有类型等。我们还将学习GOPATH和Go语言项目的目录结构,如何从网上下载依赖包等一系列项目相关的知识。我们将以“树”的结构和遍历作为贯穿本章。

第5章 面向接口
这一章我们从duck typing的概念开始学起,还将探讨其他语言中对duck typing的支持,由此引出接口的概念。我们将深入理解Go语言接口的内部实现以及使用接口实现组合的模式。

第6章 函数式编程
在其他通用语言中,函数式编程是“高级”概念,但对于Go语言却非常基本。本章我们将讲解函数式编程的概念并且比较其他语言函数式编程的实现方法。我们将重点理解闭包。这章中我们将采用多样的例题来帮助大家更好的理解闭包,函数作为一等公民等及其常见概念和应用方法。

第7章 错误处理和资源管理
这将是本课程最“无聊”的一章,但却是区分出优秀软件工程师的关键能力。Go语言独特的defer/panic/recover,以及错误机制,在社区有着广泛的争论。我们来深入理解Go语言的错误处理机制,看看Go语言如何区分错误以及异常。最后,我们实现一个Web应用微型项目,采用商业服务的错误处理思路,结合函数式编程,来演示Go语言错误。

第8章 测试与性能调优
Go语言的测试不同于其他如junit,Go语言采用“表格驱动测试”的理念。我们将学习和体会这样的理念,并用Go语言的测试支持库来实践表格驱动测试,并做代码覆盖和性能检测,通过內建的性能调优工具来优化我们之前的算法。最后演示了对http服务器的多种粒度的测试。...

第9章 Goroutine
这一章开始我们进入并发编程。我们讲解Goroutine,协程的概念,以及背后的Go语言调度器。

第10章 Channel
Channel是Goroutine之间通信的桥梁,它和函数一样是一等公民。在介绍完Channel的语法及运行方式后,我们将采用数个例题来演示Go语言并发编程中最常见的任务极其解决模式。

第11章 http及其他标准库
这里我们简要介绍一下Go语言中非常重要而且封装良好的http标准库,回顾并实现http客户端和服务器。我们还介绍了Go语言中其他的标准库。

第12章 迷宫的广度优先搜索
这章我们将综合运用学过的知识实现一个广度优先算法来解迷宫,为接下来的实战项目做好技术和算法上的准备。广度优先算法不仅是面试和工作中常用的技术,而且实现上相比大部分其它算法更为复杂,是检验是否熟练掌握一门语言的经典例题。让我们来试一试吧。...

第13章 开始实战项目
至此为止,恭喜同学完成了这门课Go语言部分的学习。接下来我们来进入实战项目。本章将介绍项目的具体内容,课题的选择,技术选型,总体架构,以及实现步骤。

第14章 单任务版爬虫
在考虑性能之前我们首先应该考虑正确性。单任务版爬虫确保我们能够正确爬取我们所需的信息。我们应用了之前练习的广度优先算法,抽象出Parser和Fetcher,学习正则表达式,成功实现并运行单任务版爬虫。

第15章 并发版爬虫
为了提升爬虫性能,我们抽象出Worker的概念,并添加调度器,实现并发版爬虫。我们应用接口的概念,完成了由简至复杂的多个调度器的实现。同学可以在实战项目中更真实的体会并学习Go语言并发编程的多种模式。

第16章 数据存储和展示
是时候检验我们项目的成果了。我们将采用Docker+ElasticSearch来存储我们爬取的信息。在简单了解Docker和ElasticSearch后,我们将使用ElasticSearch的Go语言客户端将爬取数据写入。之后我们使用Go语言的模板引擎迅速实现前端网页展示。至此,我们已经可以尝试自己喜欢的搜索条件去查看数据啦。

第17章 分布式爬虫
本章在简要介绍分布式概念后,将我们的并发爬虫改写成分布式。我们在很少改动的情况下,加入jsonrpc客户/服务端,实现并部署分布式爬虫。最后探讨实战项目的更多改进方案。

第18章 课程总结
感谢同学们学到这里,恭喜同学们给自己的技术栈加上了非常重要的Go语言技能。希望同学们带着这门课上学到的知识,更好的参与到项目中去,共同推动Go语言的发展。

原文地址:http://blog.51cto.com/aino007/2147085

时间: 2024-11-08 23:43:49

顶级资深工程师深度讲解Go语言的相关文章

Google资深工程师深度讲解Go语言☆

准备工作 ######课程导读: Go语言的历史起源??? 为什么会有Go出现?? Go的发展趋势?? 怎么样学习Go?? ######安装与环境: 视频地址:安装与环境 ######Go的参考资料汇总:1.GO语言零基础入门资料整理2.Restful接口开发(PHP)3.Go入门指南4.Learngobyexample 巩固语法基础的Demo,初学者“抄”(学习)代码的地方5.Go 初学者成长之路6.Go 标准库中文文档7.<编程之法:面试和算法心得>8.目录: 第1章 课程介绍    欢迎

Google资深工程师深度讲解Go语言全套

咱们每先多积累一分,时间越长你与其他人的差距就会越发明显,源于复利效应 课程目录第1章 课程介绍第2章 基础语法第3章 内建容器第4章 面向“对象”第5章 面向接口第6章 函数式编程第7章 错误处理和资源管理第8章 测试与性能调优第9章 Goroutine第10章 Channel第11章 http及其他标准库第12章 迷宫的广度优先搜索第13章 开始实战项目第14章 单任务版爬虫第15章 并发版爬虫第16章 数据存储和展示第17章 分布式爬虫第18章 课程总结 ◆因问题,百度网盘的链接分享被取消

Google资深工程师深度讲解Go语言

第1章 课程介绍   1-1 课程导读   1-2 安装与环境第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

百度资深工程师 全方位讲解测试面试

原文配套视频资源获取链接:点击获取 原文配套源码资源获取链接:点击获取 第1章 课程介绍 本章对本门课做详细介绍,说明本课围绕测试人员面试展开,从语言基础.高级编程.web自动化测试.接口自动化测试.性能测试到mysql.Linux全部包含在内,让你的面试技术无死角.最后对测试项目和测试人员的价值及职业规划等角度进行展开讲解.... 1-1 整体介绍试看 第2章 一线互联网公司的面试流程和技巧 本章对岗位JD分析,介绍测试工程师的技能树,三面不同的考察重点以及自我介绍,让大家对测试工程师的定位更

阿里资深工程师分享支付宝热补丁技术—— AndFix原理

本文由嵌入式企鹅圈原创团队成员.阿里资深工程师Hao分享. 上次我们介绍了用dexposed方案实施热补丁的原理,它本质上就是hook要修改的函数,这样一来在正式版本发布时就不能直接拿热补丁的代码集成进去了,因为热补丁是按hook的思路,并且按照实现XC_MethodReplacement类的方式写的,正式的补丁还需要重新包装一边.更重要的是dexposed对art的支持并不好,大大限制了它的使用范围. 今天我们介绍的是AndFix方案:https://github.com/alibaba/An

Android资深工程师进阶之路

看到一篇文章中提到"最近几年国内的初级Android程序员已经很多了,但是中高级的Android技术人才仍然稀缺",这的确不假,从我在百度所进行的一些面试来看,找一个适合的高级Android工程师的确不容易,一般需要进行大量的面试才能挑选出一个比较满意的.为什么中高级Android程序员不多呢?这是一个问题,我不好回答,但是我想写一篇文章来描述下Android的学习路线,期望可以帮助更多的Android程序员提升自己.由于我也是从一个菜鸟过来的,所以我会结合我的个人经历以及我对Andr

BAT资深工程师由浅入深分析Tp5&amp;Tp6底层源码 - 分享

BAT资深工程师由浅入深分析Tp5&Tp6底层源码 第1章 课程简介(一定要看,知道整体介绍,方能更好的学习后续课程) 本章主要让大家知道本套课程的主线, 导学内容,如何学习源码等,看完本章要让小伙伴觉得这个是必须要掌握的,并且对加薪有很大的帮助. 第2章 [TP5灵魂]自动加载Loader 深度分析(重点章节,请认真听,建议多次回听) 本章主要讲解为什么要学习自动加载,带领大家看看TP框架的执行流程是什么样子.学习自动加载的原理以及TP5内部自动加载的代码分析.TP 结合composer相关的

移动智能设备功耗优化系列--前言(NVIDIA资深工程师分享)

本文是嵌入式企鹅圈原创团队成员.NVIDIA资深开发工程师Terry发表的第一篇文章,其将对"移动智能设备功耗优化"这个专题展开一个系列的总结分享.Terry毫无保留地总结分享其在主导NVIDIA多个项目开发中的移动设备功耗优化经验,极具价值! 随着智能移动设备的功能越来越多,CPU/Memory频率也越来越高,随之带来的功耗问题也越来越严重,如何延长手机的待机以及使用时间一直以来都是各个手机厂商不得不面对的问题.本专题将逐一为各位读者讲解一下当前主流的功耗优化策略以及一些实用的优化调

HCNP华为网络资深工程师 中级 腾科

HCNP-华为认证网络资深工程师 对应证书 华为认证网络资深工程师-HCNP(Huawei Certified Network Professional) 认证前提 无 适合人群 企业ICT技术管理人员和技术骨干等高素质网络技术人才: 希望学习和掌握操作华为网络设备组建安全.可靠.高效的大型路由.交换网络的人士: IP网络调测工程师.IP网络运维工程师.IP网络设计工程师以及希望系统深入掌握路由交换接入以及IP承载网技术的人士. 就业方向 项目经理.产品技术经理.IDC机房代维工程师.网络工程师