20 điểm bởi GN⁺ 2025-04-20 | 2 bình luận | Chia sẻ qua WhatsApp
  • Claude Code là công cụ lập trình tác tử dựa trên CLI, có thể áp dụng linh hoạt cho nhiều môi trường và ngôn ngữ phát triển khác nhau
  • Có thể tối đa hóa khả năng sử dụng Claude thông qua thiết lập CLAUDE.md, quản lý danh sách công cụ được cho phép và tạo lệnh tùy chỉnh
  • Sẽ hiệu quả hơn khi áp dụng các chiến lược theo từng quy trình làm việc (khám phá-lập kế hoạch-triển khai-commit, phát triển hướng kiểm thử, lặp trực quan, v.v.)
  • Cũng có thể tự động hóa và làm việc song song bằng chế độ headless và cấu hình nhiều Claude
  • Có thể khai thác nâng cao bằng cách tích hợp Claude với nhiều công cụ phát triển như Git, GitHub, Jupyter, v.v.

Tổng quan về Claude Code

  • Claude Code là công cụ dành cho lập trình tác tử (tự động hóa lập trình dựa trên command line)
  • Được thiết kế để các nhà phát triển và nhà nghiên cứu nội bộ của Anthropic có thể tích hợp Claude vào quy trình lập trình một cách tự nhiên hơn
  • Nhờ giao diện mức thấp và thiết kế không phụ thuộc, nó không bị ràng buộc vào một phương thức phát triển cụ thể nào,
    • nhà phát triển có thể cấu hình và sử dụng Claude theo cách phù hợp với mình
  • Kết quả là nó trở thành một công cụ hỗ trợ lập trình mạnh mẽ nhưng linh hoạt và an toàn
  • Nhược điểm là người dùng mới phải đối mặt với đường cong học tập khá cao,
    • vì vậy cần có quá trình tự xây dựng các best practice phù hợp
  • Bài viết này dựa trên kinh nghiệm thực tế của các nhóm nội bộ và kỹ sư bên ngoài đã sử dụng Claude Code,
    • để giới thiệu những mẫu thực hành phổ biến và hiệu quả trong nhiều ngôn ngữ, codebase và môi trường khác nhau
  • Nội dung được đưa ra không phải đáp án duy nhất mà là điểm khởi đầu, và khuyến khích mỗi người tự thử nghiệm rồi cải thiện theo cách phù hợp với mình

# 1. Tùy chỉnh cấu hình

Claude Code là trợ lý lập trình tác tử tự động thu thập ngữ cảnh để xây dựng prompt
Việc thu thập ngữ cảnh này tiêu tốn thời gian và token, nhưng có thể được tối ưu bằng cách điều chỉnh môi trường

a. Tạo tệp CLAUDE.md

CLAUDE.mdtệp đặc biệt mà Claude tự động đưa vào ngữ cảnh khi bắt đầu cuộc trò chuyện
Tệp này rất phù hợp để ghi lại các nội dung sau:

  • Các lệnh bash thường dùng
  • Các tệp cốt lõi và hàm tiện ích
  • Hướng dẫn về phong cách mã nguồn
  • Cách chạy kiểm thử
  • Cách làm việc với kho mã nguồn (ví dụ: quy tắc đặt tên nhánh, merge hay rebase)
  • Cách thiết lập môi trường phát triển (ví dụ: có dùng pyenv hay không, compiler tương thích)
  • Các hành vi ngoại lệ hoặc điểm cần lưu ý của dự án đó
  • Những thông tin khác mà Claude cần ghi nhớ

Tệp CLAUDE.md không bị giới hạn về định dạng, nhưng nên được viết ngắn gọn và dễ đọc đối với con người
Ví dụ:

# Bash commands  
- npm run build: Build the project  
- npm run typecheck: Run the typechecker  
  
# Code style  
- Use ES modules (import/export) syntax, not CommonJS (require)  
- Destructure imports when possible (eg. import { foo } from 'bar')  
  
# Workflow  
- Be sure to typecheck when you’re done making a series of code changes  
- Prefer running single tests, and not the whole test suite, for performance  

