Mẫu prompt giúp chẩn đoán lỗi code phức tạp

Trong quá trình phát triển phần mềm, những lỗi đơn giản thường dễ phát hiện và sửa chữa, nhưng các lỗi code phức tạp – liên quan đến logic đa tầng, tương tác giữa nhiều module, hoặc các tình huống biên (edge cases) – lại là thách thức lớn ngay cả với lập trình viên giàu kinh nghiệm. Việc đọc và lần theo luồng code để tìm nguyên nhân có thể tốn rất nhiều thời gian, đặc biệt khi hệ thống đã phát triển đến quy mô lớn.

Chính vì vậy, mẫu prompt giúp chẩn đoán lỗi code phức tạp ra đời như một công cụ hỗ trợ hiệu quả, tận dụng sức mạnh của AI để phân tích, suy luận và đưa ra giả thuyết về nguyên nhân gây lỗi. Thay vì đặt câu hỏi chung chung, các prompt được thiết kế có cấu trúc sẽ hướng AI tập trung vào các khía cạnh quan trọng như luồng dữ liệu, dependency, trạng thái hệ thống, và các điểm có khả năng phát sinh bug.

Bài viết này sẽ giúp bạn xây dựng những prompt “đúng trọng tâm”, từ đó không chỉ rút ngắn thời gian debug mà còn nâng cao khả năng hiểu sâu hệ thống. Đây là một bước tiến quan trọng trong việc biến AI thành một “trợ lý kỹ thuật” thực thụ trong các dự án phần mềm phức tạp.

Mẫu prompt giúp chẩn đoán lỗi code phức tạp

Hãy giúp tôi gỡ lỗi vấn đề này:

Thông báo lỗi: [DÁN LỖI]
Ngữ cảnh code: [DÁN CODE LIÊN QUAN]
Ngôn ngữ/Framework: [ví dụ: JavaScript/Node.js]
Điều tôi mong đợi: [HÀNH VI MONG ĐỢI]
Điều xảy ra: [HÀNH VI THỰC TẾ]
Những gì tôi đã thử: [LIỆT KÊ CÁC THỬ NGHIỆM]

Cung cấp:
1. Phân tích nguyên nhân gốc rễ
2. Giải pháp từng bước
3. Tại sao nó xảy ra
4. Cách ngăn chặn nó

Phù hợp nhất cho: GPT-5, Claude 4 Sonnet

Cách sử dụng prompt mẫu

  • Điền thông báo lỗi là: Some items are out of stock
  • Ngữ cảnh code là:
// services/orderService.js

class OrderService {
  constructor(paymentService, inventoryService, notificationService) {
    this.paymentService = paymentService;
    this.inventoryService = inventoryService;
    this.notificationService = notificationService;
  }

  async processOrder(order) {
    try {
      // 1. Validate order
      if (!order.userId || !order.items || order.items.length === 0) {
        throw new Error("Invalid order data");
      }

      // 2. Check inventory (BUG tiềm ẩn: không await Promise.all)
      const inventoryChecks = order.items.map(item => {
        return this.inventoryService.checkStock(item.productId, item.quantity);
      });

      const allInStock = inventoryChecks.every(result => result === true);
      if (!allInStock) {
        throw new Error("Some items are out of stock");
      }

      // 3. Calculate total (BUG: không xử lý số âm hoặc undefined price)
      let total = 0;
      for (const item of order.items) {
        total += item.price * item.quantity;
      }

      // 4. Apply discount (BUG: discount có thể > 100%)
      if (order.discount) {
        total = total - (total * order.discount);
      }

      // 5. Process payment (BUG: không handle timeout / retry)
      const paymentResult = await this.paymentService.charge(
        order.userId,
        total
      );

      if (!paymentResult.success) {
        throw new Error("Payment failed");
      }

      // 6. Deduct inventory (BUG: race condition nếu concurrent)
      order.items.forEach(item => {
        this.inventoryService.reduceStock(item.productId, item.quantity);
      });

      // 7. Send notification (BUG: không await → có thể fail silently)
      this.notificationService.sendEmail(order.userId, "Order successful");

      return {
        status: "success",
        total
      };

    } catch (error) {
      console.error("Order processing failed:", error.message);

      return {
        status: "failed",
        error: error.message
      };
    }
  }
}

