Day 14 - Redis 的終極武器:Lua Script 的實踐 昨天,我們用 client.Eval() 成功地執行了第一個 Lua 腳本,解決了多個...
Go 語言搶票煉金術:Day 13 - 原子性的延伸:單一命令不夠用時,如何用 Lua 在 Redis 當中實現 在前幾篇中,我們用 Redis DECRBY...
Go 語言搶票煉金術 Day 12 - 建立連接:在 Go 中與 Redis 對話 今天,我們要建立與 Redis 的連接。 但別急著寫程式碼。先問一個 問題...
Go 語言搶票煉金術 Day 11 - Redis 的工具:搞懂 String 和 Hash 今天,我們要來搞懂 Redis 的兩個資料結構:String 和...
在上一篇中,我們雖然多少看懂了行為是怎麼運作,但如果不靠GenAI,我們還是無法理解程式碼是怎麼運作的,所以 臨時急件 救火中... 臨時急件 救火中...臨時...
Go 語言搶票煉金術 Day 10 - 引入 Redis 新盟友 在前篇,我們發現了資料庫的物理極限:磁碟 I/O 的 15-50 微秒延遲,在高併發熱點寫入...
還記得我們的目標是什麼嗎! 設計一組能夠記錄「待辦功能」的 API。 1. 路徑規劃 2. 需求解析 3. 回應結構 這三項是三大重點。 而專案的主要需求是...
Go 語言搶票煉金術 Day 9 - 識別真正敵人:為什麼磁碟 I/O 是不可逾越之牆 在上一篇,我們的壓力測試在 1500 RPS 時撞牆了。根本原因是資料...
在上一篇我們已經生了四份對應的程式碼,但接下來我們要怎麼讓這四份程式碼動起來? 我自己是習慣使用『Docker』環境來運行程式碼,不管在哪個OS,都是可控、穩定...
Go 語言搶票煉金術 Day 8 - 度量標準:來寫你的第一個壓力測試 工程是科學,在我們對架構做出任何重大改動之前,必須先有客觀的數據作為決策依據。 在上一...
接下來我們的實作都會在VScode + Github Copilot ,所以一定要準備的 VScode + Github Copilot 不能少。 在覺得最舒服...
Go 語言搶票煉金術 Day 7 - 資料庫方案:如何用原子 UPDATE 解決競爭條件 昨天我們證明了用 Go 的記憶體鎖 sync.Mutex 鎖不住跨越...
Go 語言搶票煉金術 Day 6 - 常見陷阱:為什麼不能用 Go 的鎖來解決資料庫的併發問題 在前面幾篇我們證明了基本的「讀取 → 修改 → 寫入」模式會導...
Go 語言搶票煉金術 Day 5 - Go 的併發工具箱 (三):Channel 的消息傳遞 在前幾篇文章中,我們探討了 goroutine 如何讓我們輕鬆地...
Go 語言搶票煉金術:Go 的併發工具箱 (二):Mutex 與 RWMutex 上一篇,我們學會了如何使用 goroutine 來實現併發,並用 WaitG...
昨天我們用 fake ES 成功寫出第一個 E2E 測試。今天的目標更進一步: 啟動一個本地 Elasticsearch(Docker)並撰寫真正的 ESSea...
到目前為止,我們寫了 table-driven 測試、加了 context/timeout、做了微基準。今天要進一步學會: 啟動 pprof:在程式中暴露...
到目前為止,我們已經有了 /search、中介層、context/timeout 與錯誤策略。今天目標是: 寫幾個微基準來量測「一小段可重複的關鍵程式」,建立...
Go 語言搶票煉金術:Day 3 - Go 的併發工具 (一):goroutine 與 WaitGroup 上次我們證明了在沒有任何併發控制下,一個簡單的「讀...
Go 語言搶票煉金術 Day 2 - 併發陷阱:為什麼你的搶票系統總在超賣? 在高併發場景下,當多個請求試圖同時修改同一個資源時——例如搶票系統中的庫存數量—...
昨天的前言裡,我們談了這個系列的動機和最終目標:用 Golang、Elasticsearch 和 Kubernetes 打造一個雲原生搜尋服務。今天正式進入第一...
昨天聊完了和 PHP Laravel 框架的比較 今天來聊聊我主觀對 Ktor 和 Golang 進行後端開發的比較 Kotlin vs Golang 首先比較...
主題 昨天我們完成了 關卡難度選擇與執行時間顯示,遊戲已經能完整跑起來。不過一個好玩的數獨遊戲,除了基本的規則檢查與勝利判斷之外,互動體驗才是能讓玩家持續遊玩的...
主題 在前幾天,我們已經完成了數獨盤面的初始化、玩家輸入檢查、勝利判定與結束畫面。今天的重點是進一步提升遊戲性: 加入「關卡難度選擇」功能,讓玩家能挑戰不同難...
前言 昨天我們完成了 輸入違規提示與剩餘格數、錯誤格數的顯示,今天要進一步設計遊戲的 勝利檢查與結束畫面。這是數獨遊戲的最後一步之一,能讓玩家有完整的挑戰與回饋...
主題 本篇文章的目標,在玩家輸入違規時,於畫面上即時給予提示或標記,並額外在遊戲畫面上顯示: 剩餘尚未填寫的格數 當前檢測出的錯誤格數 輸入違規的提示設計...
標題: LeetCode 1732 找最高海拔 接下來幾天,來學點不一樣,把之前學過的概念,應用在實際例子跟解題上面!! 題目來源:LeetCode 1732...
主題 在前一天,我們已經完成了 Sudoku 基本盤面繪製,能在畫面上顯示 9x9 的格子結構。今天的目標是讓玩家能夠「操作遊戲」,具體來說: 用鍵盤方向鍵移...
【Go 練習題】用 for...range 幫助小偵探統計「神秘盒子」裡的寶藏 題目背景 你是一位尋寶小偵探,手裡有一個裝滿多種寶物(不同數量糖果、金幣、寶石...
主題 繪製盤面格子與 3x3 區塊分隔線目標是讓遊戲螢幕能夠清楚呈現數獨盤面。 為什麼要畫盤面? 數獨的核心就是一個 9x9 的方格,玩家需要直觀地看到: 每...