Vị trí của tệp CLAUDE.md

Claude sẽ tìm CLAUDE.md ở các vị trí sau và đưa vào ngữ cảnh:

  • Thư mục gốc của repo hoặc thư mục nơi chạy claude
    • Lưu thành CLAUDE.md và commit vào git để chia sẻ giữa các phiên và giữa các thành viên trong nhóm (khuyến nghị)
    • Với cấu hình cá nhân, có thể lưu thành CLAUDE.local.md rồi thêm vào .gitignore
  • Thư mục cha của thư mục đang chạy
    • Hữu ích trong cấu trúc monorepo (ví dụ: có thể dùng cả root/CLAUDE.mdroot/foo/CLAUDE.md)
  • Các thư mục con của thư mục đang chạy
    • Khi làm việc với tệp trong thư mục đó, nội dung sẽ tự động được đưa vào ngữ cảnh
  • Thư mục home (~/.claude/CLAUDE.md)
    • Áp dụng toàn cục cho mọi phiên

Khi chạy lệnh /init, Claude sẽ tự động tạo tệp CLAUDE.md

b. Tinh chỉnh tệp CLAUDE.md

CLAUDE.md được dùng như một phần của prompt dành cho Claude, nên cần liên tục chỉnh sửa và tối ưu nó như tối ưu prompt
Sai lầm thường gặp là đưa vào quá nhiều nội dung mà không kiểm chứng hiệu quả

  • Điều quan trọng là xác định thông qua thử nghiệm xem nội dung nào thực sự giúp nâng cao chất lượng phản hồi của mô hình
  • Có thể thêm nội dung thủ công, hoặc nhấn phím # để ra lệnh cho Claude tự động phản ánh nội dung đó vào CLAUDE.md
  • Nhiều kỹ sư ghi chép lệnh, style guide, v.v. theo thời gian thực và đưa các thay đổi của CLAUDE.md vào commit để chia sẻ với nhóm

Tại Anthropic, họ tinh chỉnh CLAUDE.md bằng prompt improver
và thêm các cụm nhấn mạnh như “IMPORTANT”, “YOU MUST” để tăng độ chính xác của phản hồi

c. Quản lý danh sách công cụ được phép của Claude

Claude Code theo mặc định sẽ yêu cầu người dùng phê duyệt đối với các thao tác có thể thay đổi hệ thống (ghi tệp, chạy lệnh bash, dùng công cụ MCP, v.v.)
Đây là thiết kế thận trọng vì lý do bảo mật, và người dùng có thể phê duyệt trước các công cụ được xem là an toàn thông qua danh sách cho phép (allowlist)

Cách thiết lập công cụ được cho phép

  1. Khi lời nhắc xuất hiện trong phiên, chọn “Always allow”
  2. Thêm/xóa công cụ bằng lệnh /allowed-tools
    Ví dụ:
    • Edit → cho phép chỉnh sửa tệp
    • Bash(git commit:*) → cho phép commit git
    • mcp__puppeteer__puppeteer_navigate → cho phép điều hướng trong máy chủ MCP của Puppeteer
  3. Chỉnh sửa thủ công .claude/settings.json hoặc ~/.claude.json
    • Nếu muốn chia sẻ với nhóm thì nên dùng cách đầu tiên và commit vào Git
    Quảng cáo
  4. Dùng cờ CLI theo từng phiên là --allowedTools

d. Cài đặt gh CLI khi dùng GitHub

Claude có thể dùng gh CLI để tự động hóa các tác vụ GitHub như tạo issue, soạn PR, đọc bình luận, v.v.
Ngay cả khi không cài gh, vẫn có thể thay thế thông qua GitHub API hoặc máy chủ MCP


# 2. Cung cấp thêm công cụ cho Claude

Claude có thể truy cập môi trường shell của người dùng, nên có thể dùng nguyên trạng các script và hàm do người dùng tự tạo
Ngoài ra, cũng có thể tích hợp với các công cụ bên ngoài phức tạp hơn qua MCP hoặc REST API

a. Sử dụng cùng công cụ Bash

Claude Code kế thừa môi trường bash của người dùng nên có thể truy cập các công cụ tiện ích đã được cài đặt sẵn

  • Claude vốn đã biết các công cụ Unix thông dụng hoặc gh CLI
  • Tuy nhiên, các công cụ bash tùy chỉnh do người dùng tự tạo thì cần được giới thiệu riêng

Để Claude nhận biết công cụ tùy chỉnh, hãy thực hiện các việc sau:

  • Nêu rõ cho Claude tên công cụ và ví dụ cách dùng
  • Hướng dẫn Claude xem cách sử dụng công cụ bằng tùy chọn --help
  • Ghi lại các công cụ thường dùng trong CLAUDE.md

b. Sử dụng cùng MCP

Claude Code đồng thời đóng vai trò máy chủ MCP và client MCP
Với vai trò client, nó có thể kết nối tới nhiều máy chủ MCP để sử dụng nhiều công cụ khác nhau

Có thể kết nối công cụ của máy chủ MCP với Claude theo ba cách:

  • Định nghĩa trong cấu hình dự án (chỉ dùng được trong thư mục đó)
  • Dùng cấu hình toàn cục để áp dụng cho mọi dự án
  • Commit tệp .mcp.json để mọi nhà phát triển đang cộng tác đều có thể dùng công cụ ngay lập tức
    • Ví dụ: nếu đăng ký máy chủ Puppeteer và Sentry trong .mcp.json thì cả nhóm đều có thể sử dụng

Khi cần debug sự cố cấu hình trong lúc dùng MCP, sẽ hữu ích nếu chạy Claude với cờ --mcp-debug

c. Lệnh slash tùy chỉnh

Đối với các quy trình lặp lại (debug, phân tích log, v.v.),
có thể lưu template prompt dưới dạng tệp Markdown trong thư mục .claude/commands

  • Khi nhập / trong Claude, lệnh tương ứng sẽ hiện trong menu tự động hoàn thành
  • Có thể commit lên git để chia sẻ với các thành viên trong nhóm

Truyền tham số: $ARGUMENTS

Nếu thêm $ARGUMENTS vào lệnh slash, bạn có thể tự động chèn các tham số được truyền vào khi chạy lệnh

Ví dụ: tự động phân tích và sửa GitHub issue

Please analyze and fix the GitHub issue: $ARGUMENTS.  
  
Follow these steps:  
  
1. Use `gh issue view` to get the issue details  
2. Understand the problem described in the issue  
3. Search the codebase for relevant files  
4. Implement the necessary changes to fix the issue  
5. Write and run tests to verify the fix  
6. Ensure code passes linting and type checking  
7. Create a descriptive commit message  
8. Push and create a PR  
  
Remember to use the GitHub CLI (`gh`) for all GitHub-related tasks.  

Nếu lưu nội dung trên vào .claude/commands/fix-github-issue.md, bạn có thể dùng nó bằng lệnh /project:fix-github-issue
Ví dụ: /project:fix-github-issue 1234 → Claude sẽ tự động thử sửa issue #1234

Nếu lưu các lệnh thiết lập cá nhân trong thư mục ~/.claude/commands thì có thể dùng trong mọi phiên làm việc


# 3. Tận dụng các quy trình làm việc phổ biến

Claude Code không ép buộc một quy trình làm việc cụ thể nào mà mang lại sự linh hoạt hoàn toàn cho người dùng
Dựa trên sự linh hoạt đó, cộng đồng người dùng đã hình thành nhiều kiểu sử dụng thành công

