欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

如何學習go語言

錢琪琛2年前22瀏覽0評論

如何學習go語言?

Go語言這幾年發展的確實不錯,雖然沒有實現趕超C++的目標,但是已經很接近了。而這些年也出現了一些Go語言的有名的項目,比如 kubernetes、Docker、Etcd、Tidb等項目。

我這里整理了一份關于Go語言的學習路線,也可以輔助你做判斷。

Go語言是一門全新的靜態類型開發語言,具有自動垃圾回收、豐富的內置類型、函數多返回值、錯誤處理、匿名函數、并發編程、反射、defer等關鍵特征。從語言層面來說天然支持并發,可以充分利用CPU多核,并且非常適合用來進行服務器編程、網絡編程和分布式編程等。

在云計算領域,用Go語言編寫的云基礎項目如Docker、Kubernetes都取得了巨大的成功,別外還有知名的項目如Etcd、consul、flannel等,也都是使用Go語言實現的。

為你提供幾張學習Go語言的線路圖,從基礎到進階、Web編程、微服務的學習,你可以參考一下。

基礎學習

書籍推薦

《Head First Go語言程序設計》、《Go語言學習筆記》、《Go語言趣學指南》、《Go語言編程》

當然,不必所有的書都讀,找其中一本學習即可。

在線學習Go語言資料

Go By Example 中文版 : https://gobyexample-cn.github.io,使用代碼示例來學習 Go 語言。 Go 面試題 : http://www.topgoer.cn/docs/gomianshiti/mianshiti,也是使用代碼示例來講解 Go,用來準備面試也是很好的。 無聞大佬的在線入門指南 : https://github.com/unknwon/the-way-to-go_ZH_CN跟著單元測試學習 Go : https://github.com/quii/learn-go-with-tests,有中文版。

初級練手項目

starcharts : https://github.com/caarlos0/starcharts,項目的功能是生成 Github 上面的項目的 star 趨勢圖,核心代碼不多,用來練手很合適。 gorched : https://github.com/zladovan/gorched,使用 Go 寫的一個小游戲。 pacgo : https://github.com/danicat/pacgo,也是使用 Go 寫的一個小游戲,每一步都有詳細的描述和代碼實現。 wechat-go : https://github.com/songtianyi/wechat-go,微信 web 版 API 的 Go 實現,模擬微信網頁版的登錄/聯系人/消息收發等功能。

Go語言進階

書籍推薦

《Go程序設計語言》、《Go專家編程》、《Go語言高級編程》、《Go并發編程》

在線學習Go語言資料

1.《Go 語言設計與實現》: https://draveness.me/golang。

2.《Go 語言高級編程》: https://chai2010.cn/advanced-go-programming-book。

進階練手項目

rosedb : https://github.com/roseduan/rosedb,一個用 Go 實現的簡易高效的 k-v 存儲引擎。 gochat : https://github.com/LockGit/gochat,一個 Go 語言實現的輕量級 im 系統,對網絡方面熟悉或者感興趣的可以看看。 7DaysGolang : https://github.com/geektutu/7days-golang,7 天使用 Go 從零實現 web 框架、分布式緩存、ORM 框架,、RPC 框架,代碼量不多,但是質量挺不錯的

Go Web編程

書籍推薦

《Go Web編程》

在線學習資料

可以學習下 web 框架 Gin、beego:兩個框架都比較的流行,選擇其中一個其實就可以了,推薦 Gin。官方文檔都有中文,照著 demo 敲一下,了解下怎么處理 HTTP 請求的。

其次還需要掌握一下比較流行的 ORM 框架 Gorm,有官方中文文檔,照著 demo 敲一下基本上兩天就能掌握了,后面遇到不會的再來查。

Web框架相關的,基本上看官方文檔就可以了,就不用再去找專門介紹的書籍,沒有比官方文章更正宗的資料了。

除框架之外,你還需要學會的是包括但不限于:

web的邏輯,Http協議,grpc,session,cookie等這些web的基礎知識數據庫方面MySQL、Redis、MongoDB等中間件Kafka、Etcd等文件文件處理,XML、JSON、正則等安全與加密,預防CSRF攻擊、XSS攻擊、SQL注入等,加密解密等

Go Web項目推薦

gin-vue-admin : https://github.com/flipped-aurora/gin-vue-admin,使用 Gin 框架構建的后臺管理系統。 ferry : https://github.com/lanyulei/ferry,基于 Gin + Vue + Element UI 前后端分離的工單系統。 go-admin : https://github.com/go-admin-team/go-admin,Gin + Vue + Element UI 的前后端分離權限管理系統。

Go 微服務

目前 Go 在微服務中的應用也比較廣泛,但說實話,微服務是一個太龐大的話題,你不可能把每一個核心的問題都能夠搞清楚,而且也沒條件,或許只能在公司的具體的微服務生產環境中,才能夠對相關的概念有更加深刻的體會。

推薦一本微服務概述的基礎書籍《微服務設計》、《微服務架構設計模式》,可以幫助你理解微服務的建模、集成、測試、部署和監控的一些基礎知識。

其次,你可以看一下《Go微服務實戰》這本書,看后半部分即可,里面其實介紹的還是關于微服務方面的知識。

推薦 Go 語言的微服務框架 GoKit、GoMicro、go-zero、kratos,可以隨便選擇一個,理解其基本的用法、設計等等。其中 go-zero 和 kratos 是國內開源的,因此都有比較詳細的中文文檔。

在線學習的資料:

https://ewanvalentine.io/microservices-in-golang-part-1

手把手實現一個簡單的 Go 微服務項目,你可以通過這個項目來學習微服務的相關知識,并且有中文版。

Go語言原理研究

如果你對Go語言底層原理感興趣的話,可以看下這本書《Go語言底層原理剖析》。

開源項目學習

在項目開發過程中,也會用到各種開源項目。一開始沒必要直接鉆研源碼,先要學習開源項目背景,能解決什么問題,開源作者的項目理念,使用了哪些技術等等。

這些清楚以后,可以找自己感興趣的技術點或者模塊去針對性的學習,千萬不要想著一開始就想一網打盡式的學習,沒有針對性意味著沒有重點,沒有重點很大概率就會白學或者學到的就會很少。

先推薦幾個經典的開源項目供你參考:

www.docker.com 使用 docker 來做虛擬化https://github.com/nsqio/nsq 學習消息隊列,學習 channel 和分布式https://github.com/coreos/etcd分布式應用如果你有自己比較看好的開源項目會更好,興趣永遠是前進的第一步。

相對前幾年,Go語言的書籍、教程,各種文章都如雨后春筍一般越來越多,學習起來也更加方便,但是同時也要注意不要過度陷入知識碎片而無法自拔,最重要的還是要去系統去學習一下,針對性的練習、實踐和應用。