Golang開發環境搭建
Golang的誕生
- 電腦硬體技術更新頻繁,性能提高很快。目前主流的程式語言發展明顯落後於硬體,不能合理利用多核多CPU的優勢提升軟體系統性能。
- 軟體系統複雜度越來越高,維護成本越來越高,目前缺乏一個足夠簡潔高效的程式語言。
- 企業運行維護很多c/c++的項目,C/C++程式運行速度雖然很快(因為採用靜態編譯),但是編譯速度卻很慢,同時還存在記憶體泄露的一系列困擾需要解決。
Golang的核心開發團隊
- Ken Thompson(肯·湯普遜):1983年圖靈獎、1998年美國國家技術獎得主,他與Dennis
- Ritchie是Unix系統的原創者。Thompson也發明了C語言、B語言,同時也是C語言的主要發明人。
- Rob Pike(羅布·派克): 加拿大人,曾是貝爾實驗室的Unix團隊和Plan 9操作計劃的成員。他與Thompson公事多年,並共創出廣泛使用的UTF-8字元編碼。(ps:Go語言的圖標-gopher 囊地鼠,是Rob Pike老婆製作的)
Golang里程碑
- 2007年,Google工程師Ken Thompson、Rob Pike、Robert Griesemer開始設計一門全新的語言,這是Go語言的最初原型
- 2009.11.10 ,Google將Go語言以開放源程式碼的形式向全球發布。
- 2015年8月19日 ,Go1.5版本發布,本次更新中移除了「最後殘餘的C程式碼」,請記憶體管理方面權威專家Rick
- Hudson對GC進行重新設計(重要的修正)
- 2017年2月16日 , Go1.8版本發布
- 2017年8月24日 , Go1.9版本發布
- 2018年2月16日 , Go1.10版本發布
- 2018年8月24日 , Go1.11版本發布
- 2019年2月25日 , Go1.12版本發布
- 2019年9月03日 , Go1.13版本發布
- 2020年2月25日 , Go1.14版本發布
- 2020年8月11日 , Go1.15版本發布
- 2021年2月16日 , Go1.16版本發布
Golang應用領域
- 區塊鏈應用
- 區塊鏈技術,簡稱BT(Blockchain technology),也被稱為分散式賬本技術,是一種互聯網資料庫技術,其特點是去中心化,公開透明,讓每個人均可參與資料庫記錄。
- 後台伺服器應用
- 美團後台流量支撐程式 支撐主站後台流量(排序,推薦,搜索等),提供負載均衡,cache,容錯,按條件分流,統計運行指標(qps,latency)等功能
- 京東消息推送雲服務/京東分散式文件系統 應用範圍:後台所有服務全部用Go實現
- 雲計算/雲服務後台應用
- 盛大雲CDN(內容分發網路)應用範圍:CDN的調度系統、分發系統、監控系統、短域名服務,CDN內部開放平台、運營報表系統以及其他一些小工具等
使用Golang開發的項目
- Docker
- Docker 是一種作業系統層面的虛擬化技術,可以在作業系統和應用程式之間進行隔離,也可以稱之為容器。Docker 可以在一台物理伺服器上快速運行一個或多個實例。例如,啟動一個 CentOS 作業系統,並在其內部命令行執行指令後結束,整個過程就像自己在作業系統一樣高效。
- Go語言
- Go語言自己的早期源碼使用C語言和彙編語言寫成。從 Go 1.5 版本後,完全使用Go語言自身進行編寫。Go語言的源碼對了解Go語言的底層調度有極大的參考意義,建議希望對Go語言有深入了解的讀者讀一讀。
- Kubernetes
- Google 公司開發的構建於 Docker 之上的容器調度服務,用戶可以通過 Kubernetes 集群進行雲端容器集群管理。系統會自動選取合適的工作節點來執行具體的容器集群調度處理工作。其核心概念是 Container Pod(容器倉)。
- etcd
- 一款分散式、可靠的 KV 存儲系統,可以快速進行雲配置。由 CoreOS 開發並維護鍵值存儲系統,它使用Go語言編寫,並通過 Raft 一致性演算法處理日誌複製以保證強一致性。
環境搭建
Golang SDK下載及安裝
-
進入Golang官網下載適合自己系統的SDK,我這裡使用的是Windows系統,所以下載的版本就為go1.17.1.windows-amd64.msi
-
下載成功後,運行安裝程式進入Golang SDK歡迎介面,點擊
Next
-
閱讀完協議後,選中
我接受許可協議中的條款
,點擊Next
-
選擇安裝目錄(默認路徑即可),點擊
Next
-
確認安裝
-
安裝成功後,點擊
Finish
完成安裝
-
測試Golang SDK是否安裝成功
Win+r
鍵盤輸入cmd
打開控制台程式,輸入go version
命令查看Golang SDK版本,如果成功輸出表示已經成功安裝
注意:一般通過安裝程式(.msi)都會默認在環境變數中添加GOPATH
(用於存放Golang的項目目錄),並在Path中添加Golang安裝目錄下的bin目錄
如果通過zip方式安裝Golang SDK需要手動將如上配置添加至環境變數,否則在cmd輸入go version
將會無法輸出Golang版本資訊
Golang IDE下載及安裝
常見的Golang IDE有
- Goland
- Goland,商業公司jetbrains 近兩年推出的 Go 集成開發環境,相信很多程式都用過他們家的IDE,比如Java的 Intellj IDEA、PHP的PHPStorm、Python的PyCharm、C++的CLion、前端的WebStorm等。使用JetBrains的IDE,我們可以享受到它優秀的開箱即用的體驗和 jetbrains 積累十幾年的插件體系。
- VS Code
- 由微軟開發的一款功能強大的現代化輕量級程式碼編輯器IDE,免費開源。通過它強大的插件擴展能力,VS Code幾乎支援主流語言的項目開發。毫無例外,GO也是其中之一。
- Vim GO
- 細究起來,vim應該是一款文本編輯器,但它卻擁有了很多不該屬於文本編輯器的能力,比如單詞補全、ctags標籤跳轉、窗口分隔、崩潰文件恢復、文件diff、400多種文本高亮等。最重要的一點是,vim有一套自己的腳本語言,這為它通過插件擴展自己的能力提供了可能。
Goland下載及安裝
- 進入Goland官網,點擊
Download
進入下載頁面
- 下載成功後,運行安裝包進入歡迎介面,點擊
Next
- 選擇安裝位置,點擊
Next
- 安裝選項(創建快捷方式、添加到環境變數),按照個人方式選擇,點擊
Next
- 安裝成功後(我暫時不重啟),點擊
Finish
首次使用Goland
由於Goland需要收費,所以首次運行時會出現以下介面,我們點擊Evaluate for free
,進去免費評估版試用。
點擊Continue
,進入Goland
當然你也可以點擊此處,註冊學生版、開源組織、大學教育機構版
通過Goland創建一個HelloGolang項目
一般情況下,我們會創建一個工程文件,工程文件中一般包含
- src
- 存放源程式碼
- bin
- 存放編譯好的文件
- pkg
- Golang依賴庫文件
進入Goland,點擊New Project
創建一個項目
雙擊工程文件夾,打開src目錄,右鍵創建一個Hello
文件夾,並在文件夾中創建一個HelloGolang.go
文件,來寫來我們的第一個Golang程式。
寫下如下程式碼
package main
import "fmt"
func main() {
fmt.Println("hello golang")
}
由於我們使用的Golang版本大於1.11,所以我們需要添加go.mod[1]文件
保存成功後,添加Golang運行/調試配置
添加成功後,點擊Run
按鈕,查看運行結果
可以看到,我們的程式已經成功的Run起來了。至此我們的Golang開發環境已經全部搭建完成,接下來就開啟你的Golang之旅吧~
-
Go.mod是Golang1.11版本新引入的官方包管理工具用於解決之前沒有地方記錄依賴包具體版本的問題,方便依賴包的管理。
Go.mod其實就是一個Modules,關於Modules的官方定義為:
Modules是相關Go包的集合,是源程式碼交換和版本控制的單元。go命令直接支援使用Modules,包括記錄和解析對其他模組的依賴性。Modules替換舊的基於GOPATH的方法,來指定使用哪些源文件。
Modules和傳統的GOPATH不同,不需要包含例如src,bin這樣的子目錄,一個源程式碼目錄甚至是空目錄都可以作為Modules,只要其中包含有go.mod文件。 ↩︎