a. Khám phá → Lập kế hoạch → Triển khai → Commit

  • Yêu cầu Claude đọc các tệp, hình ảnh, URL liên quan

    • Ví dụ: “đọc file xử lý log giúp tôi”, “đọc logging.py giúp tôi”
    • Tuy nhiên, hãy chỉ rõ là chưa được viết code
    • Ở bước này, việc dùng subagent đặc biệt hiệu quả (vấn đề càng phức tạp thì càng có lợi)
  • Yêu cầu Claude lập kế hoạch để giải quyết vấn đề

    Quảng cáo
    • Khi dùng các từ khóa như “think”, “think hard”, “ultrathink”, nó sẽ được cấp nhiều ngân sách tính toán hơn
    • Nếu kế hoạch hợp lý, hãy ghi lại thành tài liệu hoặc tạo GitHub issue để có một mốc tham chiếu quay lại
  • Sau đó yêu cầu Claude triển khai code theo đúng kế hoạch đã lập

    • Trong lúc triển khai, bạn cũng có thể yêu cầu rõ ràng rằng nó phải tự kiểm chứng tính hợp lý của kết quả
  • Cuối cùng, chỉ thị commit kết quả và tạo PR

    • Nếu cần, cũng có thể yêu cầu cập nhật README hoặc CHANGELOG

📌 Trong luồng này, nếu bỏ qua bước 1~2 thì Claude sẽ bắt đầu viết code ngay, vì vậy bước lập kế hoạch đặc biệt quan trọng với các vấn đề phức tạp

b. Viết test → Commit → Viết code → Lặp lại → Commit (phát triển hướng kiểm thử)

Đây là cách làm thường được dùng trong nội bộ Anthropic, phù hợp với các tác vụ có test unit/tích hợp/e2e

  • Yêu cầu Claude viết test dựa trên tiêu chí đầu vào/đầu ra

    • Hãy nói rõ đây là phát triển hướng kiểm thử để hướng nó chỉ viết test mà chưa triển khai tính năng
  • Yêu cầu xác nhận xem test có thất bại hay không

    • Chỉ thị chỉ chạy test, không triển khai
  • Nếu hài lòng với test thì commit

  • Yêu cầu Claude viết code để các test có thể pass

    • Nêu rõ là không được sửa test
    • Thông thường sẽ phải chạy lặp lại nhiều lần mới pass test
    • Dùng subagent để kiểm chứng có bị overfit hay không cũng rất hiệu quả
  • Khi toàn bộ test đều pass, chỉ thị commit code

✅ Claude hoạt động tốt nhất khi có mục tiêu rõ ràng (ví dụ: test case, hình ảnh, v.v.)

c. Viết code → Cung cấp ảnh chụp màn hình kết quả → Cải thiện lặp lại

  • Thiết lập môi trường có thể tự động cung cấp ảnh chụp màn hình trình duyệt (ví dụ: Puppeteer MCP, iOS simulator, v.v.)
  • Cung cấp mockup trực quan (dán ảnh, truyền đường dẫn, v.v.)
  • Yêu cầu Claude triển khai thiết kế → chụp màn hình kết quả → tiếp tục so sánh và chỉ thị cải thiện
  • Nếu hài lòng thì commit

💡 Giống con người, Claude cũng cho kết quả tốt hơn nhiều sau 2~3 vòng lặpvòng phản hồi trực quan rất quan trọng

d. Chế độ Safe YOLO

  • Dùng tùy chọn --dangerously-skip-permissions để bỏ qua mọi yêu cầu phê duyệt
  • Claude sẽ thực hiện công việc hoàn toàn tự động mà không cần người dùng phê duyệt

⚠️ Có rủi ro mất dữ liệu, hỏng hệ thống, prompt injectionchỉ nên chạy trong container bị chặn Internet
→ Khuyến nghị dùng triển khai mẫu dựa trên Docker Dev Container

e. Hỏi đáp về codebase

  • Khi làm quen với một dự án mới, bạn có thể hỏi Claude như đang hỏi một kỹ sư đồng nghiệp
  • Claude sẽ tự khám phá codebase để tìm câu trả lời
Quảng cáo

Ví dụ câu hỏi:

  • Logging hoạt động như thế nào?
  • Làm sao để tạo một API endpoint mới?
  • async move ở dòng 134 của foo.rs có vai trò gì?
  • CustomerOnboardingFlowImpl xử lý những edge case nào?
  • Vì sao lại gọi bar() thay vì foo()?
  • Đoạn code Java nào tương tự với dòng 334 trong baz.py?

