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年,谷歌工程師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檔案。 ↩︎