go語言項目搭建 go語言搭建個人博客

如何搭建go語言環(huán)境 linux

Go的三種安裝方式

成都創(chuàng)新互聯(lián)是專業(yè)的臺州網(wǎng)站建設公司,臺州接單;提供網(wǎng)站設計、網(wǎng)站制作,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行臺州網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

Go有多種安裝方式,你可以選擇自己喜歡的。這里我們介紹三種最常見的安裝方式:

Go源碼安裝:這是一種標準的軟件安裝方式。對于經(jīng)常使用Unix類系統(tǒng)的用戶,尤其對于開發(fā)者來說,從源碼安裝可以自己定制。

Go標準包安裝:Go提供了方便的安裝包,支持Windows、Linux、Mac等系統(tǒng)。這種方式適合快速安裝,可根據(jù)自己的系統(tǒng)位數(shù)下載好相應的安裝包,一路next就可以輕松安裝了。**推薦這種方式**

第三方工具安裝:目前有很多方便的第三方軟件包工具,例如Ubuntu的apt-get、Mac的homebrew等。這種安裝方式適合那些熟悉相應系統(tǒng)的用戶。

最后,如果你想在同一個系統(tǒng)中安裝多個版本的Go,你可以參考第三方工具GVM,這是目前在這方面做得最好的工具,除非你知道怎么處理。

Go源碼安裝

在Go的源代碼中,有些部分是用Plan 9 C和ATT匯編寫的,因此假如你要想從源碼安裝,就必須安裝C的編譯工具。

在Mac系統(tǒng)中,只要你安裝了Xcode,就已經(jīng)包含了相應的編譯工具。

在類Unix系統(tǒng)中,需要安裝gcc等工具。例如Ubuntu系統(tǒng)可通過在終端中執(zhí)行sudo apt-get install gcc

libc6-dev來安裝編譯工具。

在Windows系統(tǒng)中,你需要安裝MinGW,然后通過MinGW安裝gcc,并設置相應的環(huán)境變量。

你可以直接去官網(wǎng)下載源碼,找相應的goVERSION.src.tar.gz的文件下載,下載之后解壓縮到$HOME目錄,執(zhí)行如下代碼:

cd go/src

./all.bash

運行all.bash后出現(xiàn)"ALL TESTS PASSED"字樣時才算安裝成功。

上面是Unix風格的命令,Windows下的安裝方式類似,只不過是運行all.bat,調(diào)用的編譯器是MinGW的gcc。

如果是Mac或者Unix用戶需要設置幾個環(huán)境變量,如果想重啟之后也能生效的話把下面的命令寫到.bashrc或者.zshrc里面,

export GOPATH=$HOME/gopath

export PATH=$PATH:$HOME/go/bin:$GOPATH/bin

如果你是寫入文件的,記得執(zhí)行bash .bashrc或者bash

.zshrc使得設置立馬生效。

如果是window系統(tǒng),就需要設置環(huán)境變量,在path里面增加相應的go所在的目錄,設置gopath變量。

當你設置完畢之后在命令行里面輸入go,看到如下圖片即說明你已經(jīng)安裝成功

圖1.1 源碼安裝之后執(zhí)行Go命令的圖

如果出現(xiàn)Go的Usage信息,那么說明Go已經(jīng)安裝成功了;如果出現(xiàn)該命令不存在,那么可以檢查一下自己的PATH環(huán)境變中是否包含了Go的安裝目錄。

關于上面的GOPATH將在下面小節(jié)詳細講解

Go標準包安裝

Go提供了每個平臺打好包的一鍵安裝,這些包默認會安裝到如下目錄:/usr/local/go

(Windows系統(tǒng):c:\Go),當然你可以改變他們的安裝位置,但是改變之后你必須在你的環(huán)境變量中設置如下信息:

export GOROOT=$HOME/go

export GOPATH=$HOME/gopath

export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

上面這些命令對于Mac和Unix用戶來說最好是寫入.bashrc或者.zshrc文件,對于windows用戶來說當然是寫入環(huán)境變量。

如何配置go語言開發(fā)環(huán)境

1、下載go的zip文件。并且一定要把文件解壓到c:\go目錄下。

2、配置windows的高級環(huán)境變量。包括:GOROOT、GOOS、GOBIN、GOARCH。并且在path變量里面把c:\go\bin加入。以便可以在命令行直接運行g(shù)o命令。

舉例:我的機器:

GOPATH= c:\go;c:\go\src;F:\workspace\goSample01;

GOBIN=c:\go\bin;F:\workspace\goSample01\bin;

其中,c:\go是go的安裝路徑;

F:\workspace\goSample01是我寫的go語言項目的工程目錄;

F:\workspace\goSample01\bin是go語言項目的工程目錄下的可執(zhí)行文件路徑;

3、在完成環(huán)境變量配置后,打開一個命令行窗口,直接輸入go,然后回車,看看是否出現(xiàn)go的幫助信息。如果出現(xiàn),那么go的基本環(huán)境就OK了。

注意:這個基本環(huán)境不包含開發(fā)工具,也不能直接編譯帶C代碼的go程序。

4、(可選)為了支持Import遠程包,最好裝個gomingw。下載地址:。如果下的是壓縮包,請把它解壓到C盤。例如,C:\gowin-env。里面有個Console.bat是以后使用go get的環(huán)境。舉例:有個文件a.go,里面import(

"fmt"

"github.com/astaxie/beedb"

_ "github.com/ziutek/mymysql/godrv"

為了編譯該a.go文件,需要啟動Console.bat,然后在該命令行窗口,進入c:\go\src目錄下,執(zhí)行g(shù)o getgithub.com/astaxie/beedb

Go get github.com/ziutek/mymysql/godrv .

Go會自動下載該遠程包并編譯和安裝這些包。

配置goclipse(可選)

(如果不喜歡eclipse開發(fā)工具,請?zhí)^這個配置。)

1、下載并安裝goclipse插件。Goclipse是go語言for eclipse的插件,下載地址:

2、啟動eclipse并創(chuàng)建go項目。然后寫個最簡單的helloworld.go文件,并運行。代碼如下:

packagemainimport"fmt"func main(){ fmt.Printf("hello, world")}

配置gocode(可選)

如果不需要go語法輔助和eclipse里面的(按ALT+/)彈出go語言自動輔助功能,請?zhí)^這個配置。

1、下載gocode的zip文件,解壓后放在go的bin目錄下。

2、下載并安裝Git軟件。并且在path里面配置git的執(zhí)行路徑。例如c:\git\bin

3、在命令行執(zhí)行:go build .\gocode。如果一切正常,那么將會編譯生成一個gocode.exe文件在go的bin目錄下。如果編譯失敗,那么就轉(zhuǎn)第4步。

4、如果第3步直接編譯gocode源文件成功,那就直接到第5步。否則,就需要通過git下載gocode源文件,然后再編譯。在命令行執(zhí)行:go get -u github.com/nsf/gocode 。就會生成gocode.exe文件。

5、在goclipse插件里面指定gocode的路徑。就可以在elcipse里面調(diào)用gocode來幫助寫編碼了。

從開發(fā)工具這塊看,go語言還不夠成熟,開發(fā)工具都還不完善,有待改進。

下載go-tour教程源代碼(可選)

Google有個在線運行g(shù)o語言的教程(),很不錯。支持在web上直接運行大部分的go程序,想了解這個教程的源代碼的朋友可以通過以下方式獲取。如果沒興趣,可以跳過這個步驟。

1、下載安裝Mercurial軟件。

2、在命令行下輸入:

hg clone

這個URL是我從google的go-tour源代碼的一個clone。作為測試用的。如果把http改成https協(xié)議,下載就會失敗。搞不懂。

編譯帶調(diào)用C代碼的go文件(可選)

1、為了在windows下編譯帶C代碼的go程序,你首先需要下載并安裝MinGW或者Cygwin。

2、首選安裝MinGW。在安裝MinGW之后,記得要把MinGW安裝目錄\bin路徑設置在path環(huán)境變量里面,以便能在dos窗口下直接調(diào)用gcc。

3、下載一個gowin-env。下載地址:gowin-env。下載后解壓到某個目錄下,例如:C:\gowin-env. 然后,編輯go-env.bat。配置相關的go參數(shù)。例如,我的配置是:

set GOARCH=386

set GOOS=windows

set GOROOT=c:\go

set GOBIN=%GOROOT%\bin

set GOPATH=%GOROOT%;F:\workspace\goSample01;

設置好go-env.bat后,就可以點擊Console.bat來啟動編譯和運行窗口。

4、編寫一個帶C代碼的go程序。例如,testc.go

5、編譯

例如:

