最近用ios開發(fā)一個(gè)簡單的app捌臊,先寫一個(gè)簡單的接口豁鲤,簡單人做簡單事。之前看過java惫恼,被各種框架繞得不行档押,后來看到go語言,正如谷歌首席軟件工程師羅布派克(Rob Pike)說:我們之所以開發(fā)Go祈纯,是因?yàn)檫^去10多年間軟件開發(fā)的難度令人沮喪令宿。非常簡單,好了不廢話了腕窥。整理下這2天的內(nèi)容粒没。
服務(wù)器是用阿里云的ubuntu操作系統(tǒng)。
先安裝go語言開發(fā)環(huán)境簇爆,遠(yuǎn)程登錄癞松,輸入命令行:
sudo apt-get install golang-go
安裝好后,配置下go的環(huán)境變量冕碟。環(huán)境變量可以讓你在不指定目錄的情況下拦惋,編譯,運(yùn)行各項(xiàng)目安寺。非常方便~
編譯~/.bashrc 文件
vi ~/.bashrc
然后按 i 插入厕妖,滾動到最后一行,添加如下代碼
export GOPATH=$HOME/home/go_app
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
添加后如下圖:
按esc鍵盤挑庶,輸入:wq 保存并且退出言秸。
說明下,$HOME 是當(dāng)前的用戶目錄迎捺,我用登錄的時(shí)候是在root目錄下举畸,后面的home/go_app是我自己建的,隨便取的名字~
讓配置直接生效凳枝,命令行輸入
source ./bashrc
查看設(shè)置好沒抄沮,命令行輸入
go env
看到如下
看到剛才配置的2個(gè)都在上面了。
然后接下來我們來創(chuàng)建我們自己的項(xiàng)目岖瑰,go語言的工作環(huán)境配置如下
root@huangjianyu:~/home# tree
.
`-- go_app
|-- bin //可執(zhí)行文件目錄
| `-- TQBProject
`-- src //模塊叛买,項(xiàng)目目錄
|-- testproject
| `-- hello.go
`-- TQBProject
`-- helloserver.go
這次我是建了一個(gè)TQBProject的項(xiàng)目,為啥叫這個(gè)名稱蹋订,我喜歡~
在上面的環(huán)境變量下率挣,我們自己建src跟bin目錄,然后在src下建立我們自己的項(xiàng)目名稱TQBProject
cd .../go_app/src
mkdir TQBProject
cd TQBProject
然后開始建立我們的第一個(gè)go文件
vi helloserver.go
內(nèi)容如下
package main
import (
"fmt"
"net/http"
"strings"
"log"
)
func sayhelloName(w http.ResponseWriter, r *http.Request) {
r.ParseForm() //解析參數(shù)露戒,默認(rèn)是不會解析的
fmt.Println(r.Form) //這些信息是輸出到服務(wù)器端的打印信息
fmt.Println("path", r.URL.Path) //打印地址
fmt.Println("scheme", r.URL.Scheme)
fmt.Println(r.Form["url_long"])
for k, v := range r.Form { //遍歷所有參數(shù)
fmt.Println("key:", k)
fmt.Println("val:", strings.Join(v, ""))
}
fmt.Fprintf(w, "我是黃煎魚~~~~!") //這個(gè)寫入到w的是輸出到客戶端的
}
func main() {
dbTest()
http.HandleFunc("/", sayhelloName) //設(shè)置訪問的路由
// http.HandleFunc("/other", otherUrl) //設(shè)置訪問的路由
err := http.ListenAndServe(":8090", nil) //設(shè)置監(jiān)聽的端口
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
是不是非常簡單椒功?之后就開始編譯了捶箱。
1.cd到項(xiàng)目指定的目錄,然后執(zhí)行go build
2.也可以在任意目錄執(zhí)行go build 【項(xiàng)目模塊名】
go build TQBProject
//執(zhí)行
./TQBProject
然后在瀏覽器訪問
嗯大功告成~后面我們將會在supervisor來托管我們的進(jìn)程动漾。
參考1
https://www.digitalocean.com/community/tutorials/how-to-install-go-1-6-on-ubuntu-16-04
參考2
https://waylau.com/linux-ubuntu-golang-under-environment-variables/
參考3
https://nanxiao.gitbooks.io/golang-101-hacks/content/posts/go-build-vs-go-install.html
參考4
https://www.kancloud.cn/kancloud/web-application-with-golang/44128