📌 Có thể khám phá chỉ bằng câu hỏi ngôn ngữ tự nhiên mà không cần prompt riêng
→ Tại Anthropic, cách này đang được dùng như công cụ onboarding chủ lực

f. Tích hợp Git

Claude xử lý rất tốt việc tự động hóa các tác vụ Git như sau:

  • Tìm kiếm lịch sử Git:
    • Ví dụ: “bản v1.2.3 có những thay đổi gì?”, “ai đã tạo tính năng này?”, “vì sao API này lại có cấu trúc như vậy?”
  • Viết commit message:
    • Tự động soạn dựa trên thay đổi và ngữ cảnh xung quanh
  • Tác vụ Git nâng cao:
    • Hoàn tác tệp, giải quyết xung đột rebase, so sánh và gộp patch, v.v.

g. Tích hợp GitHub

Claude Code có thể tự động hóa mạnh mẽ các tác vụ liên quan đến GitHub:

  • Tạo Pull Request:
    • Nhận diện từ khóa pr và tự động tạo commit message dựa trên các thay đổi
  • Sửa comment review code:
    • Chỉ cần nói “sửa các comment trong PR giúp tôi” là có thể sửa rồi push
  • Sửa lỗi build, lỗi lint
  • Phân loại và sắp xếp issue:
    • Yêu cầu Claude “duyệt qua các issue đang mở và sắp xếp lại giúp tôi”

💡 Không cần nhớ các lệnh gh, vẫn có thể tự động hóa công việc GitHub

h. Làm việc với Jupyter Notebook

  • Claude có thể đọc và ghi tệp .ipynb, đồng thời diễn giải cả đầu ra có chứa hình ảnh
  • Khuyến nghị mở Claude Code và tệp notebook song song trong VS Code để sử dụng

Chức năng bổ sung:

  • Trước khi chia sẻ cho người khác, bạn có thể yêu cầu dọn dẹp và cải thiện hình thức notebook
    • Những yêu cầu tối ưu theo góc nhìn người dùng như “sắp xếp cho dễ nhìn”, “làm trực quan đẹp hơn” hoạt động rất tốt

# 4. Tối ưu hóa quy trình làm việc

Các gợi ý dưới đây là những cách tối ưu có thể áp dụng chung cho mọi workflow

a. Viết chỉ thị thật cụ thể

Claude Code có tỷ lệ thành công cao hơn khi chỉ thị càng cụ thể ngay từ lần thử đầu tiên
Nếu yêu cầu rõ ràng từ đầu, nhu cầu chỉnh sửa giữa chừng sẽ giảm đi

So sánh ví dụ

  • add tests for foo.py → quá bao quát
    Đối với foo.py, hãy viết test case mới xử lý trường hợp người dùng đã đăng xuất. Không dùng mock
  • why does ExecutionFactory have such a weird api? → mơ hồ
    Hãy lần theo git history của ExecutionFactory và tóm tắt lý do API được tạo ra với cấu trúc hiện tại
  • add a calendar widget → hướng triển khai không rõ ràng
    Hãy phân tích cách triển khai các widget hiện có trên trang chủ (ví dụ: HotDogWidget.php), xác định pattern tách biệt giữa code và interface, rồi triển khai một calendar widget mới theo đúng cách đó, cho phép người dùng chọn tháng và chuyển trang theo năm. Chỉ được phép dùng các thư viện bên ngoài mà dự án hiện tại đã sử dụng

Claude có thể suy luận ý định, nhưng không thể đọc được suy nghĩ của bạn → sự rõ ràng là yếu tố then chốt

Quảng cáo

b. Cung cấp hình ảnh

Claude rất giỏi xử lý hình ảnh và sơ đồ
Có thể cung cấp hình ảnh theo các cách sau:

  • Trên macOS, nhấn cmd+ctrl+shift+4 → chụp màn hình vào clipboard → dán bằng ctrl+v (không dùng được trong môi trường từ xa)
  • Kéo và thả tệp hình ảnh
  • Truyền đường dẫn tới tệp hình ảnh

