Bài tập review mã · 8 MIN
Review thay đổi do AI sinh
Kiểm tra endpoint ngắn. Quyết định bằng chứng cần có trước khi chấp nhận thay đổi.
Tình huống
Trợ lý AI đề xuất endpoint hóa đơn. Người dùng đã đăng nhập chỉ được thấy hóa đơn tổ chức mình. Bạn review thay đổi trước khi có thể phát hành.
Việc cần làm
- Đọc mã và giải thích bằng ngôn ngữ dễ hiểu. Bạn không cần chạy mã.
- Chọn mọi kiểm tra cần trước khi chấp nhận. Kiểm tra câu trả lời, đọc lý do và thử lại nếu thiếu kiểm tra.
Bạn review PR này. Tính năng chỉ được trả hóa đơn cho người dùng đã xác thực trong cùng tổ chức. Đoạn mã chưa đầy đủ.
// Fictional, incomplete example. Do not deploy.
app.get('/invoices/:id', async (req, res) => {
const invoice = await db.invoice.findUnique({
where: { id: req.params.id }
});
console.log('Invoice response', invoice);
return res.json(invoice);
});Mã làm gì?
Endpoint lấy ID hóa đơn từ request, tìm hóa đơn đó, ghi toàn bộ hóa đơn vào log rồi trả về. Đoạn mã không cho thấy ai kiểm tra quyền người dùng với hóa đơn này.
Xác thực kiểm tra người dùng là ai. Phân quyền kiểm tra người dùng được làm gì. Middleware là mã xử lý request trước endpoint này. Nó có thể chứa kiểm tra không có trong đoạn mã.
ĐỂ HOÀN TẤT
Request thành công có chứng minh endpoint hóa đơn an toàn không?
So sánh câu trả lời với giải thích
Không. Nó chứng minh một request hoạt động. Bạn còn cần bằng chứng người dùng không thể đọc hóa đơn tổ chức khác. Kiểm tra toàn bộ đường request, hành vi khi thiếu bản ghi và ghi log. Test thành công phải bao phủ yêu cầu quan trọng.
Dùng trong công việc
Trong review PR tiếp theo, thêm một test cho hành động phải bị từ chối.
Chọn bài tập khác