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

題圖:一個宇宙飛船模擬游戲 https://github.com/BenNicholls/spaceshippers
刊首語
看到一道題,挺有意思。以下代碼能否通過編譯?
package?main
import?(
?"fmt"
)
type?worker?interface?{
?work()
}
type?person?struct?{
?name?string
?worker
}
func?main()?{
?var?w?worker?=?person{}
?fmt.Println(w)
}
資訊
1、Go SYSTEMS CONF SF 會議[3]
2020 年 12 月 03 日舉行。Go Systems Conf SF 是一個免費的在線 Go 會議,將于下周舉行,關注構建和可擴展 Go 系統(tǒng)。來自 Monzo、VMware 和 DigitalOcean 等公司的優(yōu)秀演講者陣容。該會議中 PingCAP 的 CTO 黃東旭也是演講者。
2、vscode-go 0.19.0 發(fā)布[4]
GitHub-Actions 自動發(fā)布的說明。
3、olric 0.3.0 發(fā)布[5]
分布式緩存和內存鍵/值數據存儲。它既可以用作嵌入式 Go 庫,也可以用作獨立于語言的服務。
4、GoLand 2020.3 RC 發(fā)布[6]
離正式版不遠了。
5、Hugo 0.79.0 發(fā)布[7]
小版本,但有用。
6、go-zero 1.0.29 發(fā)布[8]
goctl 增加了一些功能。
文章
1、CNCF 剛宣布 etcd 正式畢業(yè):趕緊實戰(zhàn)下 etcd 的服務發(fā)現
在云原生的時代,服務發(fā)現已經是必不可少的功能,我借著最近遷移 gRPC 服務的機會嘗試了一下如何用 etcd 實現服務發(fā)現,期間遇到諸多問題,本文逐一記之。
切片是Go語言中引入的用于在大多數場合替代數組的語法元素。切片是長度可變的同類型元素序列,它不支持存儲不同類型的元素,當然如果你非用sl := []interface{}{"hello", 11, ?3.14}來抬杠^_^,那就另當別論。
很多人可能會有。
4、實戰(zhàn):150 行 Go 實現高性能 socks5 代理
光說不練假把式,不如上手試試,這篇來寫個有點卵用的東西。
從單體服務拆分到微服務過程中,原來模塊間交互逐漸抽離成遠程調用,可能 http,rpc,tcp 等等,那么這些模塊在調用中一定存在某種依賴關系。
6、Blackrota, 一個 Go 開發(fā)的高度混淆的后門[9]
最近,我們通過 Anglerfish 蜜罐捕獲到一個利用 Docker Remote API 未授權訪問漏洞來傳播的 Go 語言編寫的惡意后門程序,鑒于它上線的 C2 為 blackrota.ga ,我們把它命名為 Blackrota。
開源項目
1、clock[10]
Clock 是 Go 中用來模擬時間的一個小庫。

2、box-cli-maker[11]
為你的 CLI 應用制作高度定制的盒子(方框)。

3、machinery[12]
一個基于分布式消息傳遞的異步任務隊列/作業(yè)隊列。
4、aws-lambda-go-api-proxy[13]
可以輕松地將使用 Gin 等框架編寫的 API 移植到 AWS Lambda 和 Amazon API Gateway。
5、netaddr[14]
Go 網絡地址包,據說比 net.IP 更好,不過目前還不建議用于生產環(huán)境。
6、grocksdb[15]
rocksdb 的 Go binding。
7、gotalk[16]
異步對等通信協議和庫。

8、stripe-go[17]
轉到 Stripe API 庫。
9、cogman[18]
高效的后臺處理,后端支持 RabbitMQ 和 Redis。
10、go-archaius[19]
分布式系統(tǒng)中使用的動態(tài)配置框架。

11、simplecert[20]
用于自動獲取 Let's Encrypt SSL 證書的 Golang 庫。
12、fab.io[21]
Fab.io 是用 Go 語言編寫的輕量級游戲后端框架。
13、participle[22]
Go 的解析庫。
資源&&工具
1、ethr[23]
一個用于 TCP、UDP 和 HTTP 的網絡性能測量工具。微軟出品。

2、smithy[24]
如果你喜歡 gitea 之類的東西,可以在 git 存儲庫中使用一個簡單的前端。
3、maddy[25]
Maddy Mail Server 實現了運行電子郵件服務器所需的所有功能。
4、油管視頻[26]
為什么 GitHub 客戶端命令行組從 Ruby 切換到 Go?這是 Go Time 第 153 期[27]。
5、ham[28]
用 Go 檢測垃圾短信。
6、cdb[29]
常量數據庫 golang 實現。
7、zq[30]
結構化日志的搜索和分析工具。
8、cron[31]
CLI 工具(hcron)和 Go 庫(cron),用于將 CRON 表達式轉換為人類可讀的描述。
9、glsnip[32]
跨機器復制和粘貼。
10、webify[33]
將 Shell 命令轉換為 Web 服務。
11、gophertunnel[34]
Go 語言編寫的 Minecraft 軟件的瑞士軍刀。

12、gospider[35]
快速的 Web 爬蟲。
訂閱
這個周刊每周日發(fā)布,同步更新在Go語言中文網[36]和微信公眾號[37]。
微信搜索"Go語言中文網"或者掃描二維碼,即可訂閱。
上一期Go語言愛好者周刊:第 70 期 — 一道問答題
參考資料
polaris1119/golangweekly: https://github.com/polaris1119/golangweekly
[2]提交 issue: https://github.com/polaris1119/golangweekly/issues
[3]Go SYSTEMS CONF SF 會議: https://systemsconf.io/
[4]vscode-go 0.19.0 發(fā)布: https://github.com/golang/vscode-go/releases/tag/v0.19.0
[5]olric 0.3.0 發(fā)布: https://github.com/buraksezer/olric
[6]GoLand 2020.3 RC 發(fā)布: https://blog.jetbrains.com/go/2020/11/27/goland-2020-3-rc-now-available/
[7]Hugo 0.79.0 發(fā)布: https://gohugo.io/news/0.79.0-relnotes/
[8]go-zero 1.0.29 發(fā)布: https://github.com/tal-tech/go-zero
[9]Blackrota, 一個 Go 開發(fā)的高度混淆的后門: https://blog.netlab.360.com/blackrota-an-obfuscated-backdoor-written-in-go/
[10]clock: https://github.com/benbjohnson/clock
[11]box-cli-maker: https://github.com/Delta456/box-cli-maker
[12]machinery: https://github.com/RichardKnop/machinery
[13]aws-lambda-go-api-proxy: https://github.com/awslabs/aws-lambda-go-api-proxy
[14]netaddr: https://github.com/inetaf/netaddr
[15]grocksdb: https://github.com/linxGnu/grocksdb
[16]gotalk: https://github.com/rsms/gotalk
[17]stripe-go: https://github.com/stripe/stripe-go
[18]cogman: https://github.com/Joker666/cogman
[19]go-archaius: https://github.com/go-chassis/go-archaius
[20]simplecert: https://github.com/foomo/simplecert
[21]fab.io: https://github.com/kooinam/fab.io
[22]participle: https://github.com/alecthomas/participle
[23]ethr: https://github.com/microsoft/ethr
[24]smithy: https://github.com/honza/smithy
[25]maddy: https://github.com/foxcpp/maddy
[26]油管視頻: https://www.youtube.com/watch?v=fuYwyQllMpE
[27]Go Time 第 153 期: https://changelog.com/gotime/153
[28]ham: https://github.com/PaluMacil/ham
[29]cdb: https://github.com/alldroll/cdb
[30]zq: https://github.com/brimsec/zq
[31]cron: https://github.com/lnquy/cron
[32]glsnip: https://github.com/bradwood/glsnip
[33]webify: https://github.com/beefsack/webify
[34]gophertunnel: https://github.com/Sandertv/gophertunnel
[35]gospider: https://github.com/jaeles-project/gospider
[36]Go語言中文網: https://studygolang.com/go/weekly
[37]微信公眾號: https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91
