Nhờ AI viết commit message từ git diff thì còn thiếu gì, và bạn kiểm tra kết quả thế nào?
Gợi ý trả lời
Người phỏng vấn muốn biết bạn dùng AI như một công cụ hỗ trợ có kiểm soát, và hiểu một commit message tốt nên chứa gì.
Điều AI thiếu là lý do. Diff chỉ cho biết dòng nào được thêm hoặc xóa, tức là "đổi gì". Còn "vì sao đổi" nằm trong đầu bạn: lỗi nào người dùng gặp, vì sao chọn cách này thay vì cách khác. Nếu chỉ đưa diff, bạn thường nhận được kiểu message như "thêm bot.catch để xử lý lỗi", đúng theo nghĩa đen nhưng người đọc sau không biết chuyện gì đã xảy ra. Vì vậy mình luôn đưa thêm một hai câu ý định vào prompt.
Mình kiểm tra kết quả theo ba bước. Thứ nhất, đọc từng câu và đối chiếu với diff: nếu message nói "đã thêm test" mà diff không có file test nào thì đó là lời bịa và phải xóa. Thứ hai, xem dòng đầu có đúng dạng của dự án không (ví dụ kiểu(phạm vi): mô tả, ngắn gọn, bắt đầu bằng động từ). Thứ ba, xem phần thân có giải thích vì sao thay vì kể lại từng dòng code.
Một ý nữa là AI chỉ viết hay khi diff chỉ chứa một việc. Nếu bạn gộp spec, tính năng và test vào một commit thì không message nào mô tả tốt được. Nên tách commit theo ý nghĩa trước (git add -p giúp chọn từng đoạn thay đổi), rồi mới nhờ AI.
Điểm cộng: nhắc rằng người chịu trách nhiệm cho nội dung commit là bạn chứ không phải công cụ, và với pull request thì mục "đã kiểm tra thế nào" phải do bạn điền từ kết quả thật.