Prompt lập trình tốt không cần dài, nhưng phải loại bỏ những quyết định mà AI không nên tự đoán. Bốn mảnh ghép quan trọng là Goal — kết quả cần đạt, Context — bối cảnh có liên quan, Constraints — ranh giới và Done when — bằng chứng hoàn thành. Đây là cách biến cuộc trò chuyện thành một bản đặc tả nhỏ.
Kết quả sau bài học: Bạn sẽ biết nâng một yêu cầu kiểu “sửa form đăng ký” thành prompt có thể kiểm thử và tái sử dụng cho tính năng, lỗi hoặc refactor.
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: Goal: mô tả hành vi, không áp đặt giải pháp
Viết điều người dùng sẽ thấy: “Hiển thị lỗi dưới ô email khi mất focus và email sai định dạng”. Tránh vội yêu cầu dùng thư viện cụ thể nếu chưa hiểu kiến trúc; hãy để Codex khảo sát rồi đề xuất.
Bước 2: Context: đưa đúng dữ kiện
Nêu đường dẫn, component, lỗi console, bước tái hiện, stack công nghệ và lệnh test. Có thể @-mention tệp hoặc chọn đoạn mã trong IDE. Đừng dán cả repository vào prompt; dữ kiện thừa làm lu mờ vấn đề.
Bước 3: Constraints: khóa các ranh giới quan trọng
Ví dụ: không đổi API, không thêm dependency, không sửa CSS ngoài component, không ghi log dữ liệu nhạy cảm, giữ tương thích trình duyệt hiện tại. Mỗi ràng buộc nên có lý do thực tế.
Bước 4: Done when: yêu cầu bằng chứng
Nêu ca kiểm thử cụ thể và lệnh cần qua. Một câu “xong khi test pass” chưa đủ nếu dự án không có test cho hành vi mới. Hãy yêu cầu thêm test hồi quy hoặc mô tả kiểm tra thủ công.
Bước 5: Dùng vòng lặp khảo sát → kế hoạch → thực thi → review
Ở nhiệm vụ mới, tách prompt thành hai lượt. Lượt một chỉ đọc và nêu kế hoạch; lượt hai mới cho sửa. Sau khi sửa, dùng prompt review độc lập để tìm giả định sai và phạm vi bị lan rộng.
Bài thực hành có đầu ra rõ ràng
Bài tập: viết lại prompt “làm trang tìm kiếm nhanh hơn”. Chỉ rõ dữ liệu nào chậm, cách đo hiện tại, giới hạn không đổi API và mục tiêu như giảm số lần gọi mạng khi gõ liên tục.
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
Goal: sửa lỗi gửi form hai lần khi nhấp nhanh. Context: lỗi nằm ở trang Checkout, bước tái hiện gồm ba bước và log đính kèm. Constraints: không đổi API, không thêm package. Done when: chỉ có một request và test hồi quy qua. Trước tiên chỉ điều tra.
Hãy cho tôi ba phương án, so sánh phạm vi, rủi ro và khả năng kiểm thử. Chưa sửa code.
Sau khi sửa, đối chiếu từng tiêu chí Done when và đưa bằng chứng; không tự tuyên bố hoàn thành nếu chưa chạy được lệnh.
Lỗi người mới thường gặp
- Nhồi nhiều mục tiêu không liên quan vào một prompt
- Chỉ mô tả giải pháp mà không nói hành vi cần đạt
- Không nêu việc cấm nên diff lan sang nhiều tệp
- Dùng từ “chuẩn”, “tốt”, “đẹp” nhưng không có thước đo
Checklist hoàn thành
- Một prompt chỉ có một mục tiêu chính
- Bối cảnh đủ để tái hiện
- Ranh giới được viết rõ
- Có tiêu chí hoàn thành quan sát được
- Yêu cầu kế hoạch trước với thay đổi lớn
Cách tự học để không phụ thuộc AI
- Trước khi hỏi, tự dự đoán tệp và nguyên nhân trong năm phút.
- 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ỏ.
- Tự viết lại phần cốt lõi hoặc test mà không nhìn câu trả lời.
- Lưu lỗi và bài học vào ghi chú dự án, không lưu bí mật.
- 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.

