Go 語言被設計成一門應用于搭載 Web 服務器,存儲集群或類似用途的巨型中央服務器的系統編程語言。對于高性能分布式系統領域而言,Go 語言無疑比大多數其它語言有著更高的開發效率。它提供了海量并行的支持,這對于游戲服務端的開發而言是再好不過了。最近黑馬程序員剛出了一套go語言的教程,還不錯,可以去視頻庫里下載,或者管播妞要也行。
成都創新互聯公司是一家專注于成都做網站、成都網站建設與策劃設計,洛龍網站建設哪家好?成都創新互聯公司做網站,專注于網站建設十年,網設計領域的專業建站公司;建站業務涵蓋:洛龍等地區。洛龍做網站價格咨詢:18980820575
《Go語言學習筆記》(雨痕)電子書網盤下載免費在線閱讀
鏈接:
提取碼:qyzq ?
書名:Go語言學習筆記
豆瓣評分:8.1
作者:?雨痕
出版社:?電子工業出版社
出品方:?博文視點
出版年:?2016-6
頁數:?468
內容簡介
作為時下流行的一種系統編程語言,Go 簡單易學,性能很好,且支持各類主流平臺。已有大量項目采用 Go 編寫,這其中就包括 Docker 等明星作品,其開發和執行效率早已被證明。本書經四年多逐步完善,內容覆蓋了語言、運行時、性能優化、工具鏈等各層面知識。且內容經大量讀者反饋和校對,沒有明顯的缺陷和錯誤。上卷細致解析了語言規范相關細節,便于讀者深入理解語言相關功能的使用方法和注意事項。下卷則對運行時源碼做出深度剖析,引導讀者透徹了解語言功能背后的支持環境和運行體系,諸如內存分配、垃圾回收和并發調度等。本書不適合編程初學入門,可供有實際編程經驗或正在使用Go 工作的人群參考。
作者簡介??
自 1996 年從事計算機軟件開發工作以來,已 20 春秋。期間供職于北大方正、西單電子商務、九城數碼、知乎等公司。主要從事核心開發、架構設計,以及部分管理工作。
除了Java、Python和JavaScript之外,如果要開始學習一門新語言的話,我想應該是Go!
Go語言正在被越來越多的公司使用。我們公司的后端服務已經全面采用Go語言實現了。
最開始接觸Go語言是去年將一份Go代碼“翻譯”成Python并集成到測試平臺上,說來也挺神奇,我從來沒學過Go卻完成了這個工作,這也側面反應了Go的語法還是很平易近人的。
今年,在海翔飛調崗之后已經沒有太多時間寫代碼了,但如果要開始學習一個新的語言或技術的話,我最想學的是Go!
目前來看,Go似乎還并沒有太多測試人員使用的場景,不過,我之前介紹過的BDD行為驅動框架gauge是由Go開發的,當然,它也支持使用Go來編寫BDD測試代碼。
對于,已經有一定開發經驗的同學,如何快速的開始學習Go語言呢?我這里給一些思路。
#### 第一步:下載和安裝
在配置環境的時候你需要重點了解GOROOT、GOPATH的作用。
你還要準備一款稱手的編輯器,如果你像我一樣,一直都在使用VS Code的話,那么就它就可以了。
#### 第二步:從hello world開始
先運行一個hello world程序,認識Go語言的語法。
package main
import ( ? ?"fmt")
func main(){
fmt.Println("helloworld!")
}
#### 第三步:熟悉Go的語法
接下來,你可能要花一周左右的時間熟悉Go語言的語法。比如,變量定義、if/for、函數、Map、跨文件的程序調用…等,當然,還有一些Go特有的知識。
當然,我更喜歡看視頻教程,雖然質量參差不齊,但我仍然覺得看視頻比我自己看書更有效率。
熟悉一段Go代碼:
package main
import"fmt"
func myFunc() {
i := 0
Here: ? //這行的第一個詞,以冒號結束作為標簽
fmt.Println(i)
i++ ? ?if i 10{ ? ? ? ?goto Here ? //跳轉到Here去
}
}func main() { ? ?//調用函數
myFunc()
}
#### 第四步:Go如何做單元測試
針對Go做測試也非常簡單。比如,這是一個被測試文件:add.go。
package test_demofunc Add(a int, b int) int{ ? ?return a + b
}
下面針對Add()函數編寫測試用例,test_add.go
package test_demo
import ( ? ?"testing")
func TestAdd1(t *testing.T){
r:= Add(1, 2) ? ?if r !=3{
t.Errorf("Add(1, 2)failed. Got %d, expected 3.", r)
}
}
func TestAdd2(t *testing.T){
r:= Add(2, 2) ? ?if r !=4{
t.Errorf("Add(2, 2)failed. Got %d, expected 4.", r)
}
}
你只需要執行?go test?命令就可以運行上面的測試了。
#### 第五步:從哪兒找第三方庫
當然,你只學習go語言本身,基本是做不了什么事的,必須要使用第三方擴展庫。
這里羅列了Go語言的第三方庫,通過這些第三方庫的介紹,我們也可以大概知道Go可以用來干什么。
如果你知道庫的名字的話,也可以在這個網站上搜索。
據我了解,Go的第三方庫大多都在GitHub上面。
#### 第六步:用Go做Web開發
Go是靜態語言,而且支持并發編程,所以,他有天然的性能優勢,大多公司主要使用Go也是開發后端服務(即API)。
終于到了實戰階段,如果我們真的要掌握一門語言,那么一定要用它來開發一個項目出來。這個過程大概需要一個月。
Beego是Go下在主流的Web開發框架,資料相對比較豐富,而且有完善的文檔。你可為此制定一個目標,比如用它來開發一個Blog,為此,你需要詳細閱讀Beego文檔,以及學習相關的Web開發技術。
等你完成這個項目的時候,我想你已經會使用Go語言了。
當客戶端在 發出POST請求時/albums,您希望將請求正文中描述的專輯添加到現有專輯數據中。
為此,您將編寫以下內容:
1、編寫代碼
a.添加代碼以將專輯數據添加到專輯列表。
在此代碼中:
1)用于Context.BindJSON 將請求正文綁定到newAlbum。
2) album將從 JSON 初始化的結構附加到albums 切片。
3)向響應添加201狀態代碼,以及表示您添加的專輯的 JSON。
b.更改您的main函數,使其包含該router.POST函數,如下所示。
在此代碼中:
1)將路徑中的POST方法與 /albumspostAlbums函數相關聯。
使用 Gin,您可以將處理程序與 HTTP 方法和路徑組合相關聯。這樣,您可以根據客戶端使用的方法將發送到單個路徑的請求單獨路由。
a.如果服務器從上一節開始仍在運行,請停止它。
b.從包含 main.go 的目錄中的命令行,運行代碼。
c.從不同的命令行窗口,用于curl向正在運行的 Web 服務發出請求。
該命令應顯示添加專輯的標題和 JSON。
d.與上一節一樣,使用curl檢索完整的專輯列表,您可以使用它來確認添加了新專輯。
該命令應顯示專輯列表。
當客戶端向 發出請求時GET /albums/[id],您希望返回 ID 與id路徑參數匹配的專輯。
為此,您將:
a.在您在上一節中添加的函數下方postAlbums,粘貼以下代碼以檢索特定專輯。
此getAlbumByID函數將提取請求路徑中的 ID,然后找到匹配的專輯。
在此代碼中:
(1)Context.Param用于從 URL 中檢索id路徑參數。當您將此處理程序映射到路徑時,您將在路徑中包含參數的占位符。
(2)循環album切片中的結構,尋找其ID 字段值與id參數值匹配的結構。如果找到,則將該album結構序列化為 JSON,并將其作為帶有200 OK HTTP 代碼的響應返回。
如上所述,實際使用中的服務可能會使用數據庫查詢來執行此查找。
(3)如果找不到專輯,則返回 HTTP 404錯誤。
b.最后,更改您的main,使其包含對router.GET的新調用,路徑現在為/albums/:id ,如以下示例所示。
在此代碼中:
(1)將/albums/:id路徑與getAlbumByID功能相關聯。在 Gin 中,路徑中項目前面的冒號表示該項目是路徑參數。
a.如果服務器從上一節開始仍在運行,請停止它。
b.在包含 main.go 的目錄中的命令行中,運行代碼以啟動服務器。
c.從不同的命令行窗口,用于curl向正在運行的 Web 服務發出請求。
該命令應顯示您使用其 ID 的專輯的 JSON。如果找不到專輯,您將收到帶有錯誤消息的 JSON。
恭喜!您剛剛使用 Go 和 Gin 編寫了一個簡單的 RESTful Web 服務。
本節包含您使用本教程構建的應用程序的代碼。
之前沒有go語言,現在黑馬更新了c/c++的課程,已經增加了go語言開發實戰部分,進一步提升學員的競爭力,助力學員找到一個好工作。
網頁題目:go語言筆記視頻教程,go語言實戰筆記
本文路徑:http://m.kartarina.com/article40/heiseo.html
成都網站建設公司_創新互聯,為您提供網站制作、手機網站建設、標簽優化、網站排名、網站導航、網站收錄
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