module.exports = OrderService;
  • Ngôn ngữ/Framework: JavaScript
  • Hành vi mong đợi là: Hiển thị mã lỗi để biết lỗi xảy ra ở bước nào và dễ phân loại lỗi
  • Điều xảy ra:
    • Chỉ trả về error.message → thiếu context (không biết lỗi xảy ra ở bước nào)
    • Không có mã lỗi (error code) → khó xử lý phía frontend
    • Không phân loại lỗi (business vs system)
    • console.error không đủ cho production (nên dùng logger như Winston)
  • Những gì đã thử: Refactor toàn bộ hệ thống error handling theo chuẩn production (Node.js)

Kết quả ví dụ prompt mẫu được thực hiện bằng GPT-5

Hãy giúp tôi gỡ lỗi vấn đề này:

Thông báo lỗi: Some items are out of stock
Ngữ cảnh code: 
// services/orderService.js

class OrderService {
  constructor(paymentService, inventoryService, notificationService) {
    this.paymentService = paymentService;
    this.inventoryService = inventoryService;
    this.notificationService = notificationService;
  }

  async processOrder(order) {
    try {
      // 1. Validate order
      if (!order.userId || !order.items || order.items.length === 0) {
        throw new Error("Invalid order data");
      }

      // 2. Check inventory (BUG tiềm ẩn: không await Promise.all)
      const inventoryChecks = order.items.map(item => {
        return this.inventoryService.checkStock(item.productId, item.quantity);
      });

      const allInStock = inventoryChecks.every(result => result === true);
      if (!allInStock) {
        throw new Error("Some items are out of stock");
      }

      // 3. Calculate total (BUG: không xử lý số âm hoặc undefined price)
      let total = 0;
      for (const item of order.items) {
        total += item.price * item.quantity;
      }

      // 4. Apply discount (BUG: discount có thể > 100%)
      if (order.discount) {
        total = total - (total * order.discount);
      }

      // 5. Process payment (BUG: không handle timeout / retry)
      const paymentResult = await this.paymentService.charge(
        order.userId,
        total
      );

      if (!paymentResult.success) {
        throw new Error("Payment failed");
      }

      // 6. Deduct inventory (BUG: race condition nếu concurrent)
      order.items.forEach(item => {
        this.inventoryService.reduceStock(item.productId, item.quantity);
      });

      // 7. Send notification (BUG: không await → có thể fail silently)
      this.notificationService.sendEmail(order.userId, "Order successful");

      return {
        status: "success",
        total
      };

    } catch (error) {
      console.error("Order processing failed:", error.message);

      return {
        status: "failed",
        error: error.message
      };
    }
  }
}

module.exports = OrderService;
Ngôn ngữ/Framework: JavaScript
Điều tôi mong đợi: Hiển thị mã lỗi để biết lỗi xảy ra ở bước nào và dễ phân loại lỗi
Điều xảy ra: 
❌ Chỉ trả về error.message → thiếu context (không biết lỗi xảy ra ở bước nào)
❌ Không có mã lỗi (error code) → khó xử lý phía frontend
❌ Không phân loại lỗi (business vs system)
❌ console.error không đủ cho production (nên dùng logger như Winston)
Những gì tôi đã thử: Refactor toàn bộ hệ thống error handling theo chuẩn production (Node.js)

Cung cấp:
1. Phân tích nguyên nhân gốc rễ
2. Giải pháp từng bước
3. Tại sao nó xảy ra
4. Cách ngăn chặn nó
Thứ Sáu, 03/04/2026 16:05
52 👨 14

Prompt liên quan

Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo