Go语言可以开发什么?学习哪些内容?Go语言专门为并发和大数据设计的语言,搭建分布式爬虫,理解分布式系统设计思想。主要学习Go语言面向接口,函数式编程,错误处理,测试,并行计算等元素,实现分布式爬虫的实战项目。
首先我们要将工具安装好,比如go语言安装与环境、国内镜像配置、 IntelliJ Idea 的安装和配置、vscode 的安装和配置
一、GO语言基础语法
量,常量,类型,选择,循环,函数,指针,学习一门新语言所需的必备语法知识。
1.1 变量定义
1.2 内建变量类型
1.3 常量与枚举
1.4 条件语句
1.5 循环
1.6 函数
1.7 指针
二、内建容器
学习数组,切片,Map和字符串。在Go语言中,我们一般不直接使用数组,而是使用切片来管理线性表结构,它的语法类似python的list,不过更强大。当Map和字符串的学习也是必不可少。掌握至此可以写一些简单的算法了。
2.1 数组
2.2 切片的概念
2.3 切片的操作
2.4 Map
2.5 Map例题
2.6 字符和字符串处理
三、面向“对象”
Go语言没有class,只有struct。我们来看看struct如何使用,Go语言给结构体定义类似方法或者成员函数的做法非常有特色。我们还将学习Go语言的包的概念,以及如何封装,如何扩展已有类型等。我们还将学习GOPATH和Go语言项目的目录结构,如何从网上下载依赖包等一系列项目相关的知识。
3.1 结构体和方法
3.2 包和封装
3.3 扩展已有类型
3.4 使用内嵌来扩展已有类型
四、Go语言的依赖管理
Go语言的依赖管理大有可用,只讲核心的,只学有用的,把时间投资在最有价值的学习上。
4.1 依赖管理
4.2 GOPATH 和 GOVENDOR
4.3 go mod的使用
4.4 目录的整理
五、面向接口
从duck typing的概念开始学起,还将探讨其他语言中对duck typing的支持,由此引出接口的概念。深入理解Go语言接口的内部实现以及使用接口实现组合的模式。
5.1 接口的概念
5.2 duck typing的概念
5.3 接口的定义和实现
5.4 接口的值类型
5.5 接口的组合
5.6 常用系统接口
六、函数式编程
在其他通用语言中,函数式编程是“高级”概念,但对于Go语言却非常基本。本章我们将讲解函数式编程的概念并且比较其他语言函数式编程的实现方法。重点理解闭包。
6.1 函数式编程
6.2 函数式编程例一
6.3 函数式编程例二
七、错误处理和资源管理
Go语言独特的defer/panic/recover,以及错误机制,在社区有着广泛的争论。我们来深入理解Go语言的错误处理机制,看看Go语言如何区分错误以及异常。最后实现一个Web应用微型项目,采用商业服务的错误处理思路,结合函数式编程,来演示Go语言错误..
7.1 defer调用
7.2 错误处理概念
7.3 服务器统一出错处理
7.4 panic和recover
八、测试与性能调优
Go语言的测试不同于其他如junit,Go语言采用“表格驱动测试”的理念。学习和体会这样的理念,并用Go语言的测试支持库来实践表格驱动测试,并做代码覆盖和性能检测,通过内建的性能调优工具来优化我们之前的算法。
8.1 测试
8.2 代码覆盖率和性能测试
8.3 使用pprof进行性能调优
8.4 测试http服务器(上)
8.5 测试http服务器(下)
8.6 生成文档和示例代码
8.7 测试总结
九、Goroutine
并发编程。Goroutine,协程的概念,以及背后的Go语言调度器。
9.1 goroutine
9.2 go语言的调度器
十、Channel
Channel是Goroutine之间通信的桥梁,它和函数一样是一等公民。学习完Channel的语法及运行方式后,掌握Go语言并发编程中最常见的任务极其解决模式。
10.1 channel
10.2 使用Channel等待任务结束
10.3 使用Channel进行树的遍历
10.4 用select进行调度
10.5 传统同步机制
十一、迷宫的广度优先搜索
综合运用学过的知识实现一个广度优先算法来解迷宫,为接实战项目做好技术和算法上的准备。广度优先算法不仅是面试和工作中常用的技术,而且实现上相比大部分其它算法更为复杂,是检验是否熟练掌握一门语言的经典例题。
11.1 迷宫_算法
11.2 迷宫代码实现
十二、http及其他标准库
Go语言中非常重要而且封装良好的http标准库,回顾并实现http客户端和服务器。Go语言中其他的标准库。
12.1 http标准库
12.2 其它标准库
12.3 gin 框架介绍
12.4 为gin增加middleware
十三、开始实战项目
实战项目。项目的具体内容,课题的选择,技术选型,总体架构,以及实现步骤。
13.1 爬虫项目介绍
13.2 爬虫的法律风险
13.3 新爬虫的选择
13.4 总体算法
13.5 模拟相亲网站上线啦!
十四、单任务版爬虫
单任务版爬虫确保我们能够正确爬取所需的信息。应用了之前练习的广度优先算法,抽象出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语言工程化、爬虫项目:单任务爬虫、多任务并发爬虫、分布式爬虫等相关内容。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
学习区块链技术必须掌握哪些核心知识?
区块链技术从最开始的简单的炒币行为到现在以技术为核心的发展过程中,越来越多的人了解到区块链技术的重要性,也已经有很多先驱者通过区块链的核心技术得到的高薪的工作。那,学习区块链技术我们必须掌握哪些核心的知识呢?
10215
2019-08-08 10:23:17
学区块链需要什么基础?区块链要学什么内容?
学区块链需要什么基础?学区块链需要搞清楚区块链的定义、来源、特征;数字货币的起源和技术挑战、特征;比特币的转账机制和运行原理、技术来源;区块链在各行各业的应用;区块链的基础结构,包括区块、拜占庭将军问题与POW,分布式账本、区块链的分类和分叉;区块链2.0时代,以太坊和智能合约等内容。
4730
2019-10-11 18:34:10
区块链炒币能赚钱吗?揭秘炒币本质
随着区块链技术的火爆,炒币也成为一种时兴的赚钱手段。看似神秘的炒币,说白了就是一种投资行为。当然既然是投资,那么风险还是很大的,一般的普通老百姓很难成功。但它丰厚的利润还是让不少人,前仆后继的加入炒币的大军。那么问题来了,区块链炒币能赚钱吗?下面就随着小编一起揭开炒币的本质,看看值不值得大家倾力去投资。
2716
2019-11-28 19:21:04
为什么学区块链很有优势?
为什么学区块链很有优势?IT行业领域发展趋势预测,近十年,IT行业发展迅猛,IT行业是许多业内业外人共同关注的话题,我们一起来看看IT行业有哪些发展趋势吧。
2180
2020-06-04 16:44:10
Golang工程师面试提升课程推荐
Golang作为目前互联网后端开发最具潜力的领域之一,引发越来越多的高薪企业关注。而Golang市场最为稀缺的就是专业性更强的中高级Golang开发工程师,企业对于Golang工程师的技能要求也不仅仅停留在语法及环境层面。因此,Golang开发工程师更需要对后端体系的视野及底层分析能力熟练掌握。本文将向大家推荐Golang工程师面试提升课程,一起来看看相关内容吧~
2172
2020-06-04 17:43:21
- Golang工程师面试攻略
推荐课程
热门文章
- 我做了10年程序员 最后Java架构师弯道超车
- JavaEE极速就业班课程怎么样?有哪些优势?
- 狂野大数据课程怎么样?项目实战多吗?
- 狂野架构师课程培训哪些内容?能学会吗?
- Spark SQL 结构化数据处理流程及原理是什么?
- Java互联网架构师就业前景怎么样?待遇好不好?
- 狂野架构师课程怎么样?Java架构师学什么内容?
- 狂野大数据厉害吗?可以提升哪些核心技能?
- 缓存淘汰策略有几种?要怎么用?
- 软件测试极速就业班课程怎么样?零基础能学吗 查看更多
扫描二维码,了解更多信息
