【云駐共創】Golang從入門到進階

      網友投稿 1042 2025-04-01

      Golang從入門到進階

      1. Go語言入門

      1.1 簡介

      Go語言語法簡單,Go語言保證了既能到達靜態編譯語言的安全和性能,又達到了動態語言開發速度和易維護性,有人形容Go語言:Go = C + Python, 說明Go語言既有C靜態語言程序的運行速度,又能達到Python動態語言的快速開發。Go語言之所以被稱為21世紀的C語言,不僅在于它精簡的語法和高效的開發,更在于它具有原生支持和易于使用的高并發的特性。

      與C語言相同的是Go語言也有指針,能直接操作內存。這也就意味著Go的運行速度是很快的。另外Go語言也能原生支持C語言,CGO模塊也大受好評。

      附上Go語言基礎知識點思維導圖

      作為一款編譯型語言,Go的程序只需要簡單幾行命令就能在windows下打包成二進制文件并上傳到服務器運行,無需安裝第三方的包依賴。并且內置runtime,支持垃圾回收。還有語言層面上支持并發,這個就是Go最大的特色。天生的支持并發,Go就是基因里面支持的并發。

      下面兩張圖就很形象說明Go語言的并發。

      將線程再分成更細的協程,使得中間等待時候更少,大大提高效率!

      所以說,在這個數據量龐大的社會,使用go語言進行并發操作是必備且非常重要的。

      1.2 學習資料與網站

      Go常用編輯器:

      Goland:https://www.jetbrains.com/go/download/

      vscode:https://code.visualstudio.com/

      Go基礎編程:

      Go語言中文文檔:https://studygolang.com/pkgdoc

      Go語言菜鳥教程:https://www.runoob.com/go/go-tutorial.html

      Go語言基礎教程:https://github.com/quii/learn-go-with-tests

      Go Demo:https://gobyexample.com/

      Go高級編程:

      Go調度器GPM模型:https://www.zhihu.com/question/20862617/answer/27964865**

      Go的內存布局:https://golang.org/ref/mem

      Go指針高級:http://www.sohu.com/a/168217543_99930294

      Go與C混合編程 CGO模塊:https://github.com/golang/go/wiki/cgo

      垃圾自動回收機制 GC:https://blog.csdn.net/weixin_45304503/article/details/119729349

      channel阻塞機制:https://blog.csdn.net/weixin_45304503/article/details/119359126

      入門推薦書籍:

      電子書《The Way To Go》:https://github.com/Unknwon/the-way-to-go_ZH_CN

      《Go語言核心編程》

      《Go語言編程設計》

      《Go語言并發編程實戰》

      2. Go進階應用

      2.1 Web 開發

      2.1.2 簡介

      在我們學習Go語言的基礎語法之后,我們可以做一個web網站。那我們用go語言的GIN框架來舉例,Gin是一款輕量級的WEB框架。

      特點:

      封裝優雅,降低入門門檻。

      API友好,支持許多出色的中間件。

      源碼注釋明確,降低閱讀門檻

      快速靈活,容錯方便。

      功能概要:

      RESTful 路由

      數據綁定

      jwt,cors等中間件的使用

      會話控制

      附上思維導圖:

      做一個web網站,除了需要Gin框架之外,我們還需要GORM框架。

      GORM是Golang語言中一款性能極好的ORM庫,Gin框架經常和Gorm搭配使用。

      功能概覽:

      關聯(Has One, Has Many, Belongs To, Many To Many, 多態)

      鉤子函數Hook(在創建/保存/更新/刪除/查找之前或之后)

      預加載

      事務

      復合主鍵

      讀寫分離

      附上思維導圖:

      2.1.2 學習資料及網站

      Go中文社區:

      GIN:

      源碼:https://github.com/gin-gonic/gin

      中文文檔:https://www.kancloud.cn/shuangdeyu/gin_book/949412

      Gin框架知識點總結:https://blog.csdn.net/weixin_45304503/article/details/120381359

      GORM:

      源碼:https://github.com/go-gorm/gorm

      中文文檔:https://learnku.com/docs/gorm/v2

      Gorm框架知識點總結:https://blog.csdn.net/weixin_45304503/article/details/119986588

      一些基于Gin+Gorm的應用:

      Gin+Gorm 電子商場:https://github.com/congz666/cmall-go

      Gin+Gorm 視頻彈幕網站:https://github.com/CocaineCong/BiliBili

      Gin+WebSocket 聊天室:https://github.com/hezhizheng/go-gin-chat

      Gin+Vue+Admin 后臺管理系統:https://github.com/flipped-aurora/gin-vue-admin

      推薦書籍:

      《Go Web編程》

      2.2 微服務

      2.2.1 簡介

      將應用程序分解成一套較小的互連服務,將單體應用拆分為一系列服務,每個服務都輕量級單獨部署,運行在自己的進程中,共同組件整個系統中。每個服務注重自己的核心能力的開發,微服務組件之間采用輕量級別通信方式進行通信,包括RESTful APi。那Go語言的微服務框架有哪些需要學習的呢?

      Protobuf語法 / Protobuf序列化原理

      服務發現 / Consul內部原理

      節點服務集群

      Docker 環境的搭建

      RPC 簡介及原理介紹

      RPC 與 Protobuf 結合

      gRPC 的使用

      go-micro 框架的使用

      2.2.2 學習資料以網站

      gRPC:

      中文文檔:http://doc.oschina.net/grpc?t=57966

      go-micro:

      **中文手冊:https://www.kancloud.cn/linimbus/go-micro/529030

      推薦書籍:

      《Go語言高并發與微服務實戰》

      《Go微服務實戰》

      2.3 Cloud 云

      2.3.1 簡介

      如今,我們已迎來了云原生時代,我們所有的web程序,app應用都是在云端運行。而云端就是編譯型語言Go語言的主場。幾行命令,就能快速部署到云端。我們所熟知的容器化工具Docker和編排工具K8S也是基于Go語言的。

      對于開發人員來說,容器技術為應用的部署提供了沙盒環境,開發者可以在獨立的容器運行和管理應用程序進程,Docker提供的抽象層使得開發人員之間可以保持開發環境相對的一致,因此Docker適合用于應用隔離,搭建沙箱環境。此外,由于Docker容器的輕量化,它也被適用于進行持續集成和持續部署。

      我們用Docker舉例子,容器化技術到底有什么優勢呢?

      更高效的利用系統資源

      更快速的啟動時間

      一致的運行環境

      持續交付和部署

      更輕松的遷移

      更輕松的維護和擴展

      Docker的核心架構

      我們通常會編寫Dockerfile對鏡像進行build,然后在容器中跑。

      鏡像: 一個鏡像代表一個應用環境,他是一個只讀的文件,如 mysql鏡像,golang鏡像,nginx鏡像等

      容器: 鏡像每次運行之后就是產生一個容器,就是正在運行的鏡像,特點就是可讀可寫

      【云駐共創】Golang從入門到進階

      倉庫:用來存放鏡像的位置,類似于maven倉庫,也是鏡像下載和上傳的位置

      dockerFile:docker生成鏡像配置文件,用來書寫自定義鏡像的一些配置

      tar:一個對鏡像打包的文件,日后可以還原成鏡像

      Dockerfile的解析過程

      2.3.2 學習資料及網站

      Docker:

      官網:https://www.docker.com/

      中文文檔:https://www.kancloud.cn/jingyucloud/docker/216412

      推薦書籍:

      《深入淺出Docker》

      《CKA/CKAD應試指南:從Docker到Kubernetes完全攻略》

      2.4 BlockChain 區塊鏈

      2.4.1 簡介

      區塊鏈是一個顛覆舊模式的新技術,是一種按照時間順序將數據區塊以順序相連的方式組合成的一種鏈式數據結構,并以密碼學方式保證的不可篡改和不可偽造的分布式賬本。最近的元宇宙大火,也帶動了區塊鏈的熱度。

      區塊鏈應用最為著名的應用就是比特幣,以太坊和超級賬本。其中的以太坊和超級賬本這兩個區塊鏈應用都基于Go語言。

      特點:

      透明可信

      防篡改可追溯

      隱私安全保障

      系統高可靠性

      以太坊的智能合約是solidity,我們可以用Go語言去調用以太坊智能合約。

      超級賬本的智能合約是Go語言,Go語言搭建超級賬本Fabric項目的兼容性更好。

      以下列舉了以太坊和超級賬本的區別

      2.4.2 學習資料及網站

      區塊鏈這方面的學習資料相對比較少,建議多看書,多研究以下超級賬本的源碼。因為實際開發應用中,超級賬本fabric是用的最多的。

      以太坊:

      Go語言調用以太坊:https://blog.csdn.net/weixin_45304503/article/details/119430280

      Go語言調用智能合約:https://blog.csdn.net/weixin_45304503/article/details/119466277

      超級賬本Fabric:

      源碼:https://github.com/hyperledger/fabric

      官方文檔:https://hyperledger-fabric.readthedocs.io/en/latest/

      區塊鏈推薦書籍:

      **《區塊鏈技術及應用》

      《Hyperledger Fabric技術內幕》

      3. 總結

      Go語言未來可期,Go語言的樂趣不止于此,我們一起加油吧!

      本文整理自華為云社區內容共創活動:任務29 Go語言如何進階?

      查看活動詳情:https://bbs.huaweicloud.com/blogs/308924

      Docker Go 區塊鏈 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel表格輸入身份證的教程(身份證怎么輸入到excel表格)
      下一篇:word文檔怎么下載(word文檔怎么下載仿宋GB2312)
      相關文章
      久久亚洲精品成人av无码网站 | 亚洲风情亚Aⅴ在线发布| 久久精品国产亚洲AV无码偷窥| 亚洲综合AV在线在线播放| 国产黄色一级毛片亚洲黄片大全| 亚洲Av无码乱码在线znlu| 国产精品亚洲专区一区| 亚洲a无码综合a国产av中文| 亚洲AV色欲色欲WWW| 亚洲乱码日产精品一二三| 亚洲精品456人成在线| 在线观看亚洲AV日韩A∨| 亚洲中文字幕无码一去台湾| 中文字幕乱码亚洲精品一区| 亚洲性无码一区二区三区| 亚洲欧洲无码AV不卡在线| 亚洲精品GV天堂无码男同| 久久人午夜亚洲精品无码区| 日韩亚洲国产综合久久久| 亚洲免费在线观看| 国产亚洲大尺度无码无码专线 | 亚洲精品GV天堂无码男同| 亚洲乱亚洲乱妇无码| 亚洲国产精品成人AV在线| 国产精品亚洲专区在线播放| 亚洲乱码中文字幕手机在线| 不卡一卡二卡三亚洲| 日韩va亚洲va欧洲va国产| 亚洲AV日韩精品久久久久久 | 亚洲人成人网站18禁| 亚洲AⅤ男人的天堂在线观看| 国产精品亚洲精品日韩动图| 亚洲国产成人VA在线观看| 国产国拍亚洲精品福利| 国产av无码专区亚洲av桃花庵| 666精品国产精品亚洲| 亚洲一级毛片在线观| 亚洲JIZZJIZZ妇女| 亚洲男女内射在线播放| 亚洲av中文无码乱人伦在线播放 | 亚洲av永久无码精品秋霞电影秋 |