Đạt kết quả tốt với Claude Code
(dzombak.com)- Sau khi thử nghiệm nhiều tác nhân lập trình LLM khác nhau trong vài tháng gần đây, Claude Code là công cụ mang lại sự hài lòng nhất
- Nhờ Claude Code, tác giả đã viết khoảng 12 chương trình và dự án trong thời gian ngắn, kể cả những việc bình thường sẽ không bắt đầu vì thiếu thời gian
- Để sử dụng hiệu quả, điều cốt lõi là viết đặc tả rõ ràng, cung cấp tài liệu về cấu trúc dự án, cách chạy build và lint, yêu cầu AI tự review code của mình, và vận hành hướng dẫn tác nhân toàn cục được cá nhân hóa
- Vì code do AI viết thường có thể không chính xác hoặc kém hiệu quả, nên cần tự mình xem xét toàn bộ code và test case, đồng thời trực tiếp bổ sung test còn thiếu hoặc yêu cầu AI viết rồi kiểm tra lại
- Phần phụ lục công khai hướng dẫn tác nhân toàn cục bao gồm chỉ dẫn phát triển chi tiết như kế hoạch triển khai theo từng bước, phát triển hướng kiểm thử, triết lý ưu tiên tính đơn giản, rõ ràng và thực dụng, tiêu chuẩn chất lượng, cùng quy trình giải quyết vấn đề
Trải nghiệm và hiệu quả khi dùng Claude Code
- Trong vài tháng gần đây, tác giả đã thử nghiệm nhiều tác nhân lập trình LLM, và trải nghiệm với Claude Code là tốt nhất
- Dù không phải hoàn toàn không có vấn đề, tác giả vẫn có thể hoàn thành hơn 12 chương trình và dự án trong thời gian ngắn
- Nếu không có Claude Code, gần như không thể hoàn thành toàn bộ số công việc này trong cùng khoảng thời gian
- Nhiều việc trong số đó là những dự án mà tác giả thậm chí đã không thử làm vì tốn quá nhiều thời gian
Chiến lược sử dụng Claude Code
- Viết đặc tả rõ ràng
- Trước khi bắt đầu dự án, tài liệu hóa rõ ràng yêu cầu và ngữ cảnh rồi cung cấp cho tác nhân
- Qua đó làm rõ hướng viết code và phạm vi công việc
- Tài liệu hóa cấu trúc dự án
- Chuẩn bị tài liệu bao gồm cách chạy build, lint và test
- Giúp tác nhân khám phá codebase và làm việc hiệu quả hơn
- Yêu cầu tác nhân review code
- Để Claude Code tự review code mà nó tạo ra nhằm phát hiện các điểm cần cải thiện hoặc lỗi ngoài dự kiến
- Sử dụng hướng dẫn toàn cục cá nhân
- Duy trì quy trình phát triển nhất quán thông qua
~/.claude/CLAUDE.md, nơi chứa các quy tắc cá nhân như cách tiếp cận giải quyết vấn đề, áp dụng TDD, giữ tính đơn giản và rõ ràng, cũng như giới hạn số lần thử là 3
- Duy trì quy trình phát triển nhất quán thông qua
Kiểm chứng code do LLM viết
- Code do AI tạo ra thường có các vấn đề như lỗi logic, suy giảm hiệu năng, kiểm thử chưa đầy đủ
- Tác giả review thủ công toàn bộ code và xác nhận cách nó hoạt động
- Tự bổ sung các test case bị thiếu
- Hoặc yêu cầu AI viết rồi review lại code và test
- Tác giả nhấn mạnh rằng trong môi trường chuyên nghiệp, khi PR mang tên mình thì trách nhiệm cuối cùng về chất lượng vẫn thuộc về bản thân
Nội dung chính trong hướng dẫn tác nhân “toàn cục” cá nhân
Hướng dẫn này được quản lý trong file ~/.claude/CLAUDE.md
-
Triết lý và nguyên tắc cốt lõi
- Tiến từng bước: thay đổi theo đơn vị nhỏ, luôn đảm bảo biên dịch và test đều qua
- Học từ code hiện có: phân tích pattern trong code và lập kế hoạch trước khi triển khai
- Ưu tiên tính thực dụng: tiếp cận linh hoạt phù hợp với tình huống của dự án
- Ưu tiên sự rõ ràng: code dễ đọc, ý đồ rõ ràng, tránh các mẹo không cần thiết
-
Định nghĩa về tính đơn giản
- Hàm và lớp chỉ có một trách nhiệm
- Tránh trừu tượng hóa quá sớm
- Giảm độ phức tạp và hướng tới code không cần giải thích thêm
-
Quy trình làm việc
- 1. Lập kế hoạch và chia giai đoạn:
- Với công việc phức tạp, chia thành 3~5 giai đoạn và ghi vào
IMPLEMENTATION_PLAN.md - Nêu rõ mục tiêu, tiêu chí thành công, test case và trạng thái tiến độ của từng giai đoạn
- Với công việc phức tạp, chia thành 3~5 giai đoạn và ghi vào
- 2. Luồng triển khai:
- Hiểu vấn đề → viết test (đỏ) → triển khai tối thiểu (xanh) → refactor → commit
- 3. Đánh giá lại sau giới hạn 3 lần thử:
- Khi thất bại, ghi lại nội dung thử nghiệm, lỗi và nguyên nhân
- Tìm kiếm phương án thay thế (2~3 cách tiếp cận)
- Xem xét lại việc phân rã bài toán hoặc thiết kế ở mức gốc rễ
- Thử pattern hoặc tính năng khác
- 1. Lập kế hoạch và chia giai đoạn:
-
Tiêu chuẩn kỹ thuật
- Ưu tiên composition, tận dụng dependency injection
- Sử dụng interface để đảm bảo dễ kiểm thử
- Luồng dữ liệu tường minh
- Khuyến nghị TDD, không được vô hiệu hóa test
-
Quy tắc chất lượng code
- Mọi commit phải biên dịch thành công, test vượt qua, có test cho tính năng mới và tuân thủ style code
- Trước khi commit cần chạy formatter và linter, tự review thay đổi, và viết commit message giải thích “vì sao”
-
Xử lý lỗi
- Fail fast và thông điệp cụ thể
- Cung cấp ngữ cảnh cần thiết cho việc debug
- Xử lý ngoại lệ ở mức phù hợp, không che giấu ngoại lệ
-
Tiêu chí ra quyết định
- 1. Dễ kiểm thử
- 2. Tính dễ đọc, dễ hiểu ngay cả sau 6 tháng
- 3. Tính nhất quán với pattern của dự án
- 4. Sự đơn giản
- 5. Khả năng thay đổi dễ dàng
-
Tích hợp vào dự án
- Phân tích ít nhất 3 chức năng tương tự
- Tái sử dụng pattern và thư viện hiện có
- Dùng cùng utility test hiện có
- Cần có lý do thật thuyết phục khi đưa vào công cụ mới
-
Cổng chất lượng
- Tất cả test đều phải qua
- Tuân thủ quy tắc của dự án
- Không có cảnh báo từ linter
- Commit message rõ ràng
- Phần triển khai khớp với kế hoạch
- TODO phải kèm số issue
-
Hướng dẫn kiểm thử
- Test tập trung vào hành vi thay vì cách triển khai
- Nếu có thể, mỗi test chỉ nên có một assertion
- Tên rõ ràng mô tả kịch bản
- Tái sử dụng utility test hiện có
- Test phải có tính quyết định
-
Tuyệt đối không làm
- Bỏ qua hook bằng
--no-verify - Vô hiệu hóa test
- Commit code không biên dịch được
- Đoán mò mà không kiểm chứng
- Bỏ qua hook bằng
-
Bắt buộc phải làm
- Commit theo từng bước nhỏ
- Cập nhật tài liệu liên tục
- Học từ phần triển khai hiện có
- Đánh giá lại cách tiếp cận sau 3 lần thất bại
Các dự án mã nguồn mở được tạo bằng Claude Code
- Reverse proxy nhận biết HTML/XML (cdzombak/xrp)
- Giao diện Solarized cho VS Code (sáng/tối) (cdzombak/dzsolarized-vscode)
- Trình tạo RSS cho photostream Flickr (cdzombak/flickr-rss)
- Công cụ metadata cho thư viện ảnh Lychee (cdzombak/lychee-meta-tool)
- Báo cáo trạng thái khóa màn hình macOS qua MQTT (cdzombak/macos-screenlock-mqtt)
- Tự động đặt tiêu đề ảnh Bird Buddy trong Lychee (cdzombak/lychee-birb-title)
- Tự động phân loại ảnh dựa trên LLM cục bộ (cdzombak/lychee-ai-organizer)
- Tự động hóa cài đặt hàng loạt phần mềm cho macOS (cdzombak/mac-install)
- Dự án dịch vụ RSS (cdzombak/rss.church)
- Xuất toàn bộ/chọn lọc ảnh Flickr và bảo toàn metadata (cdzombak/flickr-exporter)
- Trình tạo gallery HTML tĩnh (cdzombak/gallerygen)
Chưa có bình luận nào.