Tôi đã dùng Claude Code hơn nửa năm, và tôi vấp phải nhiều cạm bẫy hơn cả số dòng code tôi viết ra.
Ban đầu, tôi nghĩ Claude Code chỉ là một "Copilot cao cấp hơn"—gõ lệnh trong terminal, nó viết code, xong việc. Sau đó, tôi nhận ra rằng giới hạn của công cụ này cao hơn nhiều so với tôi tưởng tượng, nhưng chỉ khi bạn biết cách sử dụng nó.
Bài viết này kết hợp tài liệu chính thức và kinh nghiệm thực tế để tổng hợp những mẹo sử dụng quan trọng nhất mà tôi cho là đúng. Một số là bài học xương máu, số khác là những tính năng ẩn mà tôi chỉ khám phá ra khi đọc tài liệu.
1. CLAUDE.MD: Tính năng bị đánh giá thấp nhất
Nếu bạn chỉ nhớ một điều từ bài viết này, hãy nhớ điều này: Hãy viết CLAUDE.md thật tốt.
CLAUDE.md là tệp hướng dẫn mà Claude Code tự động đọc khi bắt đầu mỗi cuộc trò chuyện. Nó giống như một tài liệu onboarding bạn viết cho một đồng nghiệp mới—bất cứ điều gì bạn muốn họ biết, bạn viết vào đó.
Nhiều người không viết CLAUDE.md hoặc chỉ viết vài dòng. Kết quả là phải giải thích cấu trúc dự án, tiêu chuẩn code và lựa chọn tech stack từ đầu trong mỗi cuộc trò chuyện. Giống như việc giới thiệu lại công ty cho đồng nghiệp của bạn mỗi sáng vậy.
Một CLAUDE.md tốt nên bao gồm:
1# Tên Dự án23## Lệnh Build và Test4- Cài đặt dependencies: npm install5- Chạy test: npm test6- Test đơn lẻ: npm test -- --grep "tên test"7- Format code: npm run format89## Tiêu chuẩn Code10- Python: Sử dụng ruff để format, độ rộng dòng 8811- Testing: Sử dụng pytest, một tệp test cho mỗi service12- API Routes: Sử dụng tên tệp số nhiều: users.py, orders.py13- Commit messages: Tiếng Anh, định dạng: type(scope): description1415## Quyết định Kiến trúc16- Chọn Tailwind thay vì CSS Modules vì team đã chuẩn hóa trên nó17- Kiểm tra quyền người dùng được thực hiện trong middleware; không lặp lại trong mọi route18- Redis cache key prefix: app:v1:1920## Cạm bẫy Thường gặp21- Giới hạn kết nối DB pool là 20; không mở kết nối mới trong vòng lặp22- Không mock database; lần trước mock pass nhưng production migration thất bại
Nguyên tắc chính:
Đầu tiên, viết những thứ Claude không thể suy luận từ code. "Tại sao" của một dự án quan trọng hơn "cái gì." Bạn không cần giải thích cách sử dụng React, nhưng bạn cần nói với nó "chúng tôi chọn Tailwind vì team đã chuẩn hóa trên nó."
Thứ hai, giữ dưới 200 dòng. Tài liệu chính thức đề cập rõ ràng rằng nếu CLAUDE.md quá dài, Claude có thể bỏ qua các quy tắc. Sử dụng tiêu đề markdown và danh sách để dễ quét.
Thứ ba, không đưa nội dung thay đổi thường xuyên. Tài liệu API chi tiết hoặc mô tả từng tệp không thuộc về CLAUDE.md. Chỉ cung cấp các liên kết.
Bốn Cấp độ của CLAUDE.md
Claude Code hỗ trợ bốn cấp độ CLAUDE.md, được sắp xếp theo thứ tự ưu tiên từ cao nhất đến thấp nhất:

