一、关于Golang
1、Golang背景知识
Go语言其实是Golanguage的简称,Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译并发型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。该语言的吉祥物为金花鼠(gordon),如下图所示。
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。Go的语法接近C语言,但对于变量的声明有所不同,Go支持垃圾回收功能。Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。
官方网站:
https://golang.org/
2、Golang优势
Go 语言特色
简洁、快速、安全
并行、有趣、开源
内存管理、数组安全、编译迅速
Go 语言用途
Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。
C/C++的问题:
开发效率低,对开发者要求高;libc只向后兼容,运维难度偏大。
Lua/Python的问题:
动态语言,缺少编译过程,低级错误频出;缺少有效的性能分析及调试工具。
二、Golang学习
1、学习方向
区块链研发工程师
区块链的核心思想是去中心化,让每个人都能参加数据库的记录,比如虚拟货币
Go服务端
目前服务器端主要采用C和C++实现,只要是C和C++能做的事情,Go语言就可以实现且做的不错。因为Go的作者Ken Thompson也是C语言的设计者,相当于对C语言设计的部分优化,比如处理日志、数据打包、虚拟机处理等,据说美团后台的流量处理就是采用Go语言编写。
游戏软件工程师
游戏数据通道会使用Go语言
Golang分布式/云计算软件工程师
2、学习计划
!!!寒假学完Golang!!!
!!! 高效愉快学习 !!!
不能这样学习:
只看书,不上机
只运行,不调试
只收藏,不实践,半途而废
应该这样学习:
多敲代码,多敲代码,多敲代码
多读代码,重视实战
良好的兴趣和信念支撑,无论是书本或视频,都坚持学到最后
根据自己的兴趣或者市场的需要做一些有一定规模的项目
三、Golang入门
1、Golang执行流程分析
2、Go 语言的基础组成:
*包声明
*引入包
*函数
*变量
*语句 & 表达式
*注释