### 學習方向
```
區塊鏈研發工程師
```
```
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
- 簡介