Trong CLAUDE.md toàn cục của tôi, tôi thường viết:
1- Tôi là một kỹ sư full-stack; không cần giải thích quá kỹ các khái niệm cơ bản2- Giữ câu trả lời ngắn gọn; bỏ qua những lời xã giao không cần thiết3- Đừng tóm tắt những gì bạn đã làm sau khi thay đổi code; tôi sẽ kiểm tra diff4- Ưu tiên các giải pháp đơn giản; tránh over-engineering
Bốn dòng này có thể giúp bạn tiết kiệm hàng trăm lần sửa lỗi lặp đi lặp lại.
Nâng cao: Sắp xếp quy tắc với .claude/rules/
Khi dự án phát triển, một tệp CLAUDE.md sẽ không chứa hết mọi thứ. Giải pháp chính thức thanh lịch hơn: Chia quy tắc vào thư mục .claude/rules/.
1.claude/rules/2├── testing.md # Tiêu chuẩn testing3├── api-style.md # Phong cách viết API4└── frontend.md # Quy ước frontend
Thậm chí mạnh mẽ hơn, bạn có thể sử dụng YAML frontmatter để giới hạn quy tắc cho các tệp cụ thể:
1---2paths: ["src/api/**/*.ts", "src/routes/**/*.ts"]3---45Các route API phải bao gồm xác thực đầu vào và xử lý lỗi.6Tất cả các endpoint mới đều yêu cầu integration tests trong tests/api/.
Bằng cách này, quy tắc chỉ được tải khi Claude truy cập các tệp phù hợp, tiết kiệm không gian context.
2. Chất lượng Prompt Quyết định Chất lượng Đầu ra
Điều này nghe có vẻ sáo rỗng, nhưng tôi đã thấy quá nhiều người sử dụng Claude Code như thế này:
"Hãy giúp tôi viết tính năng đăng nhập"
Sau đó họ lo lắng về một đống code được tạo ra—đây không phải điều tôi muốn.
Một hướng dẫn tốt nên chứa ba yếu tố: Mục tiêu, Ràng buộc và Ngữ cảnh.
Hướng dẫn Tồi vs Hướng dẫn Tốt
Tồi: "Thêm tính năng tìm kiếm vào danh sách người dùng"
Tốt: "Thêm một ô tìm kiếm phía trên bảng trong @src/pages/UserList.tsx. Tìm kiếm nên sử dụng backend API /api/users?search=xxx, không lọc phía frontend. Sử dụng debounce 300ms, và giữ phong cách nhất quán với component Filter hiện tại."
Sự khác biệt? Hướng dẫn tốt làm giảm sự mơ hồ. Claude Code không phải đoán xem bạn muốn tìm kiếm frontend hay backend, thời gian debounce hay tiêu chuẩn styling.
Mẹo Prompting Được Khuyến nghị Chính thức
1. Sử dụng @ để tham chiếu các tệp cụ thể
Claude Code hỗ trợ sử dụng @filepath để kéo nội dung tệp trực tiếp vào context. Thay vì nói "đoạn code liên quan đến auth," viết @src/auth/login.ts chính xác hơn nhiều. Bạn thậm chí có thể chỉ định phạm vi dòng: @src/auth/login.ts#5-30.
2. Dán ảnh chụp màn hình và hình ảnh
Sử dụng Ctrl+V để dán ảnh trực tiếp. Khi debug các vấn đề UI, một ảnh chụp màn hình "nó trông như thế nào" so với "tôi muốn nó như thế nào" hiệu quả hơn gấp mười lần so với mô tả bằng văn bản.
3. Cung cấp tiêu chí xác thực
Đừng chỉ nói "giúp tôi sửa lỗi này," hãy nói:
"Sửa lỗi xác thực lại thất bại sau khi hết hạn đăng nhập. Sau khi sửa, nhấp vào bất kỳ nút nào sau khi token hết hạn sẽ tự động chuyển hướng đến trang đăng nhập. Các test case nằm trong @tests/auth.test.ts; chạy chúng để xác nhận chúng pass sau khi sửa."
Cung cấp cho Claude một tiêu chuẩn tự kiểm tra—test case, ảnh chụp màn hình, đầu ra mong đợi—để nó có thể tự kiểm tra chất lượng công việc và giảm bớt việc qua lại.
4. Nói rõ KHÔNG nên làm gì
Claude Code đôi khi có thể quá nhiệt tình—bạn yêu cầu nó sửa một lỗi, và nó refactor luôn code xung quanh. Nói rõ ràng "chỉ thay đổi hàm này, không động vào code khác" giúp tiết kiệm rất nhiều rắc rối.
Khi nào hướng dẫn mơ hồ hữu ích
Không phải mọi tình huống đều cần độ chính xác. Hướng dẫn mơ hồ thực sự tốt hơn cho các tác vụ khám phá:
- "Có thể cải thiện điều gì trong tệp này?"
- "Giúp tôi hiểu kiến trúc của module này"
- "Có vấn đề tiềm ẩn nào với code này không?"
Nhưng một khi bạn đến giai đoạn triển khai, hãy chuyển lại chế độ chính xác.
3. PLAN MODE: Suy nghĩ Rõ ràng Trước khi Hành động
Claude Code có Plan Mode, mà tôi cho là workflow bị đánh giá thấp nhất.
Cách vào Plan Mode
Ba cách:
1# Bắt đầu trực tiếp trong plan mode2claude --permission-mode plan34# Chuyển đổi trong cuộc trò chuyện (nhấn Shift+Tab hai lần)5Shift+Tab Shift+Tab67# Nói trong prompt8"Chưa thay đổi code, hãy giúp tôi lập kế hoạch"
Trong Plan Mode, Claude Code chỉ có thể đọc tệp và tìm kiếm code; nó không thể thực hiện bất kỳ sửa đổi nào. Nó khám phá codebase, phân tích yêu cầu của bạn và cung cấp một kế hoạch triển khai chi tiết.
Cách sử dụng Plan Mode đúng cách
Thao tác chính: Nhấn Ctrl+G để mở và chỉnh sửa kế hoạch trong editor của bạn.
Điều này có nghĩa là bạn có thể:
- Để Claude tạo một kế hoạch ban đầu
- Ctrl+G để mở kế hoạch, xóa các phần bạn không đồng ý và thêm ý tưởng của riêng bạn
- Chuyển lại chế độ bình thường (Shift+Tab) và để Claude thực thi theo kế hoạch đã sửa đổi
Thay đổi một kế hoạch chỉ mất một câu; thay đổi code đã viết mất gấp mười lần thời gian.
Workflow được khuyến nghị cho các tác vụ phức tạp
Quy trình tiêu chuẩn chính thức gồm bốn bước: Khám phá → Lập kế hoạch → Triển khai → Xác minh.
11. Vào Plan Mode22. Yêu cầu Claude đọc code liên quan: "Đọc code trong src/auth/ để hiểu logic session"33. Yêu cầu một kế hoạch: "Phát triển kế hoạch migration OAuth2"44. Ctrl+G để xem xét và chỉnh sửa kế hoạch55. Chuyển lại chế độ bình thường66. "Triển khai theo kế hoạch, chạy test sau khi viết"77. Yêu cầu Claude tự kiểm tra theo yêu cầu
Khi nào bạn không cần Plan Mode
- Thay đổi tên biến
- Sửa lỗi chính tả rõ ràng
- Thêm một dòng log đơn lẻ
Tiêu chí rất đơn giản: Nếu chỉ có một cách để triển khai tác vụ, hãy làm trực tiếp. Nếu có nhiều lựa chọn, hãy lập kế hoạch trước.
4. SUB-AGENTS: Sức mạnh Đa nhiệm của Claude Code
Sub-agents là một cơ chế mạnh mẽ—Claude Code có thể khởi chạy các tiến trình AI độc lập để xử lý các tác vụ song song. Mỗi sub-agent có cửa sổ context riêng và không làm lộn xộn cuộc trò chuyện chính của bạn.
Các Loại Sub-agent Tích hợp sẵn
Giá trị lớn nhất của Sub-agents: Cách ly Context
Khi bạn yêu cầu Claude chạy test, phân tích log hoặc tìm kiếm nhiều tệp, các thao tác này tạo ra đầu ra khổng lồ lấp đầy cửa sổ context của bạn. Sử dụng sub-agents cho các tác vụ này; đầu ra ở lại trong context của sub-agent và chỉ có bản tóm tắt được trả về cho bạn.
Ví dụ:
"Sử dụng sub-agent để chạy tất cả test và liệt kê các trường hợp thất bại"
"Sử dụng sub-agent để tìm kiếm tất cả các tệp sử dụng API đã lỗi thời"
Chạy trong nền: Ctrl+B
Nhấn Ctrl+B để đặt sub-agent vào nền. Bạn có thể tiếp tục trò chuyện với Claude về những thứ khác và bạn sẽ được thông báo khi tác vụ nền hoàn thành.
Phù hợp cho:
- Chạy bộ test (thường mất vài phút)
- Tìm kiếm code quy mô lớn
- Code review không khẩn cấp
Sub-agents Tùy chỉnh
Bạn có thể tạo các agent tùy chỉnh trong thư mục .claude/agents/:
1---2name: code-reviewer3description: Chuyên gia code review. Được kích hoạt tự động sau khi thay đổi code.4tools: Read, Grep, Glob, Bash5model: sonnet6---78Bạn là một senior code reviewer. Kiểm tra các khía cạnh sau:9- Sự rõ ràng và dễ đọc của code10- Tính đầy đủ của xử lý lỗi11- Tiết lộ thông tin nhạy cảm12- Xác thực đầu vào13- Cạm bẫy hiệu suất
Sau đó gọi nó trong cuộc trò chuyện bằng @"code-reviewer (agent)".
5. Quản lý Context: Yếu tố Quan trọng Nhưng Bị Bỏ Qua Nhất
Mặc dù cửa sổ context của Claude Code lớn (lên đến 1M token), nhưng nó không phải là vô hạn và quản lý context trực tiếp quyết định chất lượng đầu ra.
Có gì trong context?
- Lịch sử cuộc trò chuyện của bạn
- Tất cả nội dung tệp mà Claude đã đọc
- Đầu ra thực thi lệnh
- Tệp CLAUDE.md (được tải mỗi lần)
- Tệp Memory (200 dòng đầu tiên)
- Định nghĩa công cụ Skill và MCP đã tải
Năm Chiến lược Thực tế
1. /clear: Xóa khi hoàn thành một tác vụ
Đừng sửa lỗi, thêm tính năng và refactor tất cả trong cùng một cuộc trò chuyện. /clear làm trống context nhưng giữ CLAUDE.md, hoạt động như một lần khởi động lại miễn phí.
2. /compact: Nén context thủ công
Khi cuộc trò chuyện dài, sử dụng /compact để Claude tự động tóm tắt và nén đoạn hội thoại trước đó. Một cách tốt hơn là thêm trọng tâm vào việc nén:
/compact focus on API changes and test results
Bằng cách này, Claude ưu tiên giữ lại nội dung bạn quan tâm trong quá trình nén.
3. /context: Xem thứ gì đang ngốn context của bạn
Gõ /context để xem mức sử dụng hiện tại—tệp nào chiếm bao nhiêu token và không gian định nghĩa công cụ MCP chiếm bao nhiêu. Tôi thường thấy các máy chủ MCP vô dụng chiếm không gian lớn.
4. Sử dụng Sub-agents để cách ly nhiễu
Chạy test và phân tích log tạo ra nhiều đầu ra. Hãy để sub-agents làm việc đó để giữ context cuộc trò chuyện chính sạch sẽ.
5. Viết hướng dẫn giữ lại nén trong CLAUDE.md
Bạn có thể nói với Claude những gì phải được giữ lại trong quá trình nén:
1# Hướng dẫn Nén2Khi nén context, luôn giữ lại:3- Danh sách đầy đủ các tệp đã sửa đổi4- Lệnh test và kết quả5- Các quyết định kiến trúc chính
Memory vs CLAUDE.md

