原创 Go工具之generate

Go語言提供了一系列強大的工具,靈活使用這些工具,能夠讓我們的項目開發更加容易,工具集包含如下。 bug start a bug report build compile packages and de

原创 Golang 定時器底層實現深度剖析

文章目錄概述Timer 的底層實現TimerbuckettimersBucket 的結構: 最小四叉堆timerproc 的調度爲什麼是 64 個 timer bucket?爲什麼是四叉堆sleep 的實現總結參考 本文將基於 G

原创 Actor 還是 CSP?Go 中的併發模式還能講這麼細緻

文章目錄基本概念瞭解併發和並行CSP vs Actor 模型ActorCSP區別GO 中的併發模型併發設計模式Barrier 模式使用場景代碼實現TipsFuture 模式使用場景代碼實現Pipeline 模式使用場景代碼實現Wo

原创 Slice實現原理分析

衆所周知,在golang中,slice(切片)是我們最常使用到的一種數據結構,是一種可變長度的數組,本篇文章我們主要結合源碼來介紹一下slice的底層實現,以及在使用slice時的一些注意事項。 文章目錄slice結構體slice

原创 Micro In Action:Pub/Sub

本文是Micro[1]系列文章的第三篇。我們將以實際開發微服務爲主線,順帶解析相關功能。從最基本的話題開始,逐步轉到高級特性。 接下來談談異步消息處理。要構建一個可伸縮、高容錯、高併發的系統, 異步消息處理是一個關鍵技術。這種技術

原创 你知道幾種Go併發控制方式?

文章目錄引言WaitGroupChannelContext總結文獻 引言 Golang中通過go關鍵字就可開啓一個goroutine,因此,在Go中可以輕鬆寫出併發代碼。但是,如何對這些併發執行的groutines有效地控制? 提

原创 Go Vet 命令:超出預期的強大

文章目錄前言內置分析器Atomiccopylocksloopclosurelostcancelstdmethodsstructtag自定義分析器自定義分析命令參考資料 前言 Go vet 命令在編寫代碼時非常有用。它可以幫助您檢測

原创 使用gorilla/mux增強Go HTTP服務器的路由能力

今天這篇文章我們將會爲我們之前編寫的 HTTP服務器加上覆雜路由的功能以及對路由進行分組管理。在之前的文章《深入學習用 Go 編寫HTTP服務器》中詳細地講了使用 net/http進行路由註冊、監聽網絡連接、處理請求、安全關停服務

原创 Go 編譯器內核:給 Go 新增一個語句

文章目錄任務 —— 增加新的語句Go 編譯器的高級結構掃描解析創建 AST類型檢查分析並重寫 AST嘗試結論部分 1Appendix - 構建 Go 的工具鏈參考資料 任務 —— 增加新的語句 很多語言都有 while 語句,在

原创 算法題:滑動窗口----- 顏色分類

給定一個包含紅色、白色和藍色,一共 n 個元素的數組,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色、白色、藍色順序排列。 此題中,我們使用整數 0、 1 和 2 分別表示紅色、白色和藍色。 注意: 不能使用代碼庫中的排序

原创 最流行的 Web 框架 Gin 源碼閱讀

文章目錄前言gin框架預覽request數據是如何流轉的HTTP是如何建立起來的net/http是如何建立 socket的爲什麼會出現很多go框架文獻 前言 最近公司大部分項目開始往golang換, api的框架選定使用gin,

原创 Go 語言開發者的神器—Gotx

文章目錄簡介用法交互式運行環境REPL直接運行Go語言代碼文件使用Goxt內置的代碼編輯器直接運行Gotx雲端Gitee庫中的例子代碼查看Gotx雲端Gitee庫中的例子代碼直接遠程執行Gotx代碼加密源代碼文件Encrypt s

原创 go中的定時任務--gron

文章目錄簡介快速使用時間格式自定義任務一點源碼自定義時間策略總結參考 簡介 gron是一個比較小巧、靈活的定時任務庫,可以執行定時的、週期性的任務。gron提供簡潔的、併發安全的接口。我們先介紹gron庫的使用,然後簡單分析一下源

原创 必會技能:簡明的 Go Protocol Buffer 教程

在這個教程裏面,我們將學習如何在你的 Go 應用中使 protocol Buffers 數據格式。我們將詳細講述這種數據格式,以及爲什麼這種數據格式優於傳統的數據格式,例如 XML 甚至 JSON。在我們寫更多複雜的例子之前,我們

原创 Go 框架解析 -iris

文章目錄前言安裝iris的生命週期關鍵代碼解析結語文獻 前言 之前已經發過一篇過於beego的文章《golang框架解析-beego》,今天帶來的是go框架iris的解析,主要講解iris框架的一個生命週期過程。 在讀這篇文章之前