- Muốn dùng công cụ viết mã bằng AI để rút ngắn các công việc chuyển đổi vốn mất 1–2 giờ của con người xuống còn mức chỉ cần 15–20 phút để rà soát
- Tuy nhiên, hiện tại chất lượng mã do AI tạo ra còn chưa đạt tới 90% so với mã tự viết, nên có vẻ chưa thực sự hữu ích
- Vì vậy, muốn biết cách sử dụng AI thế nào để đồng thời nâng cao năng suất và chất lượng mã
Tổng hợp các mẹo thực chiến để nâng cao hiệu quả và chất lượng lập trình bằng AI
1. Chỉ tập trung dùng AI cho các tác vụ có thể lặp lại
- AI phát huy hiệu quả lớn nhất khi thực hiện nhiều lần các công việc có dạng tương tự nhau
- Một lần đầu hãy để con người tự triển khai với chất lượng tốt nhất, rồi dùng nó làm ví dụ chuẩn
- Sau đó giao cho AI xử lý hàng loạt các công việc cùng mẫu
- Với những công việc cần suy nghĩ và phán đoán, hiệu quả kỳ vọng sẽ giảm rất nhanh
2. Nhất định phải lập kế hoạch trước khi viết mã
- Đừng tạo mã ngay, hãy viết kế hoạch giải quyết trước
- Ở giai đoạn lập kế hoạch, hãy làm lộ rõ mọi điểm mơ hồ và mọi câu hỏi
- Nếu kế hoạch chưa đủ thỏa đáng thì không chuyển sang giai đoạn thực thi
- Chất lượng kết quả phụ thuộc vào độ rõ ràng của tài liệu kế hoạch hơn là prompt
3. Chia nhỏ đơn vị công việc đến mức tối đa
- Hãy yêu cầu theo đơn vị một file, một component, vài hàm
- Những yêu cầu như “refactor toàn bộ”, “cải thiện cho idiomatic hơn” có xác suất thất bại cao
- Con người làm phần thiết kế cấu trúc, còn AI chỉ đảm nhiệm phần triển khai lặp lại
4. Đừng tích lũy context, hãy khởi tạo lại thường xuyên
- Càng hội thoại dài, khả năng tuân thủ quy tắc và chất lượng càng giảm mạnh
- Mỗi session chỉ xử lý một công việc
- Nếu đổi hướng, hãy bắt đầu lại trong một session mới
- Với công việc dài hạn, hãy lưu trạng thái bằng tài liệu (
plan.md chẳng hạn) rồi nạp lại
5. Tài liệu quy tắc nên ngắn và có tính máy móc
- Giữ
CLAUDE.md / AGENTS.md trong khoảng 500~1000 token
- Thay vì chỉ dẫn mang tính tuyên ngôn, hãy viết các quy tắc cụ thể và có thể kiểm chứng
- Chỉ ghi lại tối thiểu những lỗi thường sai
- Phần còn lại hãy dùng mã và kiểm tra tự động để ép tuân thủ
6. Dùng test, linter và build như một vòng lặp phản hồi
- Thay vì nói “hãy làm cho tốt”, hãy đưa ra rõ ràng các điều kiện cần vượt qua
- Đặt mục tiêu là test pass, build thành công và linter có 0 lỗi
- Phải có vòng lặp phản hồi thì AI mới tự hội tụ được
- Những bài test xác minh hành vi hiện có sẽ giảm mạnh độ khó của việc refactor
7. Đừng sửa giữa chừng khi đang thực thi, hãy sửa kế hoạch rồi chạy lại
- Nếu không hài lòng với kết quả, đừng lặp lại việc yêu cầu sửa mã
- Hãy sửa tài liệu kế hoạch rồi chạy lại trong một session mới
- Nếu đổi hướng ngay trong giai đoạn thực thi, chất lượng sẽ nhanh chóng sụp đổ
8. Dạy phong cách bằng ví dụ
- Những chỉ dẫn trừu tượng kiểu “mã tốt” hầu như không có tác dụng
- Hãy cung cấp kèm ví dụ Before / After
- Trình bày rõ ràng ví dụ tốt và ví dụ xấu
- Mở rộng quy tắc xoay quanh các ví dụ
9. Đừng từ bỏ việc hiểu mã, hãy làm rõ ranh giới trách nhiệm
- Mã do AI tạo ra nhất định phải được con người hiểu và rà soát
- Ngoài prototype và mã rủi ro thấp, không được dùng mà không kiểm tra
- Với mã liên quan đến bảo mật, vận hành hoặc bảo trì dài hạn, sự thấu hiểu là tiền đề của chất lượng
10. Trước hết hãy kiểm tra xem công việc này có phù hợp với AI hay không
- Những công việc không có đáp án đúng duy nhất, đòi hỏi nhiều đánh giá về thẩm mỹ hoặc cấu trúc, sẽ bất lợi cho AI
- Refactor UI, nơi khó tự động kiểm chứng kết quả trực quan, đặc biệt khó xử lý
- Khi cần, có thể làm như sau:
- Giai đoạn 1: chuyển đổi mang tính cơ học để giữ nguyên hành vi
- Giai đoạn 2: con người thực hiện refactor chất lượng
11. Hãy bắt đầu kỳ vọng từ “cải thiện 10%”
- Đừng kỳ vọng 10x ngay từ đầu
- Chiến lược tích lũy các cải thiện nhỏ sẽ hiệu quả hơn về lâu dài
- Điều cốt lõi là không từ bỏ tiêu chuẩn về thiết kế và chất lượng
1 bình luận
Ý kiến trên Hacker News
Tôi là Boris từ đội Claude Code. Xin chia sẻ vài mẹo
CLAUDE.md. Claude sẽ tự động đọc file nàyMong là có ích
CLAUDE.mdCLAUDE.mdtốt thì hiệu quả rất lớnCLAUDE.mdchỉ hoạt động tốt khoảng 4~5 lần, sau đó nó quên chỉ thị. Ví dụ bảo nó gọi tôi là “Mr. bcherny” thì nó cũng nhanh chóng quên mất.clinerules, nhưng tôi muốn biết khác gì vớiCLAUDE.mdKhi dùng nhập liệu bằng giọng nói, mô hình sẽ hiểu ý định chính xác hơn. Tôi nói ra các prompt cỡ 500 từ. Khi nói thì dòng suy nghĩ tự nhiên hơn so với gõ
Nếu nói “hãy lập kế hoạch và hỏi nếu có thắc mắc”, Claude thật sự sẽ đặt câu hỏi. Bảo nó bắt chước phong cách code trước đó cũng rất hiệu quả
Cần đưa điều kiện lặp (loop condition) vào prompt. Ví dụ: “lặp lại cho đến khi
yarn testpass”.Xét cho cùng LLM là một agent lặp đi lặp lại việc chạy công cụ, nên phải đối xử với nó theo cách đó
Tham khảo: Prompting the Agent Loop
Tôi muốn giới thiệu cấu hình nori-profiles mà tôi đã làm.
Sau 4 tháng thử nghiệm, hiệu năng của Claude Code được cải thiện rõ rệt.
Bài liên quan: Averaging 10 PRs a Day with Claude
Ở công ty tôi làm việc với một codebase Golang quy mô lớn. Tôi đã thử nhiều công cụ như Cursor, Claude Code, Gemini CLI, nhưng đa số đều bị khối lượng code áp đảo.
Tuy nhiên aider dễ kiểm soát hơn nhiều và có độ chính xác cao. Việc thêm file thì phải làm thủ công, nhưng gần như chính xác 100%.
Dùng với Claude Sonnet mới nhất hoặc Gemini 2.5 Pro thì cho độ chính xác tốt nhất
Khi làm việc với Cursor, trước tiên tôi cho nó refactor một route để tạo file rule. Sau đó với các route khác chỉ cần nói “refactor” là được
Nên luôn ý thức về dung lượng context còn lại, và khi cần thì xóa context sớm
Góc nhìn đối xử với agent như đồng đội là rất quan trọng. Phải quan sát điểm mạnh và điểm yếu của nhau rồi điều chỉnh cách cộng tác.
Tôi tập trung sức mạnh của agent vào những bài toán có thể kiểm chứng hoặc code thử nghiệm.
Tôi không rành Svelte, nhưng có lẽ nên dẫn dắt việc rewrite bằng các bài test disposable theo kiểu TDD.
Đôi khi cách tốt nhất là bỏ bối cảnh sai trước đó và bắt đầu lại trong một workspace mới
Tôi xem LLM là một cỗ máy tìm kiếm (searcher). Nếu câu hỏi nhỏ và cụ thể thì việc tìm kiếm dễ hơn, còn càng xa dữ liệu huấn luyện thì xác suất lỗi càng cao.
Với project mới, chỉ cần prompt one-shot cũng thường là đủ
Bộ công cụ Claude Code tôi hay dùng là superpowers
Tôi dùng được 2 tuần rồi và gần như chưa từng thất bại
Nguyên tắc lập trình với AI của tôi rất đơn giản
Cốt lõi là “Less is more”. Cửa sổ context càng mới càng tốt, và khoảng 500~750 từ là lý tưởng. Mọi bước đều phải kiểm chứng được
Với các tác vụ liên quan đến Java, Claude liên tục đổi hướng hoặc đưa ra đề xuất mâu thuẫn. Tôi thấy ChatGPT tốt hơn nhiều
Nếu muốn có idiomatic code, trước tiên bạn phải định nghĩa thật chi tiết phong cách mà mình nghĩ tới. Chia nhỏ ví dụ tốt/xấu, đưa chúng vào Plan mode của Opus 4.5 để lập kế hoạch rồi thực thi. Nếu chưa hoàn hảo trong một lần, hãy sửa tài liệu kế hoạch rồi thử lại. Nếu cố chỉ dẫn quá li ti như với lập trình viên junior thì ngược lại còn kém hiệu quả