Sections
Apps
มุมเครื่องมือเล็กๆ
2 POSTS
→

Article
บทความน่าสนใจจากนอก — แปลเป็นไทยสำหรับเก็บไว้อ่าน
3 POSTS
→

Book
Reading notes & takeaways, mostly in Thai.
2 POSTS
→

Cheat Sheet
Quick references I keep coming back to.
0 POSTS
→

Git
บันทึกการเรียนรู้ Git ตั้งแต่ command line พื้นฐานจนทำงานร่วมกับทีมได้จริง
12 POSTS
→

Go
บันทึกการเรียนรู้ Go ตั้งแต่พื้นฐานจนใช้งานได้จริง
16 POSTS
→
Tools
เครื่องมือและของเล่นที่น่าสนใจ
1 POST
→
All notes
- 01 Herdr
- 02 ตอนที่ 16: Here Be Dragons — Reflect, Unsafe, and Cgo รู้จักประตูแหกกฎสามบานของ Go — reflect สำหรับ type ตอน runtime, unsafe สำหรับจัดการ memory โดยตรง และ cgo สำหรับคุยกับ C พร้อมรู้ว่าเมื่อไหร่ควรใช้และเมื่อไหร่ควรเลี่ยง
- 03 ตอนที่ 15: Writing Tests เขียนเทสต์ Go ให้เป็นนิสัยด้วย testing และ go test ตั้งแต่เทสต์แรก table test coverage fuzzing benchmark ไปจนถึง stub httptest และ race detector
- 04 ตอนที่ 14: The Context ใช้ `context` ส่ง metadata ผ่าน request ยกเลิกงาน และกำหนด timeout ให้โค้ด Go ทำงานต่อได้อย่างรับผิดชอบ
- 05 ตอนที่ 13: The Standard Library ต่อท่อข้อมูลด้วย io ใช้ time และ JSON จนสร้าง HTTP server พร้อม middleware และ structured logging ได้ด้วย standard library ของ Go
- 06 ตอนที่ 9: Three-Way Merges สร้างสถานการณ์ที่ history ของ local กับ remote diverge กันจริง แล้วลงมือทำ three-way merge ตั้งแต่ตั้ง upstream branch, แก้ไฟล์ซ้ำก่อน commit จนถึงเขียน merge commit message ใน Vim
- 07 ตอนที่ 12: Pull Requests เดินครบ 9 ขั้นของ pull request process ตั้งแต่สร้าง topic branch, push ด้วย trick --set-upstream, เปิด PR บน hosting service, review, merge แบบ non-fast-forward จนถึง cleanup ด้วย git pull -p
- 08 ตอนที่ 12: Concurrency in Go ใช้ goroutine, channel และ select จัดโครงงานที่ทำพร้อมกันได้ พร้อมกัน goroutine leak ด้วย context, รอหลาย goroutine ด้วย WaitGroup และรู้ว่าเมื่อไหร่ควรเปลี่ยนไปใช้ mutex
- 09 ตอนที่ 11: Rebasing รวมงานอีกแบบที่ไม่สร้าง merge commit — ทำความเข้าใจ 5 ขั้นตอนของ rebase, ใช้ git restore --staged ถอดไฟล์ออกจาก staging area, resolve conflict ระหว่าง rebase ด้วย git rebase --continue และรู้ว่าเมื่อไหร่ห้าม rebase เด็ดขาด
- 10 ตอนที่ 10: Merge Conflicts สร้างสถานการณ์ที่สอง branch แก้บรรทัดเดียวกันในไฟล์เดียวกันจนเกิด merge conflict จริง แล้วฝึกอ่าน conflict markers, resolve ทีละไฟล์ตามขั้นตอน, และใช้ git merge --abort ถอยกลับเมื่อเปลี่ยนใจ
- 11 ตอนที่ 8: Cloning and Fetching เริ่มทำงานจาก remote repository ด้วย git clone แล้วใช้ git fetch และ git merge รับการเปลี่ยนแปลงเข้ามาอย่างเป็นขั้นตอน
- 12 ตอนที่ 7: Creating and Pushing to a Remote Repository สร้าง remote repository บน hosting service เชื่อมด้วย git remote add แล้ว push branch ขึ้น remote พร้อมแยก local branch, remote branch และ remote-tracking branch
- 13 ตอนที่ 6: Hosting Services and Authentication เลือก hosting service และเตรียม authentication ผ่าน HTTPS หรือ SSH ก่อนเชื่อม local repository เข้ากับ remote repository
- 14 ตอนที่ 5: Merging รวมงานจาก feature เข้า main ด้วย git merge พร้อมทำความเข้าใจ source branch, target branch, fast-forward merge และ detached HEAD แบบลงมือทำจริง
- 15 ตอนที่ 4: Branches สร้าง Git branch แยกงานใหม่โดยไม่กระทบ main พร้อมทำความเข้าใจ HEAD และ branch pointer
- 16 ตอนที่ 11: Go Tooling ใช้เครื่องมือรอบตัว Go ตั้งแต่รันและจัด format โค้ด ตรวจคุณภาพและช่องโหว่ ไปจนถึง embed asset, generate code และ build binary สำหรับหลายแพลตฟอร์ม
- 17 ตอนที่ 3: Making a Commit สร้าง commit แรกใน Git แบบเข้าใจ: ใช้ git status, git add, git commit และ git log พร้อมแยก working directory กับ staging area
- 18 ตอนที่ 10: Modules, Packages, and Imports จัดระเบียบโค้ด Go ด้วย module, package และ import พร้อมจัดการ dependency, internal package และ version ให้โปรเจกต์โตได้โดยไม่พันกัน
- 19 ตอนที่ 2: Local Repositories เปลี่ยนโฟลเดอร์ rainbow ให้เป็น Git repository ด้วย git init และเข้าใจ working directory, staging area, commit history และ .git
- 20 ตอนที่ 9: Errors จัดการ failure path ของ Go ด้วย error, wrapping, errors.Is, errors.As และ errors.Join พร้อมรู้ว่าเมื่อไหร่ควรใช้ panic และ recover
- 21 ตอนที่ 1: Git and the Command Line เริ่มต้นจากศูนย์ จน เข้าใจ version control, ใช้ command line ในการย้ายโฟลเดอร์, ติดตั้ง Git และตั้งค่า user.name กับ user.email
- 22 ตอนที่ 8: Generics ใช้ type parameters สร้าง type และ function ที่ทำงานกับหลายชนิดข้อมูล พร้อมรักษา type safety และให้ compiler ช่วยตรวจตั้งแต่ compile time
- 23 ตอนที่ 7: Types, Methods, and Interfaces นิยาม user-defined type, ผูก method ด้วย value หรือ pointer receiver, ใช้ embedding และ implicit interface เพื่อออกแบบโค้ดที่ยืดหยุ่นและทดสอบง่าย
- 24 ตอนที่ 6: Pointers ทำความเข้าใจ pointer, address, dereference และ call-by-value พร้อมเลือกใช้ value หรือ pointer ให้เหมาะกับ data flow, slice และ garbage collector ของ Go
- 25 ตอนที่ 5: Functions เรียนรู้ syntax พื้นฐาน, variadic, multiple return values, closure, defer และ call by value ซึ่งเป็นพื้นฐานสำคัญก่อนเข้าสู่เรื่อง pointer
- 26 Cognitive Debt แปลจากบทความของ Ankur Sethi — ทำไมการพิมพ์โค้ดที่ AI เขียนทีละบรรทัดด้วยตัวเองถึงช่วยลด Cognitive Debt และทำให้เราเข้าใจโค้ดเบสของตัวเองมากขึ้น
- 27 ตอนที่ 4: Blocks, Shadows, and Control Structures เรียนรู้ block, scope และ shadowing พร้อม control structures ทั้งหมดของ Go — if, for ทั้งสี่รูปแบบ, for-range, switch, blank switch และ goto แบบ step by step
- 28 ตอนที่ 3: Composite Types เรียนรู้ array, slice, string, map และ struct ของ Go แบบ step by step พร้อมทำความเข้าใจ length, capacity, backing array, UTF-8 และ comma ok idiom
- 29 ตอนที่ 2: Predeclared Types and Declarations เรียนรู้ชนิดข้อมูลพื้นฐานของ Go, zero value, literals, การแปลง type, var, const และกฎการประกาศตัวแปรแบบ step by step
- 30 ตอนที่ 1: Setting Up Your Go Environment มือใหม่ Go? มาเริ่มจากศูนย์: ติดตั้ง toolchain, เขียนโปรแกรมแรก, ใช้ go build/go fmt/go vet และสร้าง Makefile แบบ step by step
- 31 JetBrains Context แนะนำ JetBrains Context เครื่องมือที่ช่วยให้ AI coding agent เข้าใจโค้ดเบสขนาดใหญ่ได้เร็วขึ้น ลดเวลาสำรวจโค้ด ลด token และลดต้นทุนการทำงาน
- 32 Loop Engineering แปลจาก Loop Engineering โดย Addy Osmani — ว่าด้วยการออกแบบระบบที่ทำงานแทนตัวเราในการ Prompt AI Agent
- 33 Leading Effective Engineering Teams Leading Effective Engineering Teams
- 34 Hidden Potential Hidden Potential
NO NOTES IN THIS CATEGORY YET.
