Bỏ qua đến nội dung chính

Parallelizing Claude Code

📖 Nội dung bài học

Tóm tắt

Chạy nhiều instance Claude Code song song là một trong những cách tăng năng suất lớn nhất mà bạn có thể đạt được. Vì Claude rất nhẹ, bạn có thể dễ dàng khởi tạo nhiều bản sao, giao cho mỗi bản một nhiệm vụ khác nhau và để chúng làm việc đồng thời. Điều này thực chất mang lại cho bạn một đội ngũ kỹ sư phần mềm ảo cùng làm việc trong dự án của mình.

Thách thức: Xung đột File (File Conflicts)

Vấn đề chính khi chạy các instance song song là chúng có thể cố gắng chỉnh sửa cùng một file vào cùng một thời điểm. Điều này dẫn đến mã nguồn bị xung đột hoặc không hợp lệ vì mỗi instance không biết instance kia đang làm gì.

Giải pháp là cấp cho mỗi instance Claude một không gian làm việc (workspace) riêng biệt. Mỗi instance làm việc trên bản sao dự án của riêng nó, thực hiện các thay đổi một cách độc lập, sau đó mới merge các thay đổi đó lại vào dự án chính.

Git Worktrees

Git worktrees là giải pháp hoàn hảo cho quy trình này. Nếu dự án của bạn đã được quản lý bằng Git, bạn có thể dùng worktrees ngay lập tức. Chúng giống như một phần mở rộng của tính năng chia nhánh (branching) trong Git, cho phép bạn tạo ra các bản sao đầy đủ của dự án trong các thư mục riêng biệt trên máy tính.

Mỗi worktree tương ứng với một branch riêng biệt. Bạn có thể có một thư mục cho tính năng A và một thư mục khác cho tính năng B, mỗi thư mục chứa một bản sao đầy đủ của mã nguồn. Sau đó, bạn chạy các instance Claude Code riêng biệt trong mỗi worktree, làm việc hoàn toàn độc lập.

Khi mỗi instance Claude hoàn thành tính năng của mình, bạn commit công việc và merge nó lại vào branch chính, giống như cách merge bất kỳ branch Git thông thường nào.

Tự động hóa việc tạo Worktree

Nghe có vẻ phức tạp để quản lý, nhưng bạn có thể giao phó (delegate) toàn bộ quy trình này cho chính Claude Code. Bạn có thể viết một prompt yêu cầu Claude:

  1. Tạo một git worktree mới trong một thư mục cụ thể
  2. Tạo symlink cho các dependency không được Git theo dõi
  3. Khởi chạy một instance VS Code mới trong thư mục đó

Lệnh tùy chỉnh (Custom Commands)

Thay vì copy và paste các prompt dài mỗi lần, bạn có thể tạo các lệnh gạch chéo (slash commands) tùy chỉnh trong Claude Code. Thêm một file .md vào thư mục .claude/commands để tạo lệnh tùy chỉnh.

Lệnh tùy chỉnh có thể tham chiếu đến biến $ARGUMENTS, biến này sẽ được thay thế bằng bất kỳ đối số nào bạn truyền vào lệnh. Ví dụ:

  • /project:create_worktree feature_a sẽ tạo một worktree tên là "feature_a"
  • /project:create_worktree develop sẽ tạo một worktree tên là "develop"

Phát triển song song trong thực tế

Dưới đây là quy trình hoàn chỉnh trong thực tế. Bạn có thể tạo nhiều worktree cho các tính năng khác nhau:

Mỗi instance Claude làm việc trên nhiệm vụ được giao:

  • Cập nhật các test cho tài liệu
  • Thêm logging
  • Thêm các công cụ ghi chú (note-taking tools)
  • Thêm một công cụ trừ (subtract tool)

Parallel work — independent worktrees

worktree-A: Claude 1 — Tính năng A

worktree-B: Claude 2 — Tính năng B

worktree-C: Claude 3 — Tính năng C

Main project + main branch

Tạo nhiều git worktrees

Merge tất cả branches về main

Project hoàn chỉnh — Nx productivity

Merge các thay đổi

Khi các tính năng hoàn tất, bạn cũng có thể tự động hóa quy trình merge. Tạo một lệnh tùy chỉnh khác để yêu cầu Claude:

  1. Di chuyển vào thư mục worktree
  2. Kiểm tra commit mới nhất
  3. Quay lại thư mục gốc
  4. Merge branch của worktree đó
  5. Tự động xử lý bất kỳ xung đột (merge conflicts) nào

Claude thậm chí có thể tự động giải quyết các xung đột merge dựa trên hiểu biết của nó về những thay đổi đã thực hiện trong mỗi branch.

Kết quả

Cách tiếp cận này có thể mở rộng cho bao nhiêu instance song song tùy ý bạn có thể quản lý. Thay vì phát triển các tính năng một cách tuần tự, bạn có thể có nhiều instance Claude cùng lúc phát triển các phần khác nhau của dự án. Nó giống như việc có một đội ngũ lập trình viên riêng, mỗi người làm việc trong môi trường độc lập trước khi kết hợp thành quả lại với nhau.

Năng suất đạt được là rất lớn - về cơ bản bạn đang nhân khả năng phát triển của mình lên gấp nhiều lần tương ứng với số lượng instance chạy song song.

🔁 Bài học liên quan

📚 Nguồn & ghi nhận

Bài học có hữu ích không?

Góp ý / Báo lỗiPhát hiện sai sót hoặc có ý tưởng cải thiện?