Go 開發者進階週刊(Dec 2nd)
語言學習(Golang 程式設計知識與技巧)
1. 用圖說話:Go 語言的協程,系統執行緒以及 CPU 管理
訣竅是不要將整個檔案載入到記憶體中,並在繼續移動檔案指標時繼續處理每個單詞。這樣,我們就可以用最少的記憶體資源輕鬆地處理整個檔案。並且在檔案的不同部分保留多個指標,每個執行緒同時讀取檔案的塊。
關於標準庫 encoding/json 效能差的問題在很多地方被討論過,也有很多第三方庫在嘗試解決這個問題,比如easyjson,jsoniter和ffjson。但是標準庫 encoding/json 真的慢嗎?它一直都這麼慢嗎?
併發性是強大的,但它不是並行性的,但它支援並行性,而且它使並行性變得容易。
Once 即保證某個動作只執行一次。這很好理解,延遲初始化、單例(懶漢式)就是這種場景。
你可以使用 defer 在任何函式開始後和結束前執行配對的程式碼。
在本文中,我們將瞭解如何使用內建標誌包編寫命令列應用程式。
Websocket 是全雙工的基於 TCP 層的通訊協議,為瀏覽器及網站伺服器提供處理流式推送訊息的方式。它不同於 HTTP 協議,但仍依賴 HTTP 的 Upgrade 頭部進行協議的轉換。
從 java 轉 golang 程式設計師可能會有一個疑問:為什麼 golang 沒有 volatile 關鍵字?這樣的話如何保證可見性?
Go 的垃圾回收器旨在幫助開發者自動清理應用程式的記憶體。然而每次跟蹤記憶體並清理都會影響程式執行的效能。Go 的垃圾回收器旨在清理記憶體的同時也關注效能,主要是以下幾個指標:
- 當程式暫停的時的兩階段儘可能減少
- 一次垃圾回收的週期少於 10ms
- 一次垃圾回收操作不能佔用超過 25% 的 CPU
工程實踐(Go 的專案應用實踐)
提出一系列選項,可以從中選擇如何在新的世界秩序中構建 Go 應用程式。
分享具體的技術實現細節
Bazel 是一款谷歌開源的非常優秀的構建系統,速度極快、可伸縮、跨語言並且可擴充套件。使用 Bazel 構建 golang 專案,除了 Bazel 本身特性外,還需要了解針對 golang 的擴充套件包 rules_go。另外,可以使用 bazel gazelle 來進行一些自動生成的工作。
用 Go 編寫的應用程式很容易部署,因為它們是靜態編譯的。如果您需要管理執行 web 應用程式所需的一組檔案的位置和許可權,那麼這種優勢就會消失。解決方案是將所有必需的檔案編譯到應用程式二進位制檔案本身。這可以在 Go 中通過使用一個包含檔案中位元組的字串表示的位元組片來實現。
生態擴充(雲原生等 Go 生態體系)
GoTTY 是一個簡單的基於 Go 語言的命令列工具,它可以將你的終端 (TTY) 作為 web 程式共享。它會將命令列工具轉換為 web 程式。
從單體應用到微服務並不是一蹴而就的,這是一個逐漸演變的過程。本文將以一個網上超市應用為例來說明這一過程。
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 實踐
【螞蟻金服】螞蟻金服研發效能團隊招人啦! 詳情
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- Go 開發者進階週刊(Dec 3rd)Go
- Go 開發者進階週刊Go
- Go 開發者進階週刊(Jan week 2)Go
- Go 開發者進階週刊(Jan week 1)Go
- SegmentFault 思否技術週刊 Vol.74 — 淺談 Android 進階指北Android
- SegmentFault 思否技術週刊 -- Node.js 進階之旅,看看那些還需要學?Node.js
- Go 學習、Go 進階、Go 實用工具類Go
- Go語言輕鬆進階Go
- Go 進階學習筆記Go筆記
- 【Go進階—基礎特性】介面Go
- 【Go進階—基礎特性】deferGo
- 【Go進階—基礎特性】反射Go反射
- SegmentFault 思否技術週刊 -- Go 語言通關攻略Go
- SegmentFault 思否技術週刊 -- 進擊的 ReactReact
- go 單元測試進階篇Go
- 【Go進階—基礎特性】錯誤Go
- 【Go進階—資料結構】mapGo資料結構
- 【Go進階—資料結構】ChannelGo資料結構
- 【Go進階—資料結構】sliceGo資料結構
- 科技愛好者週刊(第 159 期):遊戲開發者的年薪遊戲開發
- SegmentFault 思否技術週刊 Vol.71 — 解讀 Go 語言Go
- 【Go進階—基礎特性】panic 和 recoverGo
- 【Go進階—基礎特性】定時器Go定時器
- 【Go進階—併發程式設計】MutexGo程式設計Mutex
- 【Go進階—資料結構】stringGo資料結構
- Go進階之網路程式設計Go程式設計
- 東方娛樂週刊
- ??Java開發者的Python快速進修指南:函式進階JavaPython函式
- SegmentFault 思否技術週刊 Vol.79 — 如何優雅的使用 Go?Go
- Solo 開發者週刊 (第13期):獨立開發者的創新集——橘貓、記一杯與Newcar
- 資料庫週刊40丨OceanBase官網上線開發者社群;資料庫遷移經驗;SQL高階知識……資料庫SQL
- 蒲公英 · JELLY技術週刊 Vol.16 谷歌首個線上 Web 開發者大會谷歌Web
- Go 語言進階學習路線圖Go
- 【Go進階—併發程式設計】ContextGo程式設計Context
- 【Go進階—併發程式設計】WaitGroupGo程式設計AI
- ??Java開發者的Python快速進修指南:物件導向進階JavaPython物件
- 前端週刊第 4 期前端
- 杭州go開發者Go