Rất hữu ích cho việc hiện thực mockup thiết kế, phân tích biểu đồ trực quan và các tác vụ tương tự
Ngay cả khi không có hình ảnh, việc nói rõ chất lượng trực quan của kết quả có quan trọng hay không cũng rất hữu ích

c. Chỉ định tệp cần làm việc

Nếu nói rõ cho Claude biết cần tham khảo hoặc chỉnh sửa tệp nào, độ chính xác của công việc sẽ được cải thiện

  • Có thể dùng tự động hoàn thành bằng phím Tab để nhập nhanh đường dẫn tệp/thư mục

d. Cung cấp URL cho Claude

Nếu đưa URL cho Claude, nó có thể đọc trực tiếp tài liệu hoặc trang web

  • Ví dụ: link tài liệu API, trang design system, v.v.
  • Nếu cần truy cập lặp lại cùng một domain, có thể dùng lệnh /allowed-tools để thêm domain vào whitelist nhằm bỏ qua bước phê duyệt

e. Điều chỉnh hướng nhanh và thường xuyên (course redirection)

Bạn có thể nhấn Shift + Tab để tự động hóa công việc bằng chế độ auto-accept,
nhưng thông thường, chủ động cộng tác với Claude và điều chỉnh hướng đi sẽ cho kết quả tốt hơn

4 công cụ điều chỉnh hữu ích:

  1. Yêu cầu lập kế hoạch trước: bắt buộc lên kế hoạch trước khi triển khai, xác nhận xong rồi mới tiếp tục
  2. Dừng ngay bằng phím Escape: có thể dừng bất cứ lúc nào, kể cả khi đang suy nghĩ hay chỉnh sửa tệp
  3. Nhấn Escape hai lần để sửa prompt trước đó: có thể chỉnh lại lệnh cũ và chuyển sang hướng mới
  4. Yêu cầu hoàn tác thay đổi: bảo Claude rollback phần đã sửa để thử cách tiếp cận khác

Đôi khi Claude có thể giải quyết hoàn hảo chỉ trong một lần, nhưng nếu tận dụng các công cụ trên, bạn có thể đạt kết quả nhanh hơn và chính xác hơn

f. Khởi tạo lại ngữ cảnh bằng lệnh /clear

Nếu phiên làm việc kéo dài, context window của Claude có thể bị lấp đầy bởi thông tin không cần thiết, làm giảm hiệu năng
→ Khuyến nghị hình thành thói quen khởi tạo lại ngữ cảnh bằng /clear cho mỗi đơn vị công việc

g. Tận dụng checklist và scratchpad

Với các tác vụ phức tạp (ví dụ: code migration, sửa hàng loạt lỗi lint),
dùng tệp Markdown hoặc GitHub issue làm checklist sẽ giúp tăng hiệu quả

Ví dụ: xử lý lỗi lint

  • Yêu cầu Claude chạy lệnh lint → sắp xếp nội dung lỗi thành checklist định dạng Markdown
  • Xử lý từng mục một, xác nhận rồi đánh dấu hoàn thành → chuyển sang mục tiếp theo

Theo cách này, bạn có thể vừa theo dõi tiến độ vừa kiểm soát chất lượng

h. Truyền dữ liệu cho Claude

Có nhiều cách để truyền dữ liệu cho Claude:

  • Sao chép/dán (cách phổ biến nhất)
  • Pipe input (ví dụ: cat foo.txt | claude)
    • Phù hợp với log, CSV, văn bản dung lượng lớn
  • Chỉ thị để Claude tự lấy trực tiếp qua bash command, công cụ MCP hoặc slash command
  • Yêu cầu đọc tệp hoặc URL (bao gồm cả hình ảnh)

Trong công việc thực tế, việc kết hợp nhiều cách là điều rất phổ biến
Ví dụ: truyền log qua pipe, rồi yêu cầu Claude dùng công cụ MCP để lấy thêm ngữ cảnh


# 5. Tự động hóa hạ tầng bằng chế độ headless