go build -compiler gccgo test_c.go

運行調(diào)用C代碼的go文件(可選)

1、testc.go.

創(chuàng)建rand目錄,然后在rand里面創(chuàng)建testc.go. 代碼如下:

package rand

/*

//

#include stdio.h

*/

import "C"

func PrintHello() {

C.puts(C.CString("Hello, world\n"))

}

2、a.go

在rand下創(chuàng)建a.go.代碼如下:

package rand

import "fmt"

func SayHello(name string){

fmt.Println(name)

}

3、test_import.go

在rand的上一級創(chuàng)建test_import.go。代碼如下:

package main

import "./rand"

func main(){

rand.SayHello("tom")

rand.PrintHello()

}

4、運行test_import.go

go run test_import.go

在測試其它幾個C代碼的時候,發(fā)現(xiàn)windows版本的cgo還有些編譯問題,同樣的代碼轉(zhuǎn)移到蘋果的XCODE下就沒有問題。后來終于發(fā)現(xiàn)原因了,原來有些例子是unix平臺下的,而在windows平臺下,方法名和參數(shù)需要做調(diào)整。

例如:下面代碼在windows下編譯報一堆錯誤。

package rand

/*

#include stdlib.h

*/

import "C"

func Random() int {

return int(C.random())

}

func Seed(i int) {

C.srandom(C.uint(i))

}

這里需要把return int(C.random()) 修改為“return int(C.rand())”

C.srandom(C.uint(i))修改為“C.srand(C.uint(i))”編譯就OK了。

GO語言商業(yè)案例(十六):Curve-

Golang 的創(chuàng)建是為了實現(xiàn)最大的用戶效率和編碼效率。已經(jīng)熟悉 Java 或 PHP 的程序員可以在幾周內(nèi)接受 Go 的培訓(許多人最終會更喜歡它)。在本文中,Dewet Diener 探討了 Golang 的優(yōu)缺點,以及它的測試驅(qū)動開發(fā) (TDD) 如何完美契合。

Golang 由 Google 開發(fā)和設計,于 2009 年作為一種綜合性編程語言首次出現(xiàn),旨在最大限度地提高編碼效率。創(chuàng)建該語言的目的是修正其他已建立語言的缺陷。盡管 Golang(或簡稱為“Go”)是一門年輕的語言,但已經(jīng)積累了大量的開發(fā)人員,因此我們想分享為什么在 Curve 我們喜歡 Golang,以及我們?nèi)绾尾捎盟鼇韺崿F(xiàn)我們移動銀行業(yè)務的目標到云端。

Go 是一種精致的編程語言:它支持“所見即所得”的原則,這意味著清晰易讀的代碼和更少的復雜抽象。該語言本身易于使用且易于訓練。盡管如此,作為一個相對較新的生態(tài)系統(tǒng),要找到對 Go 具有廣泛預先知識的工程師可能會很棘手。

然而,與其他編程語言不同,Go 的創(chuàng)建是為了最大限度地提高用戶效率。因此,具有 Java 或 PHP 背景的開發(fā)人員和工程師可以在幾周內(nèi)獲得使用 Go 的技能和培訓——根據(jù)我們的經(jīng)驗,他們中的許多人最終更喜歡它。

在 Curve,我們大力提倡測試驅(qū)動開發(fā) (TDD),Go 的框架與這種方法保持一致。通過簡單地命名一個文件 foo_test.go 并在該文件中添加結(jié)構(gòu)化測試函數(shù),Go 將快速有效地運行您的單元測試。這一創(chuàng)新功能提高了生產(chǎn)力,因為它可以更加專注于測試驅(qū)動的開發(fā)和改進的同行評審機會。

Golang 具有出色的生產(chǎn)優(yōu)化品質(zhì),例如內(nèi)存占用小,這支持其在大型項目中作為構(gòu)建塊的能力,以及開箱即用的與其他架構(gòu)的輕松交叉編譯。由于 Go 代碼被編譯為單個靜態(tài)二進制文件,因此它可以輕松進行容器化,并且通過擴展,將 Go 部署到任何高可用性環(huán)境(例如 Kubernetes)中幾乎是微不足道的。

它提供了一種機制來保護工作負載,通過擁有非常纖薄的生產(chǎn)容器而沒有任何無關的依賴項。這使得構(gòu)建、部署和維護基于 Go 的資產(chǎn)更加直接和安全,并為希望建立或發(fā)展其微服務戰(zhàn)略的公司提供了可靠的選擇。

Go 是專門為滿足我們快速發(fā)展的技術(shù)生態(tài)系統(tǒng)的需求而創(chuàng)建的。例如,Go 可以滿足您構(gòu)建 API 所需的一切,并將其作為其標準庫的一部分。它使用簡單,高性能的 http 服務器消除了團隊設計新項目時經(jīng)常發(fā)生的一些常見的 探索 和設計癱瘓問題——這對于一些其他流行語言(如 Java 和 Node.js)來說太常見了。

Golang 還通過其內(nèi)置于語言本身的自動格式化程序巧妙地解決了代碼格式化分歧。這完全消除了格式爭議,進而提高了團隊的生產(chǎn)力和注意力。

盡管我是 Go 的擁護者,但它顯然也不是沒有缺陷。一個爭論不休的特性是 Go 沒有顯式接口,這是許多開發(fā)人員習慣的概念。雖然不是有害的,但它可以使選擇最適合您的結(jié)構(gòu)的接口成為一項任務。這是因為您不會像在其他流行的編程語言中那樣編寫 X 實現(xiàn) Y,但您很快就會接受。

依賴管理也是另一個不屬于 Google Golang 開發(fā)團隊原始設計的功能。開源社區(qū)介入并創(chuàng)建了 Glide 和 Dep,最初的努力并沒有完全解決問題。從 Go 1.11 開始,添加了對模塊的支持,這似乎已成為官方的依賴管理工具。這些挑戰(zhàn)并沒有削弱 Go 作為一種高效編程語言的獨創(chuàng)性,并且它繼續(xù)為我們提供優(yōu)于其他編程語言的顯著優(yōu)勢。

Golang 吸引了全球敏銳的開發(fā)人員的注意,并且圍繞它的興奮繼續(xù)增長。開源社區(qū)因有趣的項目而蓬勃發(fā)展;最著名的是 Docker 和 Kubernetes。

正是這種新鮮、有創(chuàng)意但又簡單的包裝吸引了我們?nèi)o:它是一種令人興奮的編碼語言,可以幫助我們在 Curve 中快速開發(fā)以構(gòu)建更好的產(chǎn)品。

Go語言的開源項目

1.Docker項目

網(wǎng)址為 。

介紹:Docker是一種操作系統(tǒng)層面的虛擬化技術(shù),可以在操作系統(tǒng)和應用程序之間進行隔離,也可以稱之為容器。Docker可以在一臺物理服務器上快速運行一個或多個實例。例如,啟動一個Cent OS操作系統(tǒng),并在其內(nèi)部命令行執(zhí)行指令后結(jié)束,整個過程就像自己在操作系統(tǒng)一樣高效。

2.golang項目

網(wǎng)址為 。

介紹:Go語言的早期源碼使用C語言和匯編語言寫成。從Go 1.5版本自舉后,完全使用Go語言自身進行編寫。Go語言的源碼對了解Go語言的底層調(diào)度有極大的參考意義,建議希望對Go語言有深入了解的讀者讀一讀。

3.Kubernetes項目

網(wǎng)址為 。

介紹:Google公司開發(fā)的構(gòu)建于Docker之上的容器調(diào)度服務,用戶可以通過Kubernetes集群進行云端容器集群管理。

4.etcd項目

網(wǎng)址為 。

介紹:一款分布式、可靠的KV存儲系統(tǒng),可以快速進行云配置。

5.beego項目

網(wǎng)址為 。

介紹:beego是一個類似Python的Tornado框架,采用了RESTFul的設計思路,使用Go語言編寫的一個極輕量級、高可伸縮性和高性能的Web應用框架。

6.martini項目

網(wǎng)址為 。

介紹:一款快速構(gòu)建模塊化的Web應用的Web框架。

7.codis項目

網(wǎng)址為 Labs/codis。

介紹:國產(chǎn)的優(yōu)秀分布式Redis解決方案。

8.delve項目

網(wǎng)址為 。

介紹:Go語言強大的調(diào)試器,被很多集成環(huán)境和編輯器整合。

網(wǎng)站名稱:go語言項目搭建 go語言搭建個人博客
URL鏈接:http://bm7419.com/article48/dohhdhp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、云服務器、網(wǎng)站制作、手機網(wǎng)站建設微信小程序、品牌網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設