區塊鏈春天來了,Go也會越來越火,過去一週發生了什麼?

這裡記錄每週值得分享的 Go 語言相關內容,週日發佈。

本週刊開源(GitHub:polaris1119/golangweekly[1]),歡迎投稿,推薦或自薦文章/軟件/資源等,請提交 issue[2]

由於今日頭條無法外鏈, 文中鏈接可以通過“瞭解更多”查看。

鑑於大部分人可能沒法堅持把英文文章看完,因此,週刊中會盡可能推薦優質的中文文章。優秀的英文文章,我們的 GCTT 組織會進行翻譯。

區塊鏈春天來了,Go也會越來越火,過去一週發生了什麼?

題圖:來自 benchdraw 這個項目

刊首語

政府把區塊鏈作為核心技術自主創新重要突破,加快推動區塊鏈技術和產業創新發展。一時間,區塊鏈的春天來了,我相信這也對 Go 來說也是一大喜訊!

區塊鏈春天來了,Go也會越來越火,過去一週發生了什麼?

如果你從來沒有接觸過區塊鏈,推薦閱讀阮一峰老師的《區塊鏈入門教程》[3]

資訊

1、提案:擴展 Go 頁分配器 (Page Allocator)[4]

據稱頁分配器在應用程序中具有可伸縮性問題,“堆分配率很高且 GOMAXPROCS 很高”。

2、GoAdmin 發佈 v1.0.3 版本,新增主題 sword[5]

GoAdmin 是一款基於 golang 的後臺數據可視化管理搭建工具。致力於簡化 saas,數據可視化系統搭建難度,提升 golang 開發效率,將高效率高性能的體驗帶給所有開發者。

3、Electron 7.0.0 發佈,跨平臺桌面應用開發工具[6]

Electron 是 GitHub 開發的跨平臺桌面應用開發工具,支持使用 Web 技術開發桌面應用,其基於 C++ 開發,GUI 核心來自於 Chromium,而 JavaScript 引擎使用 V8。

4、Proxy-Go SDK v8.4 發佈,新增內網穿透 P2P、TCP 指定出口 IP[7]

Proxy-Go 全平臺 SDK 是 proxy 使用 gombile 實現了一份 go 代碼編譯為 android 和 ios 平臺下面可以直接調用的 sdk 類庫, 另外還為 linux 和 windows 提供 sdk 支持,基於這些類庫,APP 開發者可以輕鬆的開發出各種形式的代理工具,比如代理池,安全代理。

5、Hugo 0.59.0 發佈[8]

Go 語言實現的快速靜態站點生成器。此版本發佈的時機是通過同步獲取文檔存儲庫的副本來實現的,現在完全“ Hugo Modularized”。

6、Delve 1.3.2 發佈[9]

Go 語言實現的 Go 語言調試器,發佈 1.3.2。

7、Zap 1.11.0 發佈[10]

Uber 的結構化日誌組件。

8、[Micro 1.12.0 發佈](Micro 1.12.0[11])

微服務運行環境。

問答

1、http.Client 讀 gzip 內容讀不全[12]

涉及到 io 讀的問題

2、gorm 的 gorm.Model 在 Create 數據時不是會自動插入時間嗎?怎麼一直報錯[13]

Error 1292: Incorrect datetime value: '0000-00-00' for column 'created_at' at row 1

3、Ubuntu 系統中安裝了多個 Go SDK,怎麼設置當前使用指定的 Go SDK?[14]

我目前在寫的 Echo 系列教程,其中就涉及到多版本控制問題。Echo 系列教程—基礎篇:搭建 Echo 開發環境[15]

4、想把數據庫查詢的結果放入一個變量,但是不知道怎麼放了[16]

在實現數據庫查詢後想把結果放到一個變量但是不知道怎麼做了。推薦其中波羅學的答案。

5、go 的結構體嵌套[17]

json 解析常見的問題。

文章

1、Go 語言中如何開啟 TCP keepalive?

本篇文章首先簡單介紹了 TCP keepalive 的機制以及運用場景。接著介紹了 Go 語言中如何開啟與設置 TCP keepalive。但是由於 Go 語言最上層的接口不夠靈活,從而引出在 Go 語言中如何使用系統調用設置 TCP 連接的文件描述符屬性。

2、Go 中哪些值可以被取地址,哪些值不可以被取地址?

這些細節可以瞭解瞭解。

3、Docker 容器編排實踐練習

在本次練習中,你將體驗到 Docker 的容器編排功能。

4、Go gRPC 客戶端服務保障如何做?負載均衡、重試、健康檢查

服務健壯性的保證方法。

5、微服務如何保證不會出現連鎖反應?Go 實現的斷路器瞭解下

Circuit Breaker 模式。

6、如何使用 Go kit 工具包編寫微服務

提供一個邊做邊學的教程。

7、你為什麼要喜歡 sync.Pool ?

務必使用

sync.Pool !它確實可以節省內存並提高應用程序的性能。