Claude Code hỗ trợ chế độ headless cho môi trường non-interactive (CI, pre-commit hook, build script, automation, v.v.)

  • Chạy chế độ headless kèm prompt thông qua flag -p
  • Có thể dùng đầu ra JSON dạng stream với tùy chọn --output-format stream-json

⚠️ Chế độ headless không được duy trì giữa các session, và phải chạy trực tiếp mỗi lần

a. Tự động phân loại issue bằng Claude

Chế độ headless phù hợp với các automation trigger dựa trên GitHub event
Ví dụ: tự động phân tích và gán nhãn khi có issue mới được tạo

Quảng cáo
  • Trên thực tế, kho lưu trữ công khai của Claude Code cũng dùng tính năng này để tự động gán label cho issue mới

b. Dùng Claude như một linter

Claude có thể tự động hóa code review mang tính chủ quan mà các công cụ lint truyền thống khó phát hiện
Ví dụ:

  • lỗi chính tả
  • comment đã cũ
  • tên hàm/biến dễ gây hiểu nhầm
  • luồng code thiếu trực quan, v.v.

Nhờ đó, có thể cải thiện chất lượng code vượt ra ngoài phạm vi của các công cụ static analysis


# 6. Nâng cấp với workflow multi-Claude

Vượt ra ngoài việc chỉ dùng một Claude, cách chạy song song nhiều Claude instance là một phương pháp cực kỳ mạnh mẽ
Giống như nhiều kỹ sư cùng cộng tác, chiến lược phân công Claude có thể cải thiện cả hiệu suất lẫn chất lượng

a. Một Claude viết code, Claude khác review

Pattern đơn giản nhưng rất hiệu quả nhất:

  • Claude 1: viết code
  • Chạy Claude 2 bằng /clear hoặc ở terminal khác → review phần code đã viết
  • Chạy Claude 3 hoặc /clear lần nữa → đọc cả code và review rồi phản ánh sửa đổi

Hoặc,

  • Claude 1: viết test
  • Claude 2: viết code để pass test

❗ Giữa các Claude instance, bạn cũng có thể chia sẻ scratchpad riêng biệt,
hoặc thiết lập tách vai trò kiểu “Claude này chỉ ghi vào file A, Claude kia chỉ đọc file B”

📌 Trong nhiều trường hợp, việc tách công việc cho nhiều Claude cho kết quả tốt hơn so với chỉ dùng một Claude

b. Checkout nhiều bản sao của repository

Thay vì chờ Claude hoàn thành công việc, bạn có thể tạo nhiều thư mục Git checkout để làm việc song song

  • Tạo 3–4 git checkout trong các thư mục riêng
  • Mở từng thư mục ở các tab terminal khác nhau
  • Giao nhiệm vụ khác nhau cho từng Claude instance
  • Chuyển tab để kiểm tra tiến độ và thực hiện phê duyệt/từ chối

c. Tận dụng Git worktree

git worktree là tính năng Git cho phép checkout nhiều branch từ một repo vào các thư mục khác nhau
rất lý tưởng để xử lý song song nhiều công việc độc lập

Ví dụ:

  • Một Claude refactor hệ thống xác thực
  • Claude khác tạo component trực quan hóa dữ liệu một cách độc lập
  • Không can thiệp lẫn nhau → tối đa hóa tính song song

Cách dùng

  1. Tạo worktree:
    git worktree add ../project-feature-a feature-a
  2. Chạy Claude:
    cd ../project-feature-a && claude
  3. Lặp lại khi cần

Mẹo

  • Đặt tên worktree nhất quán
  • Duy trì một worktree cho mỗi tab terminal
  • Nếu dùng iTerm2 (Mac), nên cấu hình thông báo
  • Tách riêng IDE theo từng worktree
  • Dọn dẹp sau khi hoàn tất công việc:
    git worktree remove ../project-feature-a

d. Chế độ headless + cấu trúc tự động hóa tùy chỉnh

Chế độ headless (claude -p) cho phép tích hợp Claude Code vào workflow theo cách lập trình được
Kết hợp với công cụ riêng của Claude và system prompt, có thể áp dụng hai pattern sau

