Go語言實戰(zhàn)
本文通過從無到有創(chuàng)建一個利用Go語言實現(xiàn)的非常簡單的HttpServer,來讓大家熟悉利用Go語言時的基本流程,工具和代碼的基本布局,為學(xué)習(xí)Go語言時碰到的環(huán)境問題掃清障礙。
以一個簡單的場景來舉例,有一個可復(fù)用的庫(hugger)和一個使用這個庫的應(yīng)用程序(hugmachine),代碼都托管在Github上。
代碼布局
go工具
go命令是一個管理Go源代碼的工具,可以用來做很多事情:
- build 編譯包和依賴
- clean 刪除對象文件
- fmt 對代碼風(fēng)格格式化
- get 下載并安裝包和依賴(遞歸地進(jìn)行)
- install 編譯并安裝包和依賴
- list 列出所有的包
- run 編譯和運(yùn)行Go程序
- test 運(yùn)行以包為單位的測試
- vet 做Go源代碼的檢查,發(fā)現(xiàn)編譯器沒有發(fā)現(xiàn)的錯誤
go命令大部分(除了run)都是以包為單位的,而不是單個的文件。
概述
go這個工具要求程序猿按照特定的方式把代碼組織在一起,主要體現(xiàn)在:
- Go程序猿通常把所有的Go代碼(多個項目)都放到一個工作區(qū)(workspace)下,這跟其他的編程環(huán)境不一樣,其他的編程環(huán)境里,通常是每個項目有各自的工作區(qū)
- 一個工作區(qū)下可以包含不同版本控制(Git, VCS)下的代碼倉庫
Go語言中,一個工作區(qū)的根目錄下包含三個基本的目錄:
- src 里面是Go的源代碼文件
- pkg