สวัสดีค่าทุกคนนนน 👋
ขอเขียนถึงเพื่อนรักบ้าง ซี่รี่ส์นี้ขอตั้งว่า Claude Code ถอดสมอง 55555 แบบเมริงเอาสมองกูไปเลยข่ะะะะ ถอดให้
อันนี้จะเขียนสรุปตาม roadmap ของ roadmap.sh/claude-code นะ เอาเป็นว่าอ่านจบ ถอดสมองได้เลย 5555 ใครเพิ่งเริ่มใช้ Claude Code ลองอ่านดูได้ ไม่ต้องมีพื้นหลัง dev แบบหนักมาก พยายามจะอธิบายให้เด็กมอปลายสายคอมฯเข้าใจ แต่ถ้าขีเกียจอ่านจริงๆ จ้างเราไปสอนได้นะ หรือมีไอเดียอะไรอยากให้ช่วยก็จ้างได้เช่นกันนน 🙌
ก่อนอื่นเลย Claude Code คืออะไร?
ถ้าใครยังไม่รู้จัก Claude Code เลย อธิบายสั้นๆ ว่ามันคือ AI ที่นั่งอยู่ใน terminal (command line) ของเรา แทนที่จะแค่คุย มันทำได้จริงๆ เลย เช่น
อ่านและแก้ไขไฟล์ code ในโปรเจคเรา
รัน shell commands
ค้นหาข้อมูลบนเว็บ
เชื่อมกับ tools ภายนอกผ่าน MCP
เหมือนมีนักพัฒนาคนนึงนั่งอยู่ข้างๆ แต่ไม่ต้องจ่ายเงินเดือนให้ (จ่ายค่า API แทน 5555)
ถอดสมอง: Claude Code ทำงานยังไงก่อนที่เราจะเริ่มใช้งานมันเยี่ยงทาส?
ก่อนที่เราจะสั่งมัน Claude Code จะทำขั้นตอนต่อไปนี้ทุกครั้ง:
เปิด Claude Code
↓
สแกนหาไฟล์ CLAUDE.md ใน directory ปัจจุบัน
↓
ถ้าเจอ → โหลดเนื้อหาเข้า context window ทันที
ถ้าไม่เจอ → เริ่มต้นด้วยความรู้ blankๆ
↓
รอเราสั่ง
context window คืออะไร? ให้นึกภาพมันคือ "ความจำระยะสั้น" ของ AI ครั้งนึงๆ มีพื้นที่จำกัด ทุกอย่างที่ Claude "รู้" ใน session นั้นต้องอยู่ในนี้ รวมถึง code ที่อ่าน, คำสั่งที่รัน, และ instructions ใน CLAUDE.md ด้วย
ดังนั้น CLAUDE.md จึงเป็นเหมือน pre-loaded memory เป็นข้อมูลที่ถูกยัดเข้า context window ไว้ก่อนเลย ก่อนที่เราจะพิมพ์สั่งงานมัน
ปัญหาที่ทุกคนเจอ: Claude จำอะไรไม่ได้เลย
โอเค ลองนึกภาพว่าเราจ้างพนักงานใหม่มา วันแรกเราอธิบายทุกอย่างให้ฟังว่าโปรเจคนี้ทำอะไร ใช้ภาษาอะไร rules อะไรบ้าง อย่าแตะไฟล์ไหน
วันถัดมา... พนักงานคนนี้จำไม่ได้เลยสักอย่าง อิควัยย 5555
นั่นแหละคือ Claude Code ถ้าไม่มี CLAUDE.md ทุก session ใหม่ มันจะเริ่มแบบไม่รู้เรื่องอะไรเลย ไม่รู้ว่าโปรเจคเราชื่ออะไร stack ใช้อะไร หรือแม้แต่ว่าห้ามรัน rm -rf / (อย่าหาทำ 5555)
CLAUDE.md คืออะไร? อธิบายแบบเด็กมอปลายอ่านเข้าใจ
CLAUDE.md คือไฟล์ text ธรรมดาๆ ไฟล์นึง ที่เราวางไว้ใน root ของโปรเจค และ Claude Code จะ โหลดมันทุกครั้งที่เริ่ม session ใหม่
คิดง่ายๆ ว่ามันคือ คู่มือพนักงานที่พนักงาน (Claude) อ่านก่อนมาทำงานทุกวัน
แทนที่จะต้องพิมพ์อธิบายซ้ำทุกครั้งว่า "เฮ้ เราใช้ Next.js นะ ภาษาอังกฤษนะ อย่า import ไฟล์นี้นะ" ให้เขียน CLAUDE.md ไว้ด้วย
โครงสร้าง CLAUDE.md ที่ดีหน้าตาเป็นยังไง
ใช้ framework ที่เรียกว่า WHAT / WHY / HOW
# CLAUDE.md
## โปรเจคนี้คืออะไร (WHAT)
นี่คือ web app สำหรับจัดการตารางเรียน Pilates ค่ะ
ลูกค้าคือสตูดิโอ Pilates ในกรุงเทพ
## ทำไมถึงออกแบบแบบนี้ (WHY)
เลือก Next.js เพราะต้องการ SSR สำหรับ SEO
เลือก Prisma เพราะทีมคุ้นเคย type-safe ORM
## ทำอย่างไร (HOW)
- รัน dev server ด้วย: npm run dev
- รัน tests ด้วย: npm test
- อย่าแก้ไขไฟล์ใน /legacy/ เด็ดขาด
- commit message ต้องเป็นภาษาอังกฤษ เช่น "feat: add booking form"
ตัวอย่าง CLAUDE.md จริงๆ
เอาแบบที่ใช้จริงในงานให้ดูเลยยย:
# Project: Chawanee.com Blog
## Stack
- Next.js 15 (App Router)
- TypeScript
- Tailwind CSS
- Supabase (database + storage)
## สิ่งที่ห้ามทำเด็ดขาด
- ห้ามลบ /mnt/user-data/ โดยไม่ถามก่อน
- ห้าม push ตรง main branch — ต้องทำ PR เสมอ
- ห้ามแก้ไขไฟล์ .env
## Code Style
- ใช้ TypeScript strict mode เสมอ
- component ชื่อ PascalCase
- function ชื่อ camelCase
- ไม่ใช้ any ใน TypeScript
## วิธีรัน
- dev: npm run dev
- build: npm run build
- test: npm run test
## โครงสร้างสำคัญ
- /app — Next.js routes
- /components — React components
- /lib — utility functions
- /public — static files
แค่นี้เลย! ไม่ต้องยาวมาก อ่านง่าย ชัดเจน
แล้วทำไม CLAUDE.md ถึงต้องสั้น?
นี่คือสิ่งที่หลายๆคนพลาด คิดว่ายิ่งใส่ข้อมูลเยอะ Claude ยิ่งเก่ง
โนนนนนนววว 🙅♀️
เพราะ context window มีขนาดจำกัด และ Claude ไม่ได้อ่านทุกอย่างเท่ากัน มีงานวิจัยที่เรียกว่า "Lost in the Middle" ที่บอกว่า LLMs มักจะ "เข้าใจ" สิ่งที่อยู่ต้นๆ และท้ายๆ ของ context ดีกว่าสิ่งที่อยู่ตรงกลาง
ความสนใจของ Claude ต่อเนื้อหาใน context:
สูง ██████████ ← ต้น (เจอก่อน = จำแม่น)
██████
กลาง ████ ← กลาง (ไม่ค่อยสนใจ)
██████
สูง ██████████ ← ท้าย (เจอล่าสุด = จำแม่น)
ดังนั้น instructions ที่อยู่ตรงกลางไฟล์ยาวๆ มีโอกาสโดนมองข้ามจริงๆ แนะนำให้:
เขียนไม่เกิน 500 บรรทัด (ideally ไม่เกิน 200)
วางสิ่งที่สำคัญที่สุดไว้ ต้นไฟล์ เสมอ
อย่าใส่สิ่งที่ Claude รู้อยู่แล้ว เช่น "JavaScript คือภาษาโปรแกรมมิ่ง" 💀
CLAUDE.local.md คืออะไร?
มีอีกไฟล์นึงคือ CLAUDE.local.md
ความต่างคือ:
ไฟล์ใช้สำหรับCommit ขึ้น Git? CLAUDE.md ❌ ไม่ (gitignored)
ถ้าเรามี path สำหรับ test environment หรือ note ส่วนตัวที่ไม่อยากให้ทีมเห็น ก็ใส่ใน CLAUDE.local.md ได้เลย
ลองทำดู!
เปิด terminal ไปที่โปรเจคที่ใช้อยู่
สร้างไฟล์ชื่อ
CLAUDE.mdที่ root ของโปรเจคเขียนโครงสร้างง่ายๆ 3 ส่วน: Stack ที่ใช้ สิ่งที่ห้ามทำ วิธีรัน project
เปิด Claude Code แล้วถามว่า "สรุปให้หน่อยว่า project นี้คืออะไร"
ดูว่ามันตอบถูกไหม ถ้าถูก แปลว่ามันอ่าน CLAUDE.md เราแล้ว
สรุป
CLAUDE.md คือ foundation สำคัญที่สุด ของการใช้ Claude Code
เหมือนจะวิ่ง ก็ต้องใส่รองเท้าก่อน ไม่ค่อยได้วิ่งเลยช่วงนี้ 5555 🏃♀️
EP ถัดไป เราจะมาดู Spec Files กัน มันคืออะไร? ไม่บอกหรอก ตามไปอ่านเอง 55555
ขอบคุณที่อ่านจนจบนะคะ ขอให้มีวันที่ดีค่าา <3
Tags: Claude Code, AI, Terminal, Developer Tools, Anthropic