1. Fanning out: phân tán xử lý cho migration/phân tích quy mô lớn

Ví dụ:

  • Yêu cầu Claude viết script tạo danh sách công việc
    → Ví dụ: tạo danh sách 2.000 tệp cần migrate từ React sang Vue
  • Chạy từng công việc bằng claude -p
    → Ví dụ:
    claude -p "migrate foo.py from React to Vue. When done, return OK or FAIL." --allowedTools Edit Bash(git commit:*)
  • Tối ưu hiệu năng bằng cách cải thiện prompt nhiều lần

2. Pipelining: Tích hợp pipeline dữ liệu/xử lý

  • Nối trực tiếp đầu ra của Claude vào lệnh tiếp theo:
    claude -p "<your prompt>" --json | your_command
  • Nhờ cấu trúc đầu ra JSON của Claude, rất thuận tiện cho xử lý tự động

Mẹo gỡ lỗi

  • Trong khi kiểm thử, dùng --verbose để kiểm tra luồng thực thi của Claude
  • Trong vận hành thực tế, khuyến nghị tắt verbose để giữ đầu ra gọn gàng

2 bình luận

 
ehdns1133 2025-04-22

Chi phí sẽ vào khoảng bao nhiêu?

 
GN⁺ 2025-04-20
Ý kiến trên Hacker News
  • Tính năng "ultrathink" khá thú vị

    • Có thể kích hoạt chế độ suy nghĩ mở rộng của Claude bằng cách dùng từ "think"
    • Đây là tính năng chỉ có trên Claude Code, và cũng có tùy chọn "megathink"
    • Có cung cấp mã liên quan
  • Ngạc nhiên là không có mục nào về "kiểm soát chi phí"

    • Nếu quản lý chi phí tốt thì sẽ rẻ hơn rất nhiều
    • Cần lưu ý đến cache và chỉ chỉ định đọc những tệp cụ thể
    • Nên tránh tìm kiếm và không nên chỉnh sửa tệp thủ công trong phiên
    • Nên giữ phiên ngắn và đặt mục tiêu rõ ràng
    • Nên dùng Claude.ai để tạo và lưu các tệp tài liệu cần thiết
    • Hầu hết công việc có chi phí khoảng $0.5-0.75
  • Khi dùng Cursor nhiều, đôi lúc model sẽ sửa cả những đoạn mã không được yêu cầu

    • Điều này xảy ra khi yêu cầu quá nhiều việc cùng một lúc
    • Nhiều bước liên quan đến chi phí cần các lệnh gọi API đắt tiền
    • Muốn đề xuất Anthropic có chương trình học bổng cho lập trình viên
  • Đã thử dùng Claude Code nhưng chuyển sang Gemini AI vì vấn đề chi phí

    • Tải tệp lên và thường xuyên refactor để giữ tính mô-đun
    • Cách chia nhỏ vấn đề để làm thấy khá thú vị
  • Để dùng Claude Code hiệu quả thì tốn khá nhiều chi phí

    • Các công cụ dựa trên LLM rất hữu ích, nhưng chi phí cao là vấn đề
  • Ý kiến cá nhân về hiệu quả chi phí của Claude Sonnet và Gemini

    • Đang dùng Windsurf, VS Code và Firebase Studio, và Claude Sonnet 3.7 cho hiệu năng tốt hơn Gemini 2.5 pro
    • Firebase Studio phù hợp cho các tác vụ đơn giản
  • Việc dùng nhiều checkout khá thú vị

    • Lần đầu biết đến git worktrees, và đây là cách quản lý nhiều checkout hiệu quả
  • Tò mò về các lựa chọn thay thế cho Claude Code của Gemini và Codex của OpenAI

    • Đã tìm thấy dự án reugn/gemini-cli, nhưng Gemini Code Assist bị giới hạn trong VS Code
  • Chủ yếu làm việc trên neovim, nhưng mở Cursor để viết mã boilerplate

    • Muốn dùng các công cụ CLI như Claude Code hay Codex, nhưng Cursor có tính năng vector embedding mà chúng không có
  • Không dám dùng vì sợ chi phí