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老婆制作的)
    image

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下載及安裝

  1. 進入Golang官網下載適合自己系統的SDK,我這里使用的是Windows系統,所以下載的版本就為go1.17.1.windows-amd64.msi
    image

  2. 下載成功后,運行安裝程序進入Golang SDK歡迎界面,點擊Next
    image

  3. 閱讀完協議后,選中我接受許可協議中的條款,點擊Next
    image

  4. 選擇安裝目錄(默認路徑即可),點擊Next
    image

  5. 確認安裝
    image

  6. 安裝成功后,點擊Finish完成安裝
    image

  7. 測試Golang SDK是否安裝成功
    Win+r鍵盤輸入cmd打開控制台程序,輸入go version命令查看Golang SDK版本,如果成功輸出表示已經成功安裝
    image
    注意:一般通過安裝程序(.msi)都會默認在環境變量中添加GOPATH(用於存放Golang的項目目錄),並在Path中添加Golang安裝目錄下的bin目錄
    image
    如果通過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下載及安裝

  1. 進入Goland官網,點擊Download進入下載頁面
    image
  2. 下載成功后,運行安裝包進入歡迎界面,點擊Next
    image
  3. 選擇安裝位置,點擊Next
    image
  4. 安裝選項(創建快捷方式、添加到環境變量),按照個人方式選擇,點擊Next
    image
  5. 安裝成功后(我暫時不重啟),點擊Finish
    image

首次使用Goland

由於Goland需要收費,所以首次運行時會出現以下界面,我們點擊Evaluate for free,進去免費評估版試用。
image
image
點擊Continue,進入Goland

當然你也可以點擊此處,注冊學生版、開源組織、大學教育機構版
image

通過Goland創建一個HelloGolang項目

一般情況下,我們會創建一個工程文件,工程文件中一般包含

  • src
    • 存放源代碼
  • bin
    • 存放編譯好的文件
  • pkg
    • Golang依賴庫文件

image

進入Goland,點擊New Project創建一個項目
image
image
image

雙擊工程文件夾,打開src目錄,右鍵創建一個Hello文件夾,並在文件夾中創建一個HelloGolang.go文件,來寫來我們的第一個Golang程序。
image

寫下如下代碼

package main

import "fmt"

func main() {
	fmt.Println("hello golang")
}

image
由於我們使用的Golang版本大於1.11,所以我們需要添加go.mod[1]文件
image
image
保存成功后,添加Golang運行/調試配置
image
添加成功后,點擊Run按鈕,查看運行結果
image
可以看到,我們的程序已經成功的Run起來了。至此我們的Golang開發環境已經全部搭建完成,接下來就開啟你的Golang之旅吧~


  1. Go.mod是Golang1.11版本新引入的官方包管理工具用於解決之前沒有地方記錄依賴包具體版本的問題,方便依賴包的管理。
    Go.mod其實就是一個Modules,關於Modules的官方定義為:
    Modules是相關Go包的集合,是源代碼交換和版本控制的單元。go命令直接支持使用Modules,包括記錄和解析對其他模塊的依賴性。Modules替換舊的基於GOPATH的方法,來指定使用哪些源文件。
    Modules和傳統的GOPATH不同,不需要包含例如src,bin這樣的子目錄,一個源代碼目錄甚至是空目錄都可以作為Modules,只要其中包含有go.mod文件。 ↩︎


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM