Kiểm tra nghiệp vụ
Trước khi hoàn thành một tính năng và commit code, cần kiểm tra logic và tính đầy đủ của nghiệp vụ. Trang này mô tả các bước và quy tắc kiểm tra để đảm bảo tính năng đúng spec, xử lý lỗi đúng chỗ và dễ review.
Mục đích
- Đảm bảo logic nghiệp vụ triển khai đủ theo spec/ticket.
- Xử lý lỗi đúng vị trí, thông báo phù hợp cho user.
- Test đủ luồng: tạo mới, sửa, xóa và màn hình/API bị ảnh hưởng.
- Developer nắm rõ và mô tả được nghiệp vụ để review và onboard thuận lợi.
Hoàn thành toàn bộ logic xử lý nghiệp vụ
Đã triển khai đủ logic theo yêu cầu từ spec/ticket. Không bỏ sót branch: không chỉ xử lý happy path mà bỏ qua trường hợp lỗi hoặc edge case.
Ví dụ: Form tạo đơn hàng cần:
- Validate đủ trường bắt buộc.
- Kiểm tra tồn kho trước khi tạo.
- Cập nhật tồn kho sau khi tạo thành công.
- Xử lý khi mã đơn trùng, khi hết tồn kho, khi API lỗi.
Xử lý lỗi đúng vị trí và thông báo phù hợp
Lỗi cần được bắt và xử lý tại nơi phù hợp (service/action), không để crash hoặc hiển thị thông báo kỹ thuật cho user. User nhận được message dễ hiểu và có hướng xử lý (thử lại, liên hệ admin, v.v.).
// ❌ Tránh: để lỗi lan ra, user thấy message raw
const { status } = await createOrder(data);
if (status !== HttpStatusCode.Ok) throw new Error(res.statusText);
// ✅ Tốt: map lỗi thành message nghiệp vụ
if (status !== HttpStatusCode.Ok) {
const message =
res.status === HttpStatusCode.Conflict
? t("common.messages.conflict_error_message")
: t("common.messages.success_message");
return {
status: HttpStatusCode.BadRequest,
message,
};
}
Trong Server Action nên dùng withActionExceptionHandler (hoặc tương đương) để xử lý lỗi tập trung. Xem Server Actions.
Kiểm tra thêm mới, chỉnh sửa và logic bị ảnh hưởng
Đã test đủ các luồng:
- Tạo mới — form, validation, gọi API/Action, cập nhật UI (danh sách, cache).
- Chỉnh sửa — load dữ liệu, lưu, kiểm tra exclusive constraint nếu có.
- Xóa (nếu có) — soft delete, cập nhật danh sách và màn hình liên quan.
- Màn hình/API bị ảnh hưởng — ví dụ danh sách đơn hàng cập nhật sau khi tạo đơn mới; báo cáo cập nhật khi dữ liệu nguồn thay đổi.
Nắm rõ và mô tả được nghiệp vụ
Developer có thể mô tả rõ:
- Chức năng làm gì (input, output).
- Điều kiện đặc biệt và ràng buộc nghiệp vụ.
- Các luồng lỗi và cách hiển thị cho user.
Điều này giúp review và onboard nhanh, đồng thời tránh hiểu nhầm spec.
Liên quan
- Server Actions — Exception handling, validation, transaction.
- Kiến trúc & các tầng — Logic nghiệp vụ đặt trong Service; Action điều phối và trả kết quả chuẩn.