Golang的岗位
-
区块链研发工程师
-
Go服务器 / 游戏软件工程师
-
Golang分布式 / 云计算软件工程师
Golang的应用领域
-
区块链的应用开发
-
区块链技术简称BT(Blockchain Technology),也称为分布式账本技术,是一种互联网数据库技术,其特点是去中心化,公开透明,让每一个人均可参与数据库记录。
-
-
后端服务器支撑
-
例1:美团后台流量支撑程序
-
支撑主站后台流量(排序、推算、搜索等),提供负载均衡,Cache,容错,按条件分配、统计运行指标(qps,latency)等功能。
-
-
例2:游戏仙侠道
-
应用范围,游戏服务器(通讯、逻辑、数据存储等)
-
-
-
云计算 / 云服务后台应用
-
例1:盛趣云CDN(内容分发网络)——原盛大云CDN
-
应用范围:CDN的调度系统、分发系统、监控系统、短域名服务,CDN内部开发平台、运营报表系统以及其他的一些小工具等。
-
-
例2:京东消息推送云服务 / 京东分布式文件系统
-
应用范围:后台所有服务
-
-
Golang的概述
什么是程序?
程序,为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合。
Go的简介
Go语言是Google公司创造的语言,也是Google主推的程序语言。Go语言是区块链技术最主流的编程语言,同时也是当前最具发展潜力的语言。区块链技术也是目前不错的技术。
Go语言应用的国内外代表公司:
-
国外公司:Google、AWS、CloudFlare、CoreOS等
-
国内公司:七牛云、阿里、小米、京东等。
都已经大规模开始部署Golang开发及其云计算相关产品。
Go语言的发展
核心开发团队: Robert Griesemer, Rob Pike, Ken Thompson
Google创造Go语言的目的
-
计算机硬件技术更新频繁:性能提高很快,目前主流的编程语言发展落后于硬件,不能合理利用多核CPU的优势提升软件系统性能。
-
软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言。
-
企业运行维护很多C/C++的项目,C/C++程序运行速度很快,但是编译速度很慢,同时还存在内存泄漏的一系列的困扰需要解决。
Go的发展史
2007年,Google工程师 Robert Griesemer, Rob Pike, Ken Thompson开始设计一门全新的语言,go语言最初模型的开端。
2009年11月20日,Google将Go语言以开放源代码的方式向全球发布。
2015年8月19日,Go 1.5版发布,本次更新中移除了“最后残余的C代码”
2017年2月17日,Go语言Go1.8版发布。
2017年8月24日,GO语言Go 1.9版发布
……。
Go语言的特点(特性)
简介:Go语言保证了既能够达到静态编译语言的安全和性能,又达到了动态语言开发类维护的高效率。使用一个表达式来形容Go语言,go = C + Python ,说明Go语言既有C静态语言程序的运行速度,又能达到Python的动态语言的快速开发。
-
从C语言中继承了很多理念,包括表达式语法,控制结构、基础数据类型、通用参数传递、指针等等,也保留了和C语言一样的编译执行方式及弱化的指针。
-
引入包的概念,用于组织程序结构,Go语言的一个文件都要归属于一个包,而不能单独存在。
-
垃圾回收机制,内存自动回收,不需要开发人员进行管理。
-
天然并发
-
从语言层面支持并发,实现简单。
-
goroutine,轻量级线程,可实现大并发处理,高效利用多核。
-
基于CPS并发模型(Communicating Sequential Processes)实现。
-
-
吸收了管道通信机制,形成Go语言特有的管道Channel。通过Channel,可以实现不同的goroute之间的相互通信。
-
函数返回多个值。
-
新的创新内容,例如切片、延时执行defer等。
精简版的特性:
-
自动垃圾回收
-
更丰富的内置类型
-
函数多返回值
-
错误处理
-
匿名函数和闭包
-
类型和接口
-
并发编程【重要特点】
-
反射
-
语言交互性
Go语言的开发工具
-
Visual Studio Code简称VS Code
-
Sublime Text
-
Vim是从Vi发展出来的一个文本编辑器。
-
Emacs
-
Eclipse IDE工具,开源免费,并提供GoEclipse插件。
-
LiteIDE是一款专门为Go语言开发的跨平台轻量级集成开发环境(IDE)。
-
JetBrains公司的Goland,都是需要安装插件的。