Go 開發者進階週刊(Dec 2nd)

astaxie發表於2019-12-12

語言學習(Golang 程式設計知識與技巧)

1. 用圖說話:Go 語言的協程,系統執行緒以及 CPU 管理

     Go 開發者進階週刊(Dec 2nd)

訣竅是不要將整個檔案載入到記憶體中,並在繼續移動檔案指標時繼續處理每個單詞。這樣,我們就可以用最少的記憶體資源輕鬆地處理整個檔案。並且在檔案的不同部分保留多個指標,每個執行緒同時讀取檔案的塊。

2.GOMAXPROCS 和實時更新

3.Go 標準庫 encoding/json 真的慢嗎?

關於標準庫 encoding/json 效能差的問題在很多地方被討論過,也有很多第三方庫在嘗試解決這個問題,比如easyjsonjsoniterffjson。但是標準庫 encoding/json 真的慢嗎?它一直都這麼慢嗎?

4.譯 | 併發不是並行

併發性是強大的,但它不是並行性的,但它支援並行性,而且它使並行性變得容易。

5.原始碼閱讀 | 短小精悍的 Once 

   Go 開發者進階週刊(Dec 2nd)

Once 即保證某個動作只執行一次。這很好理解,延遲初始化、單例(懶漢式)就是這種場景。

6.go 中 defer 的一個隱藏功能

你可以使用 defer 在任何函式開始後和結束前執行配對的程式碼。

7.Go 動態作用域變數 

8.GoAdvent2019:使用標準庫中的 flag 包

在本文中,我們將瞭解如何使用內建標誌包編寫命令列應用程式。

9.在 Go 中使用 Socket.IO

Websocket 是全雙工的基於 TCP 層的通訊協議,為瀏覽器及網站伺服器提供處理流式推送訊息的方式。它不同於 HTTP 協議,但仍依賴 HTTP 的 Upgrade 頭部進行協議的轉換。

10.Golang 在 runtime 中的一些騷東西

11.為什麼 golang 沒有 volatile 

從 java 轉 golang 程式設計師可能會有一個疑問:為什麼 golang 沒有 volatile 關鍵字?這樣的話如何保證可見性?

12.[譯] Go:垃圾回收器是如何監控你的應用的?

Go 的垃圾回收器旨在幫助開發者自動清理應用程式的記憶體。然而每次跟蹤記憶體並清理都會影響程式執行的效能。Go 的垃圾回收器旨在清理記憶體的同時也關注效能,主要是以下幾個指標:

  • 當程式暫停的時的兩階段儘可能減少
  • 一次垃圾回收的週期少於 10ms
  • 一次垃圾回收操作不能佔用超過 25% 的 CPU

工程實踐(Go 的專案應用實踐)

1.Go 生成資料庫架構文件

2.Go 語言國際電子表格文件格式標準實踐

   Go 開發者進階週刊(Dec 2nd)

3.使用 Go 解析 180 億條 JSON 行

4.Go 專案結構最佳實踐

提出一系列選項,可以從中選擇如何在新的世界秩序中構建 Go 應用程式。

5.Go 效能測試驚奇 

6.使用 Go,QUIC 和 Micro 建立全球服務網路

分享具體的技術實現細節

Go 開發者進階週刊(Dec 2nd)

7.Go 執行時排程程式處理系統呼叫的巧妙方法 

8.Bazel 構建 Golang 專案

Bazel 是一款谷歌開源的非常優秀的構建系統,速度極快、可伸縮、跨語言並且可擴充套件。使用 Bazel 構建 golang 專案,除了 Bazel 本身特性外,還需要了解針對 golang 的擴充套件包 rules_go。另外,可以使用 bazel gazelle 來進行一些自動生成的工作。

9.Go 專案的 GitlabCI 快取

10.Go 程式中嵌入靜態資源方案選擇 

用 Go 編寫的應用程式很容易部署,因為它們是靜態編譯的。如果您需要管理執行 web 應用程式所需的一組檔案的位置和許可權,那麼這種優勢就會消失。解決方案是將所有必需的檔案編譯到應用程式二進位制檔案本身。這可以在 Go 中通過使用一個包含檔案中位元組的字串表示的位元組片來實現。

生態擴充(雲原生等 Go 生態體系)

1.Gotty 原始碼分析

GoTTY 是一個簡單的基於 Go 語言的命令列工具,它可以將你的終端 (TTY) 作為 web 程式共享。它會將命令列工具轉換為 web 程式。

2.一文詳解微服務架構

從單體應用到微服務並不是一蹴而就的,這是一個逐漸演變的過程。本文將以一個網上超市應用為例來說明這一過程。

3.把阿里巴巴的核心繫統搬到雲上,架構上的挑戰與演進是什麼?

阿里巴巴核心系統作為全球最大規模、峰值效能要求最高的電商交易系統,在 2018 年之前只通過混合雲彈性上雲方式,為 雙 11 節約大量成本。直到 2019 年,阿里巴巴實現了核心交易系統全面上雲並經歷了 雙 11 峰值的考驗。

開源專案(社群新湧現的開源成果)

1.Slog:Go 的最小日誌記錄庫

2.Cap’n Proto:Protobuf 作者新開發的多語言通用資料交換格式

3.JetStream:NATS 內建持久化方案進入 TP 階段 

4.Pion:Go 實現不發出訊號的情況下連線兩個 WebRTC 服務

5.Fvm:Go 打造 Flutter 多版本管理工具:fvm 

 

彩蛋(活動與招聘)

12.24 Gopher Meetup 上海站活動 報名

  •    趣頭條——長連結方面的實踐
  •    訊聯資料——Go 語言的抽象程式設計心得
  •    TutorABC——遠端協同設計
  •    螞蟻金服&攜程——dubbogo 的現狀與未來

01.04 Gopher Meetup Plus 深圳站活動 報名

  •    Asta——Go 在工業領域的應用實踐
  •    騰訊——Go 效能優化之路
  •    廣發證券——Go 與極限效能實踐
  •    OPPO——雲平臺儲存系統架構設計與容器化實踐
  •    平安科技——從面試題目到 Golang 彙編
  •    騰訊——如何向 Go 官方提交程式碼
  •    華為雲——KubeEdge:雲原生邊緣計算平臺的 Golang 實踐

【螞蟻金服】螞蟻金服研發效能團隊招人啦! 詳情

更多原創文章乾貨分享,請關注公眾號
  • Go 開發者進階週刊(Dec 2nd)
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章