开发者学堂课程【Go 语言核心编程 - 基础语法、数组、切片、Map: Go 语言可以做什么】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/625/detail/9483
Go 语言可以做什么
目录:
一、 本课要求准备
二、 Golang 开山篇
三、 Golang 的学习方向
四、 Golang 的应用领域
五、 回顾
一、本课要求准备
课前准备一个文件夹,为 Go 语言核心编程课程使用。该文件夹下属文件有:
笔记 讲课的时候是边讲边做笔记的形式,笔记放在该文件夹里
代码 讲课过程会有大量的代码,代码整理放到这个文件夹里,可以在这里面找到老师当天讲解的代码
课件 PPT、画的图解等都放在这个文件夹
软件 Go 语言课程中会用到一些软件,如安装工具、开发环境等
视频 讲课视频分门别类、编号放这里,方便复习
资料 参考资料如:API 文档、参考文献、相关书籍等
作业 编程是做中学的学科,只听不练学不到真功夫。每天会根据讲课的内容布置作业,同时,也会挑出明显有困难的作业做评讲,或者比较有特色的作业做点评
这是课程相关的 7 个文件夹,为课程使用。讲课时会把相应资料放到相应文件夹里,这样方便大家随时查看复习并深入学习理解。
二、Golang 开山篇
Golang 开山篇就是开篇明义。主要讲解 Go 语言的应用领域和 Go 学习方法。怎么学习这门语言?这门语言与其他语言有什么不一样的地方?在学习的时候需要注意哪些问题?开篇都会讲解清楚,避免花时间学习后效率不高等情况。
每天讲解的内容会形成一个文档。内容、图解、笔记、作业、点评等都放在这个文档。课后就不需要再去翻看ppt等文件,利用好这个文档就能掌握学习内容。
文档里会有目录链接,点击对应目录就能定位对应内容。要学会合理利用笔记学习。
三、Golang 的学习方向
Go 语言,英文名 Golanguage ,一般可以简单的写成 Golang
学习 Golang 语言可以做什么呢?
Golang 核心编程将来会用在以下方面:
1. 区块链研发工程师
区块链主流开发语言就是 Golang。学习 Golang 以后可以做区块链研发工程师。区块链就是分布式账本技术,是一种互联网技术,核心思想是去中心化,让人人都能参与数据库记录。比如虚拟货币金融等应用得比较多。
现在很多的金融机构都在陆陆续续地做区块链的培训。这是一个方向,谁先走在前面,前景则会很光明。做得越早,机会就越多。比如:谁先做网站、游戏等机会都会更多。
2. Go 服务器端/游戏软件工程师
目前,服务器端主要用的是 C 语言和 C++ 语言,只要是 C 语言和 C++ 能够开发使用的,Go 语言都能开发,而且会更好。
Go 语言是在 C 语言和 C++ 的基础上开发创作出来的。Go 语言有三位设计者,其中一位设计者,叫汤姆森,也是 C 语言的设计者。Go 语言是后面设计的,在很多方面会运用到 C 语言的设计理念并进行优化,C 语言和 C++ 能做的事情 Go 语言都可以做。如:处理日志,数据打包,文件系统。也比如,美团的后台流量支撑系统就是 GO 语言系统。
Go 语言的优势有:数据处理能力较强、大并发数据处理能力较强。现在,网站越来越多,平台越来越大,用户量动辄是几千万的量,如,新浪、搜狐、腾讯等,这些网站很多时候一个并发就是几百万,怎么去处理这样打大并发呢?Go 语言就具有处理这样的大并发的能力。在做后台服务器端时使用 Go 语言比较多。
在游戏开发的时候会用到数据通道。游戏后台,数据通道应用到 Go 语言比较多。
3. Golang 分布式/云计算软件工程师
京东的消息推送服务、分布式文件系统、盛大云 CDN 都使用的是 Go 语言。
学会 Go 语言以后能做这几类工作。
Go 语言是一个核心编程,以上三类工作中使用 Go 语言开发比较多。它的应用场景是比较多的。
Go 语言的工程师在市场需求量比较大,待遇相对其他工程师偏高。目前 Go 语言的人才比较少,早点掌握这一门语言,机会会更多。
四、Golang 的应用领域
Golang 的应用领域有:
1. 区块链的应用开发
区块链应用的程序语言是 Golang。需要先学习 Go 语言,才学区块链相关技术。
区块链技术,简称 BT(Blockchain technology),也被称之为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录。数字货币及金融方面运用比较多。
2. 后台的服务应用
后端服务器应用 Golang 数据处理能力很强
(1) 美团后台流量支撑程序
支撑主站后台流量(排序,推荐,搜索等),提供负载均衡,cache ,容错,按条件分流,统计运行指标( qps, latency )等功能
美团客户量相当大,在每天中午点外卖的时间用户量达高峰,面对大量的排序,推荐,搜索等功能都是非常消耗运算能力的,还需要提供负载均衡。排序,推荐,搜索需要很强的计算能力,需要较快的响应速度,超强流量运算支撑。负载均衡, cache ,容错是需要后台有强大的大并发处理能力。所以,美团使用的就是 Golang语言。
(2) 仙侠道
产品网址:仙侠道官网=心动游戏
应用范围:游戏服务端(通讯、逻辑、数据存储)
这款游戏的通讯、逻辑、数据存储等后台用的也是Go语言。
3. 云计算/云服务后台应用
盛大云 CDN (内容分发网络)
网址:盛大云计算
应用范围: CDN 的调度系统、分发系统、监控系统、短域名服务,CDN 内部开放平台、运营报表系统以及其他一些小工具等。
内容分发网络:访问一个网站,会有很多图片视频,耗费流量很大,如何让用户就近的、快速的访问到内容,这时候就需要 CDN 技术。Go 语言能建立 CDN 网络服务,云计算能力就凸显出来。
4. 京东消息推送云服务/京东分布式文件系统
网址:京东云
应用范围:后台所有服务全部用 go 实现。golang 的计算能力强。
京东是电子商务平台,每天的购买量、用户量也非常庞大。在进行消息推送、分布式文件系统时需要用到云计算技术。云计算就可以选择 Go 语言来做开发。后台所有服务全部用 go 实现,说明 golang 的计算能力很强。
五、回顾
1、找什么工作
学习 Go 语言将来找工作可以找区块链方面的研发工程师、服务器端方面的工程师、Golang 分布式/云计算方面的工程师。
2、做什么事情
区块链应开发、或者到美团公司工作、游戏公司工作、云计算等。