昨天把單行解析補完後,今天換處理 RESP 裡比較容易寫錯的兩個型別:Bulk Strings (二進位安全字串) 與 Arrays (陣列)。這兩個一個要處理...
昨天把 Parser 的骨架搭好了,今天就直接來寫解析邏輯吧。 我先挑比較軟的柿子吃,從 RESP 裡三種單行資料型態開始:Simple Strings (簡單...
要自己刻 Redis,第一步當然是要讓 Server 聽得懂 Client 在講什麼。Redis 客戶端與伺服器之間進行通訊時,使用的是一種名為 RESP (R...
寫資料庫引擎之前,網路層得先站穩。Redis 之所以快,底層事件模型佔了很大一部分;我雖然不用在 Go 裡手刻 epoll,但還是得先做出一個可以同時處理多個...
為什麼要自己寫一個 Redis? Redis 很多人都用過,拿來做快取、工作佇列、分散式鎖都很順手。但我一直覺得只停在「會用」有點可惜,尤其是它背後的網路 I/...
今天開頭就又學了一種新的 function 寫法,該型別專屬的 method,有一點點 class method 的感覺,在 function name 前面指...
map 基本上就是 Python 的 dict,寫過 Python 跟 JavaScript 的我一直以為是 array 的那個 map... type Ver...
More types: structs, slices, and maps.中間有一大部分都是介紹 slice 的各種用法,沒有什麼特別的語法,值得一提的是,看...
這幾天累到連電腦都不想開...這樣不行,今天逼自己哪怕只學一個語法或複習也要看。上次學完之後,無聊開了一個 easy 來寫,才發現自己連 array 都還不會用...
上次學完 for loop,這次接著官方教學往後看,第一個是 switch,switch 倒是沒有太大區別,值得一提的是不用 break,也可以不用條件式 (視...
複習完 package 之後,注意到「輸出文字」的 Println 綁在這個模組內 import "fmt" 想說這個 fmt 是不是類似...
因為有其他語言的經驗,不用從變數、型別、for loop 這樣慢慢學下去,跟 AI 討論了一下,我應該從 Go 的思維模式與生態學起,這時候官方的 A Tour...
前言 一點小咕噥,不重要不用看 機械系畢業後找了一份程式助理的工作,做了2~3年雖然也是有寫到各式各樣的軟體、網頁、服務,但總感覺都還只是摸到表面,也都活在別人...
完整內容請至幹話王 Blog Go Singleflight 實作全攻略:優化 API 消耗、並發控制與監控實務 在開發高併發應用程式(如股票分析機器人)時,我...
到目前為止,我們已經有了 /search、中介層、context/timeout 與錯誤策略。今天目標是: 寫幾個微基準來量測「一小段可重複的關鍵程式」,建立...
📘 小劇場:雜貨店老闆的日常 你是一位經營「Gross 雜貨舖」的小老闆,店裡有一份 Units 表,記錄各種單位轉換(像 dozen, gross 等)。顧客...
⚙ 篇二 一、slice 的底層原理 slice 本質是一個結構: type slice struct { ptr *array // 指到底層陣列...
想像你開了一家小雜貨店: 客人來進貨清單是 [蘋果, 香蕉, 香蕉, 蘋果, 蘋果, 葡萄] 你需要統計每種水果有幾個,而不是只是一次次看到「蘋果」、「香蕉」...
Go 語言搶票煉金術 Day1 -工程師的價值,是將程式碼煉成金礦 在開始之前,想先問一個問題: 我們為什麼不稱之為「Go 語言搶票程式設計」,而要用 煉金術...
完整內容在此, 幹話王_Go synctest:徹底解決並發測試的痛點 Go 語言以 goroutine 和 channel 聞名,併發測試場景卻常常讓人頭痛...
今天想來分享高內聚 (High Cohesion) 與低耦合 (Loose Coupling) 的概念 🔹高內聚 定義:一個模組(或類別)裡的功能彼此高度相關、...
完整內容在此, 幹話王_續談 MCP Server︰Resource、Server Inspector 6 月 DevOps Days 早鳥票售賣中 繼上一篇...
完整內容在此, 幹話王_認識 MCP Go 工具 6 月 DevOps Days 盲鳥票售賣中 第一次知道 Mark3labs 開發的 MCP Go 工具是因為...
完整內容在此, 幹話王_Grafana GitLab 與 SonarQube 整合 GitHub Repository連結 GitLab 與 SonarQube...
完整內容在此, 幹話王_了解 Go Map GO map shrink 最近同事給了我這篇文章, 文章想證明 Go 的 map 哪怕改成 swisstable...
繼昨天淺談 Go 的垃圾回收機制之後,今天我們將透過實際的範例來深入探討如何使用 Profiler 來觀察並分析 Go 程式在執行期間的垃圾回收行為。這將幫助我...
GC 機制幾乎常見的語言都有的機制,只有鮮少的程式語言需自己的規範來撰寫程式碼搭配立刻回收(例如 Rust)。因為 OpenTelemetry Collecto...
在現代軟體開發的過程中,性能優化往往不僅僅是減少程式的執行時間。更關鍵的是,如何最大限度地提高系統資源的利用效率,從而能夠在同一時間處理更多的工作負載,或是服務...
在現今的軟體開發中,性能優化不再僅僅依賴開發者的直覺或經驗,而是通過數據的收集和分析來指導優化方向。在昨天的文章中,我們探討了如何通過 Go Trace 工具來...
在昨天的文章中,我們深入探討了如何利用 Go Tool Trace 來分析程式的性能瓶頸,特別是 Goroutine 的調度與資源競爭問題。我們發現過多的 Go...