iT邦幫忙

go相關文章
共有 409 則文章
鐵人賽 Software Development DAY 11

技術 Day 11:實作核心資料結構 Set 與集合操作命令

Redis 的 Set (集合) 是一個無序且**成員唯一(Unique)**的字串容器。平常開發拿來存標籤(Tags)、IP 白名單或共同好友很方便。 今天來...

鐵人賽 Software Development DAY 10

技術 Day 10:實作核心資料結構 Hash 與欄位操作命令

Redis 的 Hash 很適合存物件資料,不用每次都把整包 JSON 存進去;只改某個欄位時,直接動那個 field 就好。它其實就是 field 到 val...

鐵人賽 Software Development DAY 9

技術 Day 09:實作核心資料結構 List 與雙端操作命令

Redis 的 List 很常拿來做 Message Queue,或是處理需要從頭尾推資料的場景。它本質上是一串二進位安全字串。 今天來做 List,先補最常用...

鐵人賽 Software Development DAY 8

技術 Day 08:過期時間(TTL)與惰性刪除機制深度解析

用過 Redis 的人都知道 EXPIRE 很好用,時間一到資料就不見了。這在快取、驗證碼與臨時鎖等場景中是很重要的特性。 今天就來把 TTL 和惰性刪除(La...

鐵人賽 Software Development DAY 7

技術 Day 07:實作記憶體引擎基礎命令:SET, GET, DEL 與 EXISTS

引擎骨架弄好後,今天直接來實作最基本的 String 操作:SET、GET、DEL 和 EXISTS。 基礎命令的設計與實作 我在 code/db/db.go...

鐵人賽 Software Development DAY 6

技術 Day 06:設計與實作thread-safe 的記憶體儲存引擎

網路和 Parser 搞定後,今天終於要進到重頭戲:記憶體資料庫引擎。 今天先把 Thread-safe 的記憶體儲存引擎做出來,讓後面的命令有地方可以真的讀寫...

鐵人賽 Software Development DAY 5

技術 Day 05:實作 RESP Parser - 解析 Bulk Strings 與 Arrays,完成基礎的 Parser 單元測試

昨天把單行解析補完後,今天換處理 RESP 裡比較容易寫錯的兩個型別:Bulk Strings (二進位安全字串) 與 Arrays (陣列)。這兩個一個要處理...

鐵人賽 Software Development DAY 4

技術 Day 04:實作 RESP Parser - 解析 Simple Strings, Errors 與 Integers

昨天把 Parser 的骨架搭好了,今天就直接來寫解析邏輯吧。 我先挑比較軟的柿子吃,從 RESP 裡三種單行資料型態開始:Simple Strings (簡單...

鐵人賽 Software Development DAY 3

技術 Day 03:RESP 協定介紹與 Parser 基礎架構設計

要自己刻 Redis,第一步當然是要讓 Server 聽得懂 Client 在講什麼。Redis 客戶端與伺服器之間進行通訊時,使用的是一種名為 RESP (R...

鐵人賽 Software Development DAY 2

技術 Day 02:實作高併發 TCP Socket 伺服器與 Graceful Shutdown

寫資料庫引擎之前,網路層得先站穩。Redis 之所以快,底層事件模型佔了很大一部分;我雖然不用在 Go 裡手刻 epoll,但還是得先做出一個可以同時處理多個...

鐵人賽 Software Development DAY 1

技術 Day 01:Redis Clone 專案規劃與 Go 開發環境初始化

為什麼要自己寫一個 Redis? Redis 很多人都用過,拿來做快取、工作佇列、分散式鎖都很順手。但我一直覺得只停在「會用」有點可惜,尤其是它背後的網路 I/...

技術 Golang 每日一小時(Day8)

今天開頭就又學了一種新的 function 寫法,該型別專屬的 method,有一點點 class method 的感覺,在 function name 前面指...

技術 Golang 每日一小時(Day7)

map 基本上就是 Python 的 dict,寫過 Python 跟 JavaScript 的我一直以為是 array 的那個 map... type Ver...

技術 Golang 每日一小時(Day6)

More types: structs, slices, and maps.中間有一大部分都是介紹 slice 的各種用法,沒有什麼特別的語法,值得一提的是,看...

技術 Golang 每日一小時(Day5)

這幾天累到連電腦都不想開...這樣不行,今天逼自己哪怕只學一個語法或複習也要看。上次學完之後,無聊開了一個 easy 來寫,才發現自己連 array 都還不會用...

技術 Golang 每日一小時(Day4)

上次學完 for loop,這次接著官方教學往後看,第一個是 switch,switch 倒是沒有太大區別,值得一提的是不用 break,也可以不用條件式 (視...

技術 Golang 每日一小時(Day3)

複習完 package 之後,注意到「輸出文字」的 Println 綁在這個模組內 import "fmt" 想說這個 fmt 是不是類似...

技術 Golang 每日一小時(Day2)

因為有其他語言的經驗,不用從變數、型別、for loop 這樣慢慢學下去,跟 AI 討論了一下,我應該從 Go 的思維模式與生態學起,這時候官方的 A Tour...

技術 Golang 每日一小時(Day1)

前言 一點小咕噥,不重要不用看 機械系畢業後找了一份程式助理的工作,做了2~3年雖然也是有寫到各式各樣的軟體、網頁、服務,但總感覺都還只是摸到表面,也都活在別人...

技術 Go Singleflight 實作全攻略:優化 API 消耗、並發控制與監控實務

完整內容請至幹話王 Blog Go Singleflight 實作全攻略:優化 API 消耗、並發控制與監控實務 在開發高併發應用程式(如股票分析機器人)時,我...

鐵人賽 Software Development DAY 8

技術 Day 8 - 微基準:用 go test -bench 建立效能基線

到目前為止,我們已經有了 /search、中介層、context/timeout 與錯誤策略。今天目標是: 寫幾個微基準來量測「一小段可重複的關鍵程式」,建立...

鐵人賽 Modern Web DAY 3
後端攻略筆記 系列 第 3

技術 Day 3 : Go語言 slice 與 map 應用練習

📘 小劇場:雜貨店老闆的日常 你是一位經營「Gross 雜貨舖」的小老闆,店裡有一份 Units 表,記錄各種單位轉換(像 dozen, gross 等)。顧客...

鐵人賽 Modern Web DAY 2
後端攻略筆記 系列 第 2

技術 Day 2 : Go語言 slice 與 map 進階理解

⚙ 篇二 一、slice 的底層原理 slice 本質是一個結構: type slice struct { ptr *array // 指到底層陣列...

技術 Go語言 range 與 map 統計:初學者也能懂的小應用

想像你開了一家小雜貨店: 客人來進貨清單是 [蘋果, 香蕉, 香蕉, 蘋果, 蘋果, 葡萄] 你需要統計每種水果有幾個,而不是只是一次次看到「蘋果」、「香蕉」...

鐵人賽 Cloud Native DAY 1

技術 Go 語言搶票煉金術 Day1 -工程師的價值,是將程式碼煉成金礦

Go 語言搶票煉金術 Day1 -工程師的價值,是將程式碼煉成金礦 在開始之前,想先問一個問題: 我們為什麼不稱之為「Go 語言搶票程式設計」,而要用 煉金術...

技術 Go synctest:徹底解決並發測試的痛點

完整內容在此, 幹話王_Go synctest:徹底解決並發測試的痛點 Go 語言以 goroutine 和 channel 聞名,併發測試場景卻常常讓人頭痛...

技術 什麼是高內聚與低耦合的程式架構?

今天想來分享高內聚 (High Cohesion) 與低耦合 (Loose Coupling) 的概念 🔹高內聚 定義:一個模組(或類別)裡的功能彼此高度相關、...

技術 續談 MCP Server︰Resource、Server Inspector

完整內容在此, 幹話王_續談 MCP Server︰Resource、Server Inspector 6 月 DevOps Days 早鳥票售賣中 繼上一篇...

技術 GO 與 MCP Server 的簡單介紹

完整內容在此, 幹話王_認識 MCP Go 工具 6 月 DevOps Days 盲鳥票售賣中 第一次知道 Mark3labs 開發的 MCP Go 工具是因為...

技術 GitLab 與 SonarQube 整合

完整內容在此, 幹話王_Grafana GitLab 與 SonarQube 整合 GitHub Repository連結 GitLab 與 SonarQube...