Memory dùng để: Sở thích của bạn ("người này thích câu trả lời ngắn gọn"), quy ước dự án ("deployment có bước đặc biệt"), quyết định lịch sử ("lần trước chúng tôi chọn phương án A vì X").
Memory KHÔNG dùng để: Chi tiết code, lịch sử Git, trạng thái tạm thời—những thứ này được truy xuất chính xác hơn từ code và Git.
Sử dụng lệnh /memory để xem và quản lý tất cả Memory đã tải.
6. Quản lý Quyền: Cân bằng Bảo mật và Hiệu quả
Claude Code cung cấp năm chế độ quyền, được chuyển đổi qua Shift+Tab trong cuộc trò chuyện:

Cấu hình Quy tắc Quyền
Trong .claude/settings.json, bạn có thể kiểm soát chi tiết quyền cho từng công cụ:
1{2 "permissions": {3 "allow": [4 "Bash(npm run *)",5 "Bash(git commit *)",6 "Edit(src/**/*.ts)",7 "Read(*.md)"8 ],9 "deny": [10 "Bash(rm -rf *)",11 "Edit(.env)"12 ]13 }14}
Thứ tự ưu tiên quy tắc: deny → ask → allow (deny có ưu tiên cao nhất).
Điều này có nghĩa là bạn có thể mạnh dạn cho phép các lệnh phổ biến trong khi sử dụng deny để bảo vệ các tệp nhạy cảm. Ví dụ: tệp .env không bao giờ được chỉnh sửa.
Hệ thống Phân cấp Tệp Cài đặt
Tương tự như CLAUDE.md, cài đặt có nhiều cấp độ:
1Chính sách Tổ chức (Ưu tiên Cao nhất)2 ↓3Đối số CLI4 ↓5.claude/settings.local.json (Cục bộ, không commit vào Git)6 ↓7.claude/settings.json (Cấp dự án, chia sẻ với team)8 ↓9~/.claude/settings.json (Toàn cục, cá nhân)10 ↓11Giá trị Mặc định (Ưu tiên Thấp nhất)
Lời khuyên của tôi: Đặt quy tắc chia sẻ team trong .claude/settings.json, sở thích cá nhân trong ~/.claude/settings.json và cấu hình nhạy cảm trong .claude/settings.local.json (nhớ thêm vào .gitignore).
7. HOOKS: Biến Quy tắc Thành Luật Sắt
Hướng dẫn trong CLAUDE.md là "gợi ý"—Claude tuân theo chúng hầu hết thời gian nhưng đôi khi quên. Hooks là "luật sắt"—chúng thực thi bất kể điều gì.
Hooks là các lệnh shell tự động được kích hoạt bởi các sự kiện vòng đời cụ thể, được cấu hình trong settings.json.
Các Loại Sự kiện Chính

Ví dụ Thực tế
Tự động format—Chạy Prettier sau mỗi lần chỉnh sửa:
1{2 "hooks": {3 "PostToolUse": [{4 "matcher": "Edit|Write",5 "hooks": [{6 "type": "command",7 "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"8 }]9 }]10 }11}
Bảo vệ tệp quan trọng—Ngăn sửa đổi cấu hình production:
1{2 "hooks": {3 "PreToolUse": [{4 "matcher": "Edit|Write",5 "hooks": [{6 "type": "command",7 "command": ".claude/hooks/protect-files.sh"8 }]9 }]10 }11}
Một lệnh hook trả về mã thoát 0 có nghĩa là được phép; mã thoát 2 có nghĩa là bị chặn. Điều này có nghĩa là bạn có thể viết bất kỳ logic phức tạp nào.
Tiêm lại thông tin chính sau khi nén context:
1{2 "hooks": {3 "SessionStart": [{4 "matcher": "compact",5 "hooks": [{6 "type": "command",7 "command": "echo 'Sử dụng Bun, không phải npm. Chạy bun test trước khi commit.'"8 }]9 }]10 }11}
Điều này giải quyết một vấn đề phổ biến: khi một cuộc trò chuyện dài bị nén, các hướng dẫn quan trọng đã đề cập trước đó có thể bị mất. Hooks có thể tự động tiêm lại chúng sau mỗi lần nén.
Bốn Loại Hooks
8. GIT WORKFLOW: Tận dụng WORKTREE
Claude Code có thể thực thi các lệnh Git, đây là con dao hai lưỡi. Nhưng công cụ chính thức cung cấp một mạng lưới an toàn tuyệt vời: Worktree.
Git Worktree: Không gian làm việc Cách ly
1# Bắt đầu Claude trong một worktree cách ly2claude --worktree feature-auth3claude --worktree bugfix-12345# Tự động tạo tên6claude --worktree
Worktree tạo một bản sao nhánh Git độc lập trong .claude/worktrees/. Bất cứ điều gì Claude làm bên trong sẽ không ảnh hưởng đến nhánh chính của bạn. Khi thoát:
- Nếu không có thay đổi → Tự động dọn dẹp
- Nếu có thay đổi → Nhắc bạn giữ lại hoặc xóa
Điều này đặc biệt hữu ích cho các tác vụ khám phá. Không chắc chắn liệu một kế hoạch refactoring có hiệu quả không? Hãy thử trong worktree; nếu thất bại, vứt bỏ nó mà không có rủi ro.
Một số Luật Sắt Git
1. Không bao giờ để Claude Code tự động push
Nó có thể commit, nhưng hành động push nên được bạn xác nhận. Một khi đã push lên remote, chi phí rollback tăng lên đáng kể.
2. Commit thường xuyên
Commit sau khi hoàn thành một tính năng nhỏ. Sử dụng /rewind để quay lại bất kỳ checkpoint nào, miễn là bạn có bản ghi commit.
3. Cẩn thận với các thao tác phá hủy
Nếu Claude Code muốn thực thi git reset --hard, git push --force hoặc rm -rf, hãy suy nghĩ kỹ hậu quả trước khi chấp thuận. Các thao tác này không thể hoàn tác. Bạn cũng có thể từ chối các lệnh này trong quy tắc quyền.
4. Khôi phục context từ một PR
Điều này tự động tải các thay đổi và thảo luận của PR làm context, hoàn hảo cho code review hoặc tiếp tục công việc của người khác.
1claude --from-pr 123
9. Phím tắt và Tham chiếu Lệnh
Tôi sử dụng các phím tắt này hàng ngày; tôi rất khuyên bạn nên ghi nhớ chúng:
Phím tắt Phổ biến Nhất

Lệnh Slash Phổ biến Nhất
1/compact [focus] # Nén context, có thể chỉ định trọng tâm2/clear # Xóa cuộc trò chuyện, bắt đầu lại3/context # Xem mức sử dụng context4/memory # Xem và quản lý Memory5/rewind # Quay lại checkpoint6/resume [name] # Tiếp tục cuộc trò chuyện trước đó7/model # Chuyển đổi model8/effort [level] # Đặt độ sâu suy luận: low/medium/high/max9/init # Tự động tạo CLAUDE.md10/mcp # Quản lý máy chủ MCP11/permissions # Xem quy tắc quyền12/cost # Xem mức tiêu thụ token
/init đặc biệt hữu ích cho các dự án mới—nó tự động phân tích codebase của bạn và giúp tạo bản nháp CLAUDE.md. Mặc dù thường cần điều chỉnh thủ công, nhưng nó nhanh hơn nhiều so với bắt đầu từ đầu.
10. EXTENDED THINKING: Để Claude Suy nghĩ Sâu hơn
Đối với các vấn đề phức tạp, bạn có thể bật chế độ Extended Thinking, cho phép Claude dành nhiều thời gian hơn để suy luận trước khi trả lời.
Cách sử dụng
1# Phím tắt bật/tắt2Option+T (Mac) / Alt+T (Windows/Linux)34# Hoặc qua lệnh5/effort high # Suy luận sâu hơn6/effort max # Độ sâu suy luận tối đa7/effort low # Tác vụ đơn giản, tiết kiệm token
Khi nào sử dụng
- Quyết định kiến trúc phức tạp
- Debug khó (nhiều nguyên nhân có thể cần loại trừ)
- Thiết kế refactoring nhiều bước
- Cân nhắc ưu nhược điểm của nhiều giải pháp
Khi nào bạn không cần nó
- Thay đổi code đơn giản
- Formatting, đổi tên
- Sửa lỗi đã rõ ràng
Mẹo chuyên nghiệp: Viết "ultrathink" trong prompt có thể buộc độ sâu suy luận cao nhất mà không cần điều chỉnh thủ công cài đặt effort.
11. MCP SERVER: Kết nối Claude với Thế giới Bên ngoài
MCP (Model Context Protocol) cho phép Claude Code giao tiếp với các công cụ bên ngoài—GitHub, database, Slack, Notion, v.v.
Thêm nhanh
1claude mcp add github -- npx @anthropic-ai/mcp-server-github2claude mcp add postgres -- npx @anthropic-ai/mcp-server-postgres postgresql://localhost:5432/mydb
Tệp Cấu hình
MCP được cấu hình trong .mcp.json:
1{2 "mcpServers": {3 "github": {4 "type": "stdio",5 "command": "npx",6 "args": ["@modelcontextprotocol/server-github"],7 "env": {8 "GITHUB_TOKEN": "$GITHUB_TOKEN"9 }10 }11 }12}
Lưu ý Chi phí Context
Mỗi máy chủ MCP tiêu thụ thêm 100-500+ token cho định nghĩa công cụ. Sử dụng lệnh /mcp để kiểm tra chi phí của từng máy chủ và tắt những máy chủ không sử dụng.
Kinh nghiệm của tôi: Đừng tham lam. 2-3 máy chủ MCP thường dùng là đủ. Cài đặt quá nhiều sẽ ngốn không gian context với định nghĩa công cụ, điều này có thể làm giảm chất lượng phân tích code.
12. Tích hợp IDE: Không Chỉ Là Terminal
VS Code
Sau khi cài đặt extension Claude Code, bạn có thể sử dụng Claude trực tiếp trong VS Code mà không cần chuyển sang terminal.
Các tính năng hữu ích:
- Xem diff song song: Các thay đổi của Claude được hiển thị dưới dạng diff, rõ ràng trong nháy mắt
- Option+K / Alt+K: Nhanh chóng chèn @references đến tệp hiện tại
- Đa tab trò chuyện: Mở nhiều cuộc trò chuyện độc lập trong các tab khác nhau
- Cmd+Shift+Esc: Nhanh chóng mở một tab trò chuyện mới
JetBrains
IntelliJ, PyCharm, WebStorm và các IDE JetBrains khác cũng có plugin Claude Code. Chỉ cần tìm kiếm "Claude Code" trong Plugins marketplace để cài đặt.
13. Review Code: Tin tưởng Nhưng Hãy Kiểm tra
Chất lượng code của Claude Code nhìn chung tốt, nhưng bạn không nên tin tưởng mù quáng.
Các Vấn đề Thường gặp
1. Over-engineering
Bạn yêu cầu một hàm tiện ích đơn giản, và nó đưa cho bạn một lớp trừu tượng đầy đủ với generics, interfaces và factory patterns. Dùng dao mổ trâu để giết gà.
Giải pháp: Viết "ưu tiên các giải pháp đơn giản" trong CLAUDE.md hoặc nói rõ ràng "không cần abstraction" trong hướng dẫn.
2. API Ảo
Đôi khi nó sử dụng các API không tồn tại hoặc cú pháp lỗi thời, đặc biệt là đối với các phiên bản mới của các thư viện niche.
Giải pháp: Chạy test. Đây là lý do tại sao hướng dẫn nên bao gồm các tiêu chuẩn xác thực.
3. Mở rộng Phạm vi
Bạn yêu cầu nó thay đổi một hàm, và nó refactor toàn bộ tệp.
Giải pháp: Nói rõ ràng "chỉ thay đổi X, không động vào code khác." Hoặc sử dụng lệnh /freeze để giới hạn phạm vi chỉnh sửa vào các thư mục cụ thể.
Chế độ Writer/Reviewer
Một chế độ nâng cao được khuyến nghị chính thức: Sử dụng hai phiên độc lập để đóng vai "Writer" và "Reviewer."
Hai phiên có context độc lập; Reviewer không bị ảnh hưởng bởi logic của Writer và có thể tìm ra những điểm mù.
1Phiên A (Writer): "Triển khai middleware giới hạn tốc độ API"2Phiên B (Reviewer): "Review triển khai giới hạn tốc độ trong @src/middleware/rateLimiter.ts,3 tập trung vào edge cases, race conditions và tính nhất quán"4Phiên A: "Sửa phản hồi review: [Dán đầu ra của B]"
14. Những Điều KHÔNG Nên Làm với Claude Code
Đã nói nhiều về "nên làm gì," hãy nói về "không nên làm gì."
1. Đừng để nó làm những việc bạn hoàn toàn không hiểu
Nếu bạn không biết gì về Kubernetes, đừng để Claude Code viết cấu hình deployment để bạn sử dụng trực tiếp. Bạn không thể review những gì bạn không hiểu.
2. Đừng sử dụng nó trong môi trường không có version control
Không có Git đồng nghĩa với không có khả năng rollback. Các thay đổi của Claude Code có thể ghi đè lên tệp của bạn; sử dụng nó mà không có version control giống như đi dây thừng mà không có lưới bảo vệ.
3. Đừng giao một tác vụ khổng lồ cùng một lúc
"Migrate toàn bộ dự án từ JavaScript sang TypeScript"
Hướng dẫn này cho Claude Code toàn quyền hành động, khiến kết quả không thể kiểm soát. Chia nhỏ thành các bước và xác nhận từng bước trước khi chuyển sang bước tiếp theo.
4. Đừng mong đợi sự hoàn hảo ngay lần đầu tiên
Lặp lại là điều bình thường. Sử dụng /rewind để quay lại và sử dụng phản hồi chính xác để mô tả "có gì sai."
Tổng kết
Triết lý cốt lõi của việc sử dụng Claude Code rất đơn giản:
Nó là một cộng tác viên cực kỳ có năng lực, nhưng không phải là chế độ lái tự động. Vô lăng luôn nằm trong tay bạn.
Sắp xếp theo mức độ quan trọng, lời khuyên của tôi là:
- Viết CLAUDE.md tốt — Đầu tư một lần, hưởng lợi trong mọi cuộc trò chuyện
- Đưa ra hướng dẫn chính xác — Mục tiêu + Ràng buộc + Tiêu chuẩn xác thực
- Sử dụng Chế độ Lập kế hoạch — Lên kế hoạch trước, hành động sau cho các tác vụ phức tạp
- Quản lý ngữ cảnh — /clear, /compact, Sub-agents
- Kiểm soát quyền hạn — Từ chối các thao tác nguy hiểm, cho phép các lệnh thông thường
- Commit thường xuyên — Giữ khả năng quay lại
Làm được những điều này, Claude Code có thể nhân hiệu suất của bạn lên nhiều lần. Không làm được, nó sẽ chỉ giúp bạn tạo ra hỗn loạn nhanh hơn.
Giá trị của một công cụ luôn phụ thuộc vào người sử dụng nó.
Trên đây là sự kết hợp giữa tài liệu chính thức của Claude Code và kinh nghiệm thực tế. Nếu bạn có những phương pháp hay hơn, hãy chia sẻ nhé.
![Mất 6 triệu vì thiếu hiểu biết: Một câu hỏi giúp bạn phân biệt giữa 'kẻ khờ' và 'khách hàng được tôn trọng' trong bất động sản [Kèm ví dụ thực tế]](/cdn-cgi/image/width=1920,quality=90,format=auto,metadata=none/https%3A%2F%2Fcms-assets.youmind.com%2Fmedia%2F1783878130911_13t77j_HM6aCr4b0AAhope.jpg)


![[Tanabata Sho] Dự đoán cuối cùng](/cdn-cgi/image/width=1920,quality=90,format=auto,metadata=none/https%3A%2F%2Fcms-assets.youmind.com%2Fmedia%2F1783877092411_fg196t_HM8tQzHakAAbifc.jpg)

