aitodayCập nhật xu hướng AI, chatbot, automation, đào tạo và công nghệ mới mỗi ngày
Đào tạo

Refactor và viết test với Claude Code: Cách cải tổ code mà không phá chức năng

Quy trình refactor an toàn với Claude Code cho người mới: khóa hành vi bằng characterization test, chia diff nhỏ, chạy test và review từng chặng.

23:30 - 21/07/2026 4 phút đọc 7 lượt xem

Refactor là thay đổi cấu trúc mà giữ nguyên hành vi. Nếu chưa có test, câu “đừng làm hỏng chức năng” chỉ là mong muốn. Claude Code giúp đọc mã lặp và tạo test nhanh, nhưng người dùng phải xác định hành vi nào cần khóa và chia thay đổi thành các chặng có thể hoàn tác.

Kết quả sau bài học: Bạn sẽ tách hàm calculateTotal dài thành các hàm nhỏ mà đầu ra, quy tắc giảm giá và làm tròn tiền không đổi.

" alt="Refactor và viết test với Claude Code: Cách cải tổ code mà không phá chức năng" style="width:100%;height:auto;border-radius:6px" loading="lazy" />
Minh họa quy trình thực hành: luôn khảo sát, giới hạn phạm vi, kiểm thử và tự duyệt thay đổi do AI đề xuất.

Tư duy quan trọng trước khi bắt đầu

AI coding agent là cộng sự có khả năng thao tác, không phải nguồn chân lý. Bạn vẫn chịu trách nhiệm về mã được đưa vào dự án. Hãy giữ nhiệm vụ nhỏ, cung cấp bối cảnh vừa đủ, yêu cầu bằng chứng và không phê duyệt điều mình chưa hiểu.

Hướng dẫn từng bước

Bước 1: Định nghĩa hành vi bất biến

Liệt kê input/output, lỗi, side effect và các quy tắc nghiệp vụ. Lấy ví dụ thật đã ẩn dữ liệu. Không refactor cùng lúc với thay đổi yêu cầu sản phẩm.

Bước 2: Viết characterization test

Nếu code chưa có test, ghi lại hành vi hiện tại — kể cả hành vi kỳ lạ cần duy trì tạm thời. Bao phủ giá trị rỗng, biên giảm giá, làm tròn và lỗi. Chạy suite trước refactor để tạo baseline.

Bước 3: Yêu cầu kế hoạch chia chặng

Claude phải chỉ ra code smell có bằng chứng và đề xuất các bước độc lập: đổi tên, tách hàm thuần, loại lặp. Mỗi bước có test và không thay public API.

Bước 4: Thực hiện từng diff nhỏ

Sau mỗi bước, xem diff và chạy test. Tránh “tiện thể” nâng thư viện hoặc đổi format. Khi test đỏ, hoàn tác bước gần nhất dễ hơn điều tra một diff hàng trăm dòng.

Bước 5: Review kết quả chứ không chỉ độ đẹp

So sánh API, kết quả và hiệu năng cơ bản. Kiểm tra test có khẳng định hành vi chứ không sao chép implementation. Chỉ xóa code cũ khi không còn đường gọi và test đầy đủ.

Bài thực hành có đầu ra rõ ràng

Bài tập: tách calculateTotal thành normalizeItems, subtotal và applyDiscount. Giữ nguyên chữ ký export; thêm test cho giỏ rỗng, số lượng âm, ngưỡng giảm giá và số thập phân.

Tiêu chuẩn nộp bài: lưu prompt đã dùng, ảnh hoặc log kết quả trước/sau, diff cuối cùng, lệnh kiểm tra và ba điều bạn tự học được từ mã. Nếu test không chạy được, ghi lý do thay vì coi như đã đạt.

Prompt mẫu có thể sao chép

Chỉ phân tích hàm này. Liệt kê hành vi quan sát được, side effects và test characterization cần có; chưa refactor.

Đề xuất kế hoạch refactor theo các commit nhỏ. Không đổi public API, nghiệp vụ, dependency hoặc format tệp ngoài phạm vi.

Sau mỗi bước, chạy test liên quan và so sánh hành vi trước/sau. Dừng nếu có khác biệt chưa giải thích.

Lỗi người mới thường gặp

  • Viết lại toàn bộ module vì code “xấu”
  • Test chi tiết nội bộ nên vỡ ngay khi refactor
  • Trộn sửa bug với refactor
  • Không giữ baseline hiệu năng cho đoạn nóng

Checklist hoàn thành

  • Bất biến được ghi rõ
  • Test baseline xanh
  • Kế hoạch chia nhỏ
  • Public API không đổi
  • Review và test sau từng chặng

Cách tự học để không phụ thuộc AI

  1. Trước khi hỏi, tự dự đoán tệp và nguyên nhân trong năm phút.
  2. Sau câu trả lời, yêu cầu giải thích một khái niệm bạn chưa hiểu bằng ví dụ nhỏ.
  3. Tự viết lại phần cốt lõi hoặc test mà không nhìn câu trả lời.
  4. Lưu lỗi và bài học vào ghi chú dự án, không lưu bí mật.
  5. Một tuần sau, làm lại bài tập với yêu cầu hơi khác.

Kết luận: dùng tác nhân AI tốt không nằm ở việc tạo nhiều code, mà ở khả năng đặt mục tiêu rõ, kiểm soát phạm vi và chứng minh kết quả. Nếu giữ được vòng lặp đọc → kế hoạch → thay đổi nhỏ → test → review, người mới vừa đi nhanh hơn vừa thực sự tiến bộ.

Nguồn tham khảo chính thức: tài liệu sản phẩm dành cho nhà phát triển. Giao diện và tính năng có thể thay đổi; hãy đối chiếu tài liệu hiện hành khi cài đặt.

Chia sẻ bài viết
Tin mới
Đăng ký nhận bản tin AI hàng tuần
Luôn cập nhật những tin tức AI mới nhất, xu hướng công nghệ, hướng dẫn sử dụng AI và các bài phân tích chuyên sâu. Đăng ký để nhận những nội dung nổi bật được gửi trực tiếp đến email của bạn mỗi tuần.