從零搭建Golang開發環境--go修仙序章

Ferrayman發表於2020-10-02

1. 什麼是go語言

Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發的一種靜態 、強型別、編譯型語言 。Go 語言語法與 C相近,但功能上有:記憶體安全,GC(垃圾回收),結構形態及 CSP-style 併發計算。

-----------百度百科

Go 是一個開源的程式語言,它能讓構造簡單、可靠且高效的軟體變得容易。

Go 語言被設計成一門應用於搭載 Web 伺服器,儲存叢集或類似用途的巨型中央伺服器的系統程式語言。

它是編譯型語言。

它考慮了多核計算機的執行特點。(並行程式設計)

特點

  1. 簡單易學習
  2. 開發效率高
  3. 執行效率好(號稱21世紀的C語言)

兼具效率、效能、安全、健壯等特性

應用領域

  1. 服務端開發:日誌處理、檔案系統、監控服務
  2. 容器虛擬化:Docker、k8s、Docker Swarm
  3. 儲存:etcd、TiDB、GroupCache
  4. Web開發:http/net、Gin、Echo
  5. 區塊鏈:以太坊、fabric
  6. 雲平臺,目前國外很多雲平臺在採用Go開發,CloudFoundy的部分組建,前VMare的技術總監自己出來搞的apcera雲平臺。

成功的案例

  • nsq:bitly開源的訊息佇列系統,效能非常高,目前他們每天處理數十億條的訊息
  • docker:基於lxc的一個虛擬打包工具,能夠實現PAAS平臺的組建。
  • packer:用來生成不同平臺的映象檔案,例如VM、vbox、AWS等,作者是vagrant的作者
  • skynet:分散式排程框架
  • Doozer:分散式同步工具,類似ZooKeeper
  • Heka:mazila開源的日誌處理系統
  • cbfs:couchbase開源的分散式檔案系統
  • tsuru:開源的PAAS平臺,和SAE實現的功能一模一樣
  • groupcache:memcahe作者寫的用於Google下載系統的快取系統
  • god:類似redis的快取系統,但是支援分散式和擴充套件性
  • gor:網路流量抓包和重放工具

語言環境安裝

線上下載:https://golang.org/dl/

配置go環境變數;你機器上go的安裝的目錄

60125872124

cmd輸入go version檢視版本

Go語言的Hello World

建立一個go語言的工作空間,並新增到環境變數

新建src、pkg、bin三個目錄

在src目錄下新建demo.go檔案

package main

import "fmt"

func main() {
   fmt.Println("Hello World !")

}

在該資料夾開啟cmd 執行go demo.go

60125933452

編譯

60126041401

輸入dir檢視目錄檔案

60126053594

會發現多了一個exe可執行檔案,檔案預設的名稱是當前資料夾的名稱

我們可以指定可執行檔名稱編譯

跨平臺編譯

預設我們go build的可執行檔案都是當前作業系統可執行的檔案,如果需要編譯其他平臺的go可執行檔案,需要先指定平臺再編譯

SET CGO_ENABLED=0  // 禁用CGO,cgo不支援跨平臺
SET GOOS=linux  // 目標平臺是linux
SET GOARCH=amd64  // 目標處理器架構是amd64

使用sublime開啟可以發現是一個二進位制檔案,拷貝到linux上即可執行

(在執行之前需要檢視檔案是否有執行許可權,不然需要授權)

Go語言專案目錄結構

開發工具(IDE)

免費的VS Code(安裝go外掛)

收費的Goland

vim

等等...

最後

讓我們開啟Go修仙之旅吧!

相關文章