區塊鏈春天來了,Go也會越來越火,過去一週發生了什麼?

8、Go 垃圾回收 1:歷史和原理

系列教程的第 1 部分。

9、如何實現 Go Module 依賴關係的可視化

最近開發了一個非常簡單的小工具,總的代碼量 200 行不到。這是個什麼工具呢?它是一個用於可視化展示 Go Module 依賴關係的工具。

開源項目

1、benchdraw:通過 CLI 將 Go 的基準測試輸出轉換為圖片[18]

benchdraw 使您可以輕鬆地將 Go 基準格式的數據轉為圖片。Benchdraw 不會像 gnuplot 那樣具有可配置性或外觀。它僅打算為用戶可以以最小的努力生成的最常見情況生成足夠好的圖片。

2、slug: 具有多語言支持的 URL Slugify[19]

從 unicode 字符串生成 slug,具有多種語言支持。

3、go-imap: 一個同時支持客戶端和服務端的 imap4 庫[20]

Go 語言實現的 IMAP4rev1[21] 庫。它可以用來構建客戶端或服務器端。

4、go-sx: Go 簡單的 SQL 擴展[22]

go-sx 提供了對標準庫 database/sql 軟件包的一些擴展。它是為那些希望在沒有沉重的抽象層的情況下使用 SQL 的全部功能的用戶設計的。

5、buf cli: 讓 protobuf 更好用

[23]

使用 Protocol Buffers 的新方法。

6、useragent[24]

與 UserAgent 相關的工具包

7、pst[25]

Go 編寫的進程管理器

8、gerrit-linter: go 實現的與 Gerrit Checks 插件一起使用的代碼樣式驗證工具[26]

這是一種樣式驗證程序,旨在與 Gerrit Checks 插件一起使用。

9、kf: go 打造的類 cloud foundry 命令行工具[27]

與 Cloud Foundry 應用程序和生命週期完全兼容。它支持日誌,構建包,應用清單,路由,服務代理和注入。

10、go-jose: JOSE 標準(JWE, JWS, JWT) 的 Go 實現[28]

包 jose 旨在提供 JSON 簽名和加密標準集的實現。這包括對 JSON Web 加密,JSON Web 簽名和 JSON Web 令牌標準的支持。

11、csvdiff: 快速的 csv 比較工具[29]

區塊鏈春天來了,Go也會越來越火,過去一週發生了什麼?

asciicast

12、使用 Go 添加 HTTPS[30]

HTTPS 是一種趨勢,也是未來。API 接口為了安全性, 一般都是需要上 HTTPS 的。

13、如何寫出優雅的 Golang 代碼[31]

Go 語言是一門簡單、易學的編程語言,對於有編程背景的工程師來說,學習 Go 語言並寫出能夠運行的代碼並不是一件困難的事情,對於之前有過其他語言經驗的開發者來說,寫什麼語言都像自己學過的語言其實是有問題的,想要真正融入生態寫出優雅的代碼就一定要花一些時間和精力瞭解語言背後的設計哲學和最佳實踐。

14、用 Golang 編寫一個簡易聊天室[32]

本文更像是一份我在練習如何去用 Go 編寫程序時的總結。

15、Golang 應付百萬級請求/分鐘[33]

簡潔化設計永遠是我所追求的東西。我們可以設計一個複雜的系統用很多的隊列,後臺運行 worker,複雜的部署等等,但取而代之我們決定利用 Elasticbeanstalk 強大的自動伸縮功能以及 Go 所提供開箱即用的併發特性。

區塊鏈春天來了,Go也會越來越火,過去一週發生了什麼?

16、一文讓你瞭解 Kubernetes 架構

Kubernetes 起源自 Google 內部系統 Borg,它是容器應用集群部署和管理的系統。Kubernetes 核心功能是為了減輕物理機或者虛擬機集群編排、網絡以及存儲等的管理負擔,使開發者只需要關注應用的業務邏輯。通過 Kubernetes 開發者可以自定義工作流甚至自動化的任務流。

資源&&工具

1、yaml2go: 轉換 YAML 為 Go 類型[34]

您可以將其用作在線工具,也可以獲取副本並自己進行部署。https://github.com/PrasadG193/yaml2go

區塊鏈春天來了,Go也會越來越火,過去一週發生了什麼?

2、將 cURL 命令轉為 Go 代碼[35]

倉庫地址:https://github.com/NickCarneiro/curlconverter/ 。除了轉為 Go 代碼,還支持 Python, javascript, php, R, Go, Rust, Dart, JSON, Ansible 等語言。

3、Go 時間:Go 應用設計[36]

原則、權衡、模式和常見問題。

4、Go 時間:關於 Cache[37]

Go 實現的高性能併發緩存庫 Ristretto[38],其重點是性能和正確性。創建 Ristretto 的動機來自對 Dgraph 中無鎖緩存的需求。

5、想進阿里嗎?送你一份 4000 字《阿里內推指南》

阿里人寫的指南。

6、只因有了它,我找到了優秀的候選人:推薦一款候選人現場編程的神器 ShowMeBug

面試輔助工具。

訂閱

這個週刊每週日發佈,同步更新在Go 語言中文網

[39]、微信公眾號[40] 和 今日頭條[41]

微信搜索"Go 語言中文網"或者掃描二維碼,即可訂閱。

區塊鏈春天來了,Go也會越來越火,過去一週發生了什麼?

[1]polaris1119/golangweekly: https://github.com/polaris1119/golangweekly

[2]提交 issue: https://github.com/polaris1119/golangweekly/issues

[3]《區塊鏈入門教程》: http://www.ruanyifeng.com/blog/2017/12/blockchain-tutorial.html

[4]提案:擴展 Go 頁分配器 (Page Allocator): https://go.googlesource.com/proposal/+/refs/changes/57/202857/2/design/35112-scaling-the-page-allocator.md

[5]

GoAdmin 發佈 v1.0.3 版本,新增主題 sword: https://www.oschina.net/news/110809/goadmin-1-0-3-released

[6]

Electron 7.0.0 發佈,跨平臺桌面應用開發工具: https://www.oschina.net/news/110795/electron-7-0-0-released

[7]

Proxy-Go SDK v8.4 發佈,新增內網穿透 P2P、TCP 指定出口 IP: https://www.oschina.net/news/110784/proxy-go-8-4-released

[8]

Hugo 0.59.0 發佈: https://github.com/gohugoio/hugo/releases/tag/v0.59.0

[9]

Delve 1.3.2 發佈: https://github.com/go-delve/delve/blob/master/CHANGELOG.md#132-2019-10-21

[10]

Zap 1.11.0 發佈: https://github.com/uber-go/zap

[11]

Micro 1.12.0 發佈: https://golangweekly.com/link/79024/web

[12]

http.Client 讀gzip內容讀不全: https://studygolang.com/topics/10278

[13]

gorm 的 gorm.Model 在 Create 數據時不是會自動插入時間嗎?怎麼一直報錯: https://studygolang.com/topics/10290

[14]

Ubuntu系統中安裝了多個Go SDK,怎麼設置當前使用指定的Go SDK?: https://segmentfault.com/q/1010000020805656

[15]

Echo系列教程—基礎篇:搭建 Echo 開發環境: https://studygolang.com/topics/10285

[16]

想把數據庫查詢的結果放入一個變量,但是不知道怎麼放了: https://segmentfault.com/q/1010000020783290

[17]

go 的結構體嵌套:

https://segmentfault.com/q/1010000020780405

[18]

benchdraw:通過 CLI 將 Go 的基準測試輸出轉換為圖片: https://github.com/cep21/benchdraw

[19]

slug: 具有多語言支持的 URL Slugify: https://github.com/gosimple/slug

[20]

go-imap: 一個同時支持客戶端和服務端的 imap4 庫: https://github.com/emersion/go-imap

[21]

IMAP4rev1: https://tools.ietf.org/html/rfc3501

[22]

go-sx: Go 簡單的 SQL 擴展: https://github.com/travelaudience/go-sx

[23]

buf cli: 讓 protobuf 更好用: https://github.com/bufbuild/buf

[24]

useragent: https://github.com/x899/useragent

[25]

pst: https://github.com/skanehira/pst

[26]

gerrit-linter: go 實現的與 Gerrit Checks 插件一起使用的代碼樣式驗證工具: https://github.com/google/gerrit-linter

[27]

kf: go 打造的類 cloud foundry 命令行工具: https://github.com/google/kf

[28]

go-jose: JOSE標準(JWE, JWS, JWT) 的Go實現: https://github.com/square/go-jose

[29]

csvdiff: 快速的 csv 比較工具: https://github.com/aswinkarthik/csvdiff

[30]

使用 Go 添加 HTTPS: https://juejin.im/post/5daeb504f265da5b7e2406a4

[31]

如何寫出優雅的 Golang 代碼: https://draveness.me/golang-101.html

[32]

用 Golang 編寫一個簡易聊天室:

https://juejin.im/post/5dafb4435188256290692f05

[33]

Golang應付百萬級請求/分鐘: https://studygolang.com/articles/24229

[34]

yaml2go: 轉換 YAML 為 Go 類型: https://yaml2go.prasadg.dev/

[35]

將 cURL 命令轉為 Go 代碼: https://curl.trillworks.com/#go

[36]

Go 時間:Go 應用設計: https://changelog.com/gotime/102

[37]

Go 時間:關於 Cache: https://changelog.com/gotime/103

[38]

Ristretto: https://github.com/dgraph-io/ristretto

[39]

Go語言中文網: https://studygolang.com/go/weekly

[40]

微信公眾號: https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91

[41]

今日頭條: https://www.toutiao.com/c/user/59903081459/#mid=1586087918877709


分享到:


相關文章: