阿里云
为了无法计算的价值
打开APP
阿里云APP内打开
学习中心> Go语言核心编程 - 基础语法、数组、切片、Map> 正文

Go语言核心编程 - 基础语法、数组、切片、Map

182课时 |
2669人已学 |
免费
课程介绍

Go语言核心编程全套课程:

  1. 基础语法、数组、切片、Map(本课程)
  2. 面向对象、文件、单元测试、反射、TCP编程
  3. 数据结构和算法

Go语言简介

Go语言,也称为Golang,是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。

Go语言官网:https://golang.google.cn/

Go语言特性:

  • 跨平台的编译型语言(源代码编译生成机器语言,然后由机器直接执行机器码即可执行)
  • 语法接近C语言
  • 管道(channel),切片(slice),并发(routine)特性
  • 有垃圾回收的机制
  • 支持面向对象和面向过程的编程模式

Go 语言优势:

  • 编程模式比较简单,没有复杂的设计模式
  • 全部源码编译到一个文件,编译速度很快
  • 最新版本有动态库形式,对跨语言调用的支撑更到位
  • 开源框架比较成熟
  • 独有的语言特性和设计模式routine、channel、sync包支撑了海量并行的支持
  • 擅长于微服务开发、服务开发、Web API开发、分布式服务开发等
  • 对高并发、高性能的系统和服务支撑,Go语言对比其他语言有更快的开发速度,更高的开发效率

 

Go语言可以做什么

 

目录:

一、 本课要求准备

二、 Golang开山

三、 Golang的学习方向

四、 Golang的应用领域

五、 回顾

 

一、本课要求准备

课前准备一个文件夹,为Go语言核心编程课程使用。该文件夹下属文件有:

笔记   讲课的时候是边讲边做笔记的形式,笔记放在该文件夹里

代码   讲课过程会有大量的代码,代码整理放到这个文件夹里,可以在这里面找到老师当天讲解的代码

课件   PPT、画的图解等都放在这个文件夹

软件   Go语言课程中会用到一些软件,如安装工具、开发环境等

视频   讲课视频分门别类、编号放这里,方便复习

资料   参考资料如:API文档、参考文献、相关书籍等

作业   编程是做中学的学科,只听不练学不到真功夫。每天会根据讲课的内容布置作业,同时,也会挑出明显有困难的作业做评讲,或者比较有特色的作业做点评

 

这是课程相关的7个文件夹,为课程使用。讲课时会把相应资料放到相应文件夹里,这样方便大家随时查看复习并深入学习理解。

 

二、Golang开山

Golang开山篇就是开篇明义。主要讲解Go语言的应用领域和Go学习方法。怎么学习这门语言?这门语言与其他语言有什么不一样的地方?在学习的时候需要注意哪些问题?开篇都会讲解清楚,避免花时间学习后效率不高等情况。

每天讲解的内容会形成一个文档。内容、图解、笔记、作业、点评等都放在这个文档。课后就不需要再去翻看ppt等文件,利用好这个文档就能掌握学习内容。

文档里会有目录链接,点击对应目录就能定位对应内容。要学会合理利用笔记学习。

 

三、Golang的学习方向

Go语言,英文名Golanguage ,一般可以简单的写成Golang

学习Golang语言可以做什么呢?

Golang核心编程将来会用在以下方面:

 

  1. 区块链研发工程师

区块链主流开发语言就是Golang。学习Golang以后可以做区块链研发工程师。区块链就是分布式账本技术,是一种互联网技术,核心思想是去中心化,让人人都能参与数据库记录。比如虚拟货币金融等应用得比较多。

现在很多的金融机构都在陆陆续续地做区块链的培训。这是一个方向,谁先走在前面,前景则会很光明。做得越早,机会就越多。比如:谁先做网站、游戏等机会都会更多。

  1. Go服务器端/游戏软件工程师

目前,服务器端主要用的是C语言和C++语言,只要是C语言和C++能够开发使用的,Go语言都能开发,而且会更好。

Go语言是在C语言和C++的基础上开发创作出来的。Go语言有三位设计者,其中一位设计者,叫汤姆森,也是C语言的设计者。Go语言是后面设计的,在很多方面会运用到C语言的设计理念并进行优化,C语言和C++能做的事情Go语言都可以做。如:处理日志,数据打包,文件系统。也比如,美团的后台流量支撑系统就是GO语言系统。

Go语言的优势有:数据处理能力较强、大并发数据处理能力较强。现在,网站越来越多,平台越来越大,用户量动辄是几千万的量,如,新浪、搜狐、腾讯等,这些网站很多时候一个并发就是几百万,怎么去处理这样打大并发呢?Go语言就具有处理这样的大并发的能力。在做后台服务器端时使用Go语言比较多。

在游戏开发的时候会用到数据通道。游戏后台,数据通道应用到Go语言比较多。

  1. Golang分布式/云计算软件工程师

京东的消息推送服务、分布式文件系统、盛大云CDN都使用的是Go语言。

学会Go语言以后能做这几类工作。

Go语言是一个核心编程,以上三类工作中使用Go语言开发比较多。它的应用场景是比较多的。

Go语言的工程师在市场需求量比较大,待遇相对其他工程师偏高。目前Go语言的人才比较少,早点掌握这一门语言,机会会更多。

 

四、Golang的应用领域

Golang的应用领域有:

  1. 区块链的应用开发

区块链应用的程序语言是Golang。需要先学习Go语言,才学区块链相关技术。

区块链技术,简称BT(Blockchain technology),也被称之为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录。数字货币及金融方面运用比较多。

  1. 后台的服务应用

后端服务器应用  Golang数据处理能力很强

(1) 美团后台流量支撑程序

支撑主站后台流量(排序,推荐,搜索等),提供负载均衡,cache,容错,按条件分流,统计运行指标(qps, latency)等功能

美团客户量相当大,在每天中午点外卖的时间用户量达高峰,面对大量的排序,推荐,搜索等功能都是非常消耗运算能力的,还需要提供负载均衡。排序,推荐,搜索需要很强的计算能力,需要较快的响应速度,超强流量运算支撑。负载均衡,cache,容错是需要后台有强大的大并发处理能力。所以,美团使用的就是Golang语言。

(2) 仙侠道

产品网址:仙侠道官网=心动游戏  

应用范围:游戏服务端(通讯、逻辑、数据存储)

这款游戏的通讯、逻辑、数据存储等后台用的也是Go语言。

  1. 云计算/云服务后台应用

盛大云CDN (内容分发网络)

网址:盛大云计算

应用范围: CDN的调度系统、分发系统、监控系统、短域名服务,CDN内部开放平台、运营报表系统以及其他一些小工具等。

内容分发网络:访问一个网站,会有很多图片视频,耗费流量很大,如何让用户就近的、快速的访问到内容,这时候就需要CDN技术。Go语言能建立CDN网络服务,云计算能力就凸显出来。

  1. 京东消息推送服务/京东分布式文件系统

网址:京东云

应用范围:后台所有服务全部用go实现。golang的计算能力强。

京东是电子商务平台,每天的购买量、用户量也非常庞大。在进行消息推送、分布式文件系统时需要用到云计算技术。云计算就可以选择Go语言来做开发。后台所有服务全部用go实现,说明golang的计算能力很强。

 

五、回顾

1、找什么工作

学习Go语言将来找工作可以找区块链方面的研发工程师、服务器端方面的工程师、Golang分布式/云计算方面的工程师。

2、做什么事情

区块链应开发、或者到美团公司工作、游戏公司工作、云计算等。