### 学习方向
```
区块链研发工程师
```
```
Go服务器端/游戏软件工程师
```
```
Golang分布式/云计算软件工程师
```
### 应用领域
```
区块链应用
```
```
后台的服务程序(美团后台流量支撑程序)
```
```
云计算/云服务后台应用
盛大云CDN
京东消息推送服务/京东分布式文件系统
```
### Google创造Golang的原因
```
1. 目前硬件技术更新频繁, 性能提高更快,目前主流的程序语言明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能
2. 软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简介高效的编程语言
```
### Go语言的特点
```
1. 既保证了静态编译语言的安全和性能,同时又达到了动态语言开发维护的高效率, Go = C + Python, 说明Go语言既有C静态语言程序的运行速度,又能达到Python动态语言的开发速度
2. 从C语言中继承了很多理念,包括表达式语法,控制结构,基础数据类型,参数传值,指针等,也保留了和C语言一样的编译执行方式及弱化的指针
3. 引入包的概念,用于组织程序结构,Go语言的一个文件都要归属于一个包,不能单独存在
4. 垃圾回收机制,内存自动回收
5. 天然并发
1> 从语言层面支持并发,实现简单
2> goroutine, 轻量级线程,可实现大并发处理,高效利用多核
3> 基于GPS并发模型实现
6. 吸收了管道通信机制,形成Go语言特有的管道(channel), 通过管道,可以实现不同goroutine之间的相互通信
7. 函数可以有多个返回值
8. 新特性,比如切片slice, 延时执行defer
```
- 认识Golang
- 环境配置
- 找不到包
- civil
- 语言基础
- 执行流程
- 标准命令
- 输入输出
- 常量与变量
- 常量的定义和使用
- 变量
- 枚举
- 数据类型
- 结构体
- 定义和使用
- 函数参数
- 普通数据类型
- 数值型
- 整型
- 浮点类型
- 布尔
- 字符
- 字符串
- 类型转换
- 复杂数据类型
- 指针
- 定义和使用
- 空指针
- 野指针
- new
- 函数参数
- 数组
- 定义
- 切片
- 切片
- Map
- 定义和使用
- 流程控制
- if
- switch
- for
- break
- continue
- goto
- 函数
- 函数的定义与使用
- 不定参函数
- 函数返回值
- 作用域
- 匿名函数
- 闭包
- 传值方式
- 常用函数
- 日期
- 包
- 面向对象
- 异常处理
- 文件读写
- 正则
- io
- Reader
- Writer
- 接口
- 测试
- os
- json
- Marshal
- Unmarshal
- 网络编程
- go程
- runtime
- channel
- 无缓冲channel
- 关闭channel
- 单向channel
- 生产者消费者模型
- 定时器
- tcp
- tcp_server
- tcp_client
- tcp_server_并发
- tcp_client_并发
- 常用框架
- http
- server
- get
- head
- 爬虫
- 百度贴吧
- 百度贴吧( 并发)
- GTK
- beego
- 环境搭建
- model
- 增
- 删
- 改
- 查
- 模块
- context
- httplib
- etcd
- 简介
- 安装
- 使用
- net/html
- goquery
- redis
- redigo
- 爬虫
- gocolly/colly
- 区块链
- 微服务
- 服务发现
- consul
- 简介