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

題圖:Go 對(duì)各種 CPU 架構(gòu)的支持。
刊首語(yǔ)
這道題看起來(lái)很迷惑,目測(cè)很多人可能會(huì)答錯(cuò)。以下代碼輸出什么?
package?main
import?(
?"encoding/json"
?"fmt"
?"time"
)
func?main()?{
?t?:=?struct?{
??time.Time
??N?int
?}{
??time.Date(2020,?12,?20,?0,?0,?0,?0,?time.UTC),
??5,
?}
?m,?_?:=?json.Marshal(t)
?fmt.Printf("%s",?m)
}
注意:因?yàn)槲⑿磐镀弊謹(jǐn)?shù)限制,選項(xiàng) A 是{"Time": "2020-12-20T00:00:00Z", "N": 5 }
資訊
1、Go 1.16 Beta1 發(fā)布,支持 Apple M1 芯片
正式版預(yù)計(jì) 2021 年 2 月發(fā)布。歡迎測(cè)試反饋。
2、godoc.org 將重定向到 pkg.go.dev[3]
2021 年年初會(huì)生效。godoc.org 要關(guān)閉了,但有人對(duì) pkg.go.dev 不滿,弄了個(gè) godocs.io。。。
3、gopls 0.6.0 發(fā)布[4]
VSCode 用戶會(huì)自動(dòng)更新。
4、Ebiten in 2020[5]
Ebiten 是一個(gè)流行的開源游戲庫(kù),用于在 Go 中構(gòu)建 2D 游戲。這個(gè)項(xiàng)目竟然已經(jīng) 7 年了。很棒!
5、fyne-cross 發(fā)布 1.0 版本[6]
這是 Go GUI 框架 fyne 的全平臺(tái)打包發(fā)布工具。
6、Docker 發(fā)布支持 apple M1 芯片的 docker desktop 預(yù)覽版[7]
跟進(jìn)很快!
文章
1、Gopher Dinner 第 1 期結(jié)束,簡(jiǎn)單聊聊
上周六的聚會(huì)小結(jié)。
2、你是不是沒想過(guò),結(jié)構(gòu)體竟然可以內(nèi)嵌一個(gè)接口?
這是第 71 期周刊題目的解析。
signal 包提供了信號(hào)處理器,讓我們的 Go 程序可以與發(fā)送來(lái)的信號(hào)進(jìn)行交互。
4、新買了 Apple M1 Mac,卻不知道如何安裝 Go?
雖然 Go 1.16 Beta1 已經(jīng)發(fā)布,但了解下源碼編譯相關(guān)知識(shí)還是有幫助的。
5、Go 錯(cuò)誤處理:用 panic 取代 err != nil 的模式
雖然官方不推薦,但有人這么用。好不好自己清楚!
這是 pkg.go.dev 比官方網(wǎng)站強(qiáng)大的地方。
7、英雄聯(lián)盟(LOL)所在公司竟然大量使用 Go 語(yǔ)言:這是他們的實(shí)戰(zhàn)分享
游戲行業(yè)也在使用 Go。
這些題目你會(huì)多少?
9、在編程中,有兩件事情最難:聊聊 Go 中的簡(jiǎn)短變量名
你為命名發(fā)愁過(guò)嗎?
10、跟 Dave Cheney 大神重學(xué) Go Slice:有新收獲
每次討論到 Go 的切片問題,都會(huì)從這個(gè)變量是不是切片開始,換句話說(shuō),就是 Go 的序列類型,在 Go 中,數(shù)組有兩種關(guān)聯(lián)屬性。
一篇國(guó)外文章翻譯版。寫這篇文章的時(shí)候 PHP 最新版本是 PHP7.4,Go 的最新版本是 Go1.13。
12、「對(duì)比 Python 學(xué)習(xí) Go」- 高級(jí)數(shù)據(jù)結(jié)構(gòu)[8]
從 Python 轉(zhuǎn) Go 的可以看看。
開源項(xiàng)目
1、yomo[9]
開源的低時(shí)延邊緣計(jì)算 Streaming Serverless Framework。
2、fastwego[10]
FastWeGo 是一組 Go 服務(wù)快速開發(fā) sdk,支持微信公眾號(hào)、小程序、小游戲、企業(yè)微信、微信支付等微信服務(wù),以及 飛書、釘釘。「快」是核心特性,5 分鐘即可完成一套 Go 服務(wù)開發(fā)。
3、panther[11]
使用日志數(shù)據(jù)檢測(cè)威脅并改善云安全狀況。

4、graphik[12]
作為身份識(shí)別文檔和圖形數(shù)據(jù)庫(kù)實(shí)現(xiàn)的后端即服務(wù)(Backend as a Service),并支持 gRPC 和 graphQL。
5、frames[13]
基于 Golang 的遠(yuǎn)程數(shù)據(jù)幀訪問(通過(guò) gRPC 或 HTTP 流)。
6、chili[14]
Go 的簡(jiǎn)單表達(dá)式評(píng)估引擎。
資源&&工具
1、school-of-sre[15]
LinkedIn 在 GitHub 上開源了其企業(yè)內(nèi)部的 SRE 技術(shù)課程,主要包含 Linux、Git、Python、Web、MySQL、大數(shù)據(jù)、系統(tǒng)設(shè)計(jì)、網(wǎng)絡(luò)安全等內(nèi)容。
2、imgdiff[16]
最快的逐像素圖片比對(duì)工具。
3、Go 學(xué)習(xí)網(wǎng)站[17]
網(wǎng)絡(luò)上最好的 Go 學(xué)習(xí)資源: 精選最佳文章,練習(xí),課程,講座和視頻來(lái)學(xué)習(xí) Go。不過(guò)是英文的。
4、油管視頻[18]
為一個(gè) Go 項(xiàng)目構(gòu)建 pipeline。
5、criticalityscore[19]
該項(xiàng)目會(huì)評(píng)估一個(gè)開源項(xiàng)目的重要性并給出一個(gè)評(píng)估分?jǐn)?shù),打分算法來(lái)自 Rob Pike。Python 版本:https://github.com/ossf/criticality_score。
6、Google 面試最常問的 20 個(gè)問題[20]
很語(yǔ)言沒太多關(guān)系。英文的。
7、專注于 Go 高性能編程實(shí)踐的開源電子書項(xiàng)目[21]
極客兔兔出品,項(xiàng)目主頁(yè):Go 語(yǔ)言高性能編程[22]。
8、lazyssh[23]
跳轉(zhuǎn)主機(jī) SSH 服務(wù)器,可按需啟動(dòng)計(jì)算機(jī)。
9、doggo[24]
人類更可讀的命令行 DNS 客戶端。受 Rust 的 dog[25] 項(xiàng)目啟發(fā)。

訂閱
這個(gè)周刊每周日發(fā)布,同步更新在Go語(yǔ)言中文網(wǎng)[26]和微信公眾號(hào)[27]。
微信搜索"Go語(yǔ)言中文網(wǎng)"或者掃描二維碼,即可訂閱。
上期推薦Go語(yǔ)言愛好者周刊:第 73 期
參考資料
polaris1119/golangweekly: https://github.com/polaris1119/golangweekly
[2]提交 issue: https://github.com/polaris1119/golangweekly/issues
[3]godoc.org 將重定向到 pkg.go.dev: https://docs.studygolang.com/blog/godoc.org-redirect
[4]3、gopls 0.6.0 發(fā)布: https://github.com/golang/tools/releases/tag/gopls%2Fv0.6.0
[5]Ebiten in 2020: https://ebiten.org/blog/2020.html
[6]fyne-cross 發(fā)布 1.0 版本: https://fyne.io/blog/2020/12/14/fyne-cross-v1-release.html
[7]Docker 發(fā)布支持 apple M1 芯片的 docker desktop 預(yù)覽版: https://www.docker.com/blog/download-and-try-the-tech-preview-of-docker-desktop-for-m1/
[8]「對(duì)比 Python 學(xué)習(xí) Go」- 高級(jí)數(shù)據(jù)結(jié)構(gòu): https://segmentfault.com/a/1190000038498305
[9]yomo: https://github.com/yomorun/yomo
[10]fastwego: https://fastwego.dev/
[11]panther: https://github.com/panther-labs/panther
[12]graphik: https://github.com/graphikDB/graphik
[13]frames: https://github.com/v3io/frames
[14]chili: https://github.com/5anthosh/chili
[15]school-of-sre: https://github.com/linkedin/school-of-sre
[16]imgdiff: https://github.com/n7olkachev/imgdiff
[17]Go 學(xué)習(xí)網(wǎng)站: https://golangresources.com/
[18]油管視頻: https://youtu.be/AtiUf0uJ4YE
[19]criticalityscore: https://github.com/engelsjk/criticalityscore
[20]Google 面試最常問的 20 個(gè)問題: https://www.programming-hero.com/blog/20-most-frequently-asked-google-interview-questions.html
[21]專注于 Go 高性能編程實(shí)踐的開源電子書項(xiàng)目: https://github.com/geektutu/high-performance-go
[22]Go 語(yǔ)言高性能編程: https://geektutu.com/post/high-performance-go.html
[23]lazyssh: https://github.com/stephank/lazyssh
[24]doggo: https://github.com/mr-karan/doggo
[25]dog: https://github.com/ogham/dog/
[26]Go語(yǔ)言中文網(wǎng): https://studygolang.com/go/weekly
[27]微信公眾號(hào): https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91
