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

題圖:開源推薦系統(tǒng)
刊首語
上期題目解析。
以下程序是否會 panic:
package?main
import?"C"
func?main()?{
?var?ch?chan?struct{}
?<-ch
}
A:會;B:不會
正確答案是 B(不會)。如果把第 3 行注釋掉,會 panic。原因是 cgo 會使死鎖檢查失效。
資訊
安全更新版本。
全面支持 Go1.18。
3、Excelize 2.6.0 正式發(fā)布[3]
Go 語言編寫的用于操作 Office Excel 文檔基礎(chǔ)庫,基于 ECMA-376,ISO/IEC 29500 國際標(biāo)準(zhǔn)。
文章
有的時(shí)候我們會遇到并發(fā) IO 的情況,例如,并發(fā)爬蟲下載網(wǎng)絡(luò)上的圖片。如果并發(fā)度過高或者下載的內(nèi)容過大,會導(dǎo)致網(wǎng)絡(luò) IO 耗時(shí)急劇上升。這時(shí)候就需要優(yōu)化一下每次網(wǎng)絡(luò)IO 的耗時(shí)。
2、Go 驗(yàn)證 TCP SYN 超時(shí)重傳機(jī)制
http 或 tcp 調(diào)用時(shí)的 dial tcp (ip):(port): connect: connection timed out 錯誤是 SYN 的超時(shí)重傳機(jī)制引起的。如果遇到這種錯誤,一方面需要考慮 server 可以處理請求的 QPS,另一方面也要檢查 client 端重傳相關(guān)參數(shù)的設(shè)置。
3、從真實(shí)事故出發(fā):golang 內(nèi)存問題排查指北
字節(jié)跳動文章分享。
很全,包含了編碼類和非編碼類。
5、gRPC 客戶端長連接機(jī)制實(shí)現(xiàn)及 keepalive 分析
這篇文章分析如何實(shí)現(xiàn)客戶端?;睿╧eepalive)邏輯。
開源項(xiàng)目
1、gorse[4]
開源的推薦系統(tǒng),Go 語言實(shí)現(xiàn)。
2、goleveldb[5]
LevelDB 的 Go 實(shí)現(xiàn)。
3、disgo[6]
一個(gè)現(xiàn)代的 Discord API 包裝。
4、writefreely[7]
一個(gè)干凈、基于 Markdown 的發(fā)布平臺,專為作家設(shè)計(jì)。一起寫作,建立一個(gè)社區(qū)。

資源&&工具
1、depth[8]
用于檢索和可視化 Go 源代碼依賴樹的工具。
2、copygen[9]
將值從一個(gè)類型復(fù)制到另一個(gè)類型,并將字段從一個(gè)結(jié)構(gòu)復(fù)制到另一個(gè)結(jié)構(gòu),無反射拷貝。
3、doko[10]
操作 Docker,基于 TUI 實(shí)現(xiàn)。
訂閱
這個(gè)周刊每周日發(fā)布,同步更新在Go語言中文網(wǎng)[11]和微信公眾號[12]。
微信搜索"Go語言中文網(wǎng)"或者掃描二維碼,即可訂閱。
參考資料
polaris1119/golangweekly: https://github.com/polaris1119/golangweekly
[2]提交 issue: https://github.com/polaris1119/golangweekly/issues
[3]Excelize 2.6.0 正式發(fā)布: https://xuri.me/excelize/zh-hans/releases/v2.6.0.html
[4]gorse: https://github.com/gorse-io/gorse
[5]goleveldb: https://github.com/syndtr/goleveldb
[6]disgo: https://github.com/disgoorg/disgo
[7]writefreely: https://github.com/writefreely/writefreely
[8]depth: https://github.com/KyleBanks/depth
[9]copygen: https://github.com/switchupcb/copygen
[10]doko: https://github.com/abdfnx/doko
[11]Go語言中文網(wǎng): https://studygolang.com/go/weekly
[12]微信公眾號: https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91
