Go語言愛好者周刊:第 122 期
這里記錄每周值得分享的 Go 語言相關(guān)內(nèi)容,周日發(fā)布。
本周刊開源(GitHub:polaris1119/golangweekly[1]),歡迎投稿,推薦或自薦文章/軟件/資源等,請提交 issue[2] 。
鑒于一些人可能沒法堅持把英文文章看完,因此,周刊中會盡可能推薦優(yōu)質(zhì)的中文文章。優(yōu)秀的英文文章,我們的 GCTT 組織會進行翻譯。
由于微信公眾號不支持外鏈,文章大量鏈接可通過文末「閱讀原文」查看。

題圖:GopherCon UK 2021
刊首語
本期是一道關(guān)于 array 的題目:
package?main
import?(
?"fmt"
)
func?main()?{
?v?:=?[...]int{1:?2,?3:?4}
?fmt.Println(len(v))
}
資訊
這是小版本,修復了一些 bug。
2021 年最后一個正式版本,更新特性不少。
3、Caire 1.4 發(fā)布[3]
內(nèi)容感知圖像大小調(diào)整庫。
文章
1、Go:用 kqueue 實現(xiàn)一個簡單的 TCP Server
這篇文章主要分為以下幾部分講解。首先,我們會先從理論出發(fā)設計我們的 TCP Server。然后,我們會去實現(xiàn)它的必要的模塊。最后我們會對整個過程進行總結(jié)以及思考。
這篇博文通過一個 Go 服務來探討一個典型 HTTP 請求的路由,涉及路由,中間件以及比如并發(fā)之類的相關(guān)問題。
Polar Signals 提供的持續(xù)分析工具可以和任何格式的 pprof 分析適配,Go 深度集成了 pprof 甚至支持了它的標簽特性。
鏡像精簡之道。
進行集成測試(或系統(tǒng)測試)通常意味著讓數(shù)據(jù)庫填充數(shù)據(jù),像 redis、elasticsearch 等,通常,我們的軟件與之交互的任何基礎設施都可以工作。
6、Go 企業(yè)應用案例分享:Go 用于支付和獎勵系統(tǒng)
今天分享 Go 在企業(yè)中的應用案例,該案例是美國運通公司(Express)。
當我開始使用新的 IDE 時,我不會尋找插件。為什么?因為我很少知道它們的存在。如果你和我一樣,此列表將為你提供一個很好的起點,可以找到 GoLand 插件以改善你的編碼體驗。
用 Go 編寫 API 服務,許多語言新手問的第一件事是:“我應該使用哪個框架?”。
Go 不是完全面向?qū)ο笳Z言,有一些面向?qū)ο竽J讲惶m合它。但經(jīng)過這些年的發(fā)展,Go 有自己的一些模式。今天介紹一個常見的模式:函數(shù)式選項模式(Functional Options Pattern)。
Go 1.18 標準庫新增了一個包:net/netip,大部分人可能用不上這個包,但這個包的設計思路以及和現(xiàn)有標準庫 IP 的比較值得學習。
Go 1.18 因為泛型引入 any,這實際上是 interface{} 的別名。
開源項目
1、geodist[4]
計算兩個地理點之間的距離。
2、FerretDB[5]
MongoDB 的替代品。之前叫 MangoDB,容易被人理解為碰瓷。
3、iso9660[6]
讀寫 ISO 文件的庫。
4、zinc[7]
全文搜索引擎,可作為 elasticsearch 的替代品。
5、hedgedhttp[8]
可減少長尾延遲的 http client 端。
6、CasaOS[9]
一個 Go 實現(xiàn)的簡單、易用、優(yōu)雅的開源家庭云系統(tǒng)。
資源&&工具
1、GopherCon UK 2021[10]
視頻放出。
2、Go Time 第 208 期[11]
Go 開源 12 周年了!談談這一切是如何開始的。
3、grimd[12]
一個快速的 DNS 代理。
4、lazygit[13]
git 命令的簡單 UI 終端。

5、GoLab 2021 大會視頻全集[14]
油管視頻。
訂閱
這個周刊每周日發(fā)布,同步更新在Go語言中文網(wǎng)[15]和微信公眾號[16]。
微信搜索"Go語言中文網(wǎng)"或者掃描二維碼,即可訂閱。
參考資料
polaris1119/golangweekly: https://github.com/polaris1119/golangweekly
[2]提交 issue: https://github.com/polaris1119/golangweekly/issues
[3]Caire 1.4 發(fā)布: https://github.com/esimov/caire
[4]geodist: https://github.com/jftuga/geodist
[5]FerretDB: https://github.com/FerretDB/FerretDB
[6]iso9660: https://github.com/kdomanski/iso9660
[7]zinc: https://github.com/prabhatsharma/zinc
[8]hedgedhttp: https://github.com/cristalhq/hedgedhttp
[9]CasaOS: https://github.com/IceWhaleTech/CasaOS
[10]GopherCon UK 2021: https://www.youtube.com/playlist?list=PLDWZ5uzn69ex0U5MmbKWorsTuVBgUePxw#gophercon2021uk
[11]Go Time 第 208 期: https://changelog.com/gotime/208
[12]grimd: https://github.com/looterz/grimd
[13]lazygit: https://github.com/jesseduffield/lazygit
[14]GoLab 2021 大會視頻全集: https://www.youtube.com/watch?v=2FzW6QLrm2s&list=PLGN1AjiJJv0noFge_-nKu95N5Zd1nHpur
[15]Go語言中文網(wǎng): https://studygolang.com/go/weekly
[16]微信公眾號: https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91
