Go 生態(tài)系統(tǒng)
網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了灌南免費建站歡迎大家使用!
學習基本上相當直接的。我們之前在 C/C++/Java/Objective-C/PHP 的經(jīng)驗讓我們學習 Go 相當快,并且在幾天內(nèi)就開始開發(fā)了。當然會有一些新的和不常見的東西需要學習,包括 GOPATH 還有如何處理包,但這在我們的預期之內(nèi)。
幾天之內(nèi),我們意識到即使是一個以簡化為設計目的的語言,Go 也是非常強大的。它能夠做任何現(xiàn)代編程語言應該能做的事:能夠處理 JSON、服務器之間通訊甚至訪問數(shù)據(jù)庫也沒問題(并且只需要幾行代碼)。
在構(gòu)建一個服務器時,你應該首先決定是否使用任何第三方庫或者框架。對于 Bugfender,我們決定使用:
Martini
Martini 是一個強大的 Go 的 web 框架。我們開始這個實驗時,它是一個很棒的解決方案,至今也是,我們還沒遇到任何問題。然而如果我們今天再次開始這個實驗的話,我們會選擇一個不同的框架,因為 Martini 不在維護了。
Gorm
有些人喜歡 ORM,而有些人則不喜歡。我們決定使用 ORM,更確切地說是 GORM。我們的實現(xiàn)只針對 web 前端,對于日志提取 API 仍然繼續(xù)使用手工優(yōu)化的 SQL。在一開始,我們確實很喜歡它,但是隨著時間的推移,我們開始發(fā)現(xiàn)問題,并且我們很快將它從代碼中完全移除,并且使用 sqlx 這個標準 SQL 庫。
GORM 的一個主要問題是 Go 的生態(tài)系統(tǒng)。作為一個新語言,自我們開始開發(fā)產(chǎn)品以來 Go 已經(jīng)有很多新版本。在這些新版本中的一些改變并不向后兼容,因此要使用最新的庫版本,我們要經(jīng)常重寫已有代碼并檢查我們?yōu)榻鉀Q版本問題所做的 hack。
Go 語言又稱為 golang, 是由 Google 最初開發(fā)的一種開源編程語言,其在設計時就遵循了簡單、安全和速度的 3 大原則。Go 語言具有多種調(diào)試、測試、分析和代碼審查工具,如今 Go 語言和工具已在大多數(shù) Linux 發(fā)行版本的源庫中進行提供,本文我就來說明如何為 Linux 安裝 Go 語言。
Ubuntu、Debian或Linux Mint安裝Go語言
基于 Debian的 Linux 發(fā)行版本都可以使用 apt-get 命令來進行安裝:
sudo apt-get install golang
要查看當前系統(tǒng)安裝的 Go 語言版本可以使用如下命令:
go version
由于 Go 代碼必需保存在 workspace(工作區(qū))中,所以我們必需在 Home 目錄(例如 ~/workspace)創(chuàng)建一個 workspace 目錄并定義 GOPATH 環(huán)境變量指向該目錄,這個目錄將被 Go 工具用于保存和編輯二進制文件。
mkdir ~/workspaceecho 'export GOPATH="$HOME/workspace"' ~/.bashrcsource ~/.bashrc
根據(jù)不同的需要,我們可以使用 apt-get 安裝 Go tools:
sudo apt-cache search golang
Fedora、CentOS或RHEL安裝Go語言
基于 Red Hat 的 Linux 發(fā)行版本都可以使用 yum 命令來進行安裝:
sudo yum install golang
要查看當前系統(tǒng)安裝的 Go 語言版本可以使用如下命令:
go version
接下來還是在 Home 目錄(例如 ~/workspace)創(chuàng)建一個 workspace 目錄并定義 GOPATH 環(huán)境變量指向該目錄,這個目錄將被 Go 工具用于保存和編輯二進制文件。
mkdir ~/workspaceecho 'export GOPATH="$HOME/workspace"' ~/.bashrcsource ~/.bashrc
根據(jù)不同的需要,我們可以使用 yum 安裝 Go tools:
yum search golang
為Linux手動安裝Go語言
由于大家使用的 Linux 源不盡相同,也不見得是最新版本或需要版本的 Go 語言包,所以我們說一下如何手動安裝指定版本。
1.下載 Go 語言文件
64-bit Linux
wget
32-bit Linux
wget
Golang 下載
2.解壓二進制文件到 /usr/local 目錄
sudo tar -xzf go1.4.2.linux-xxx.tar.gz -C /usr/local
3.使用 vi 在環(huán)境變量配置文件 /etc/profile 中增加如下內(nèi)容:
export PATH=$PATH:/usr/local/go/bin
4.檢查 Go 語言版本
go version
5.定義 GOPATH 環(huán)境變量到 workspace 目錄
export GOPATH="$HOME/workspace
需要解決更多l(xiāng)inux問題,詳情請看
望采納
Go的三種安裝方式
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的安裝目錄。
關(guān)于上面的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 在Linux下其實根本不用安裝,解壓后復制到usr/local下即可,再配置一下路徑:
export PATH=$PATH:/usr/local/go/bin
不過學習程序最好還是在linux環(huán)境下,這是因為,
精彩在這里:
除動態(tài)語言外,靜態(tài)語言都會產(chǎn)生目標文件o或obj,然后找到庫文件后鏈接成可執(zhí)行文件。C語言如此,Go語言也是如此,你可用go run -work運行程序時來發(fā)現(xiàn)運行的目錄。這個目錄在linux下就是/tmp目錄,為加快速度和減少硬盤損耗(個人認為這更重要),可把tmp設置成tmpfs格式。
可加入一行:none /tmp tmpfs default 0 0
或加入mount tmpfs /tmp -t tmpfs -o size=128m
減少硬盤讀取就是運行流暢。