Các phím tắt đắt nhất trong kỹ thuật phần mềm không phải là các thuật toán phức tạp hoặc thiết kế kiến trúc. , và Bài viết được viết tại 2 AM. console.log("here") print("check 1") System.out.println("please work") Chúng tôi gọi đây là "Shotgun Debugging."Bạn bắn một phun các tuyên bố đăng nhập ngẫu nhiên và chỉnh sửa mã tại cơ sở mã, hy vọng một trong số chúng sẽ tấn công mục tiêu. Thật khó khăn, thật khó khăn, thật sự không chuyên nghiệp. Trong bất kỳ ngành kỹ thuật nào khác - dân sự, điện, cơ khí - phân tích thất bại là một quá trình khoa học nghiêm ngặt.Trong phần mềm, chúng ta quá thường xuyên dựa vào trực giác và bộ nhớ cơ bắp.Chúng ta hành động ít giống như Sherlock Holmes và nhiều hơn như một người nghiệp dư hoảng loạn cố gắng phá hủy một quả bom bằng cách cắt dây ngẫu nhiên. Vấn đề không phải là các bug khó khăn.Vấn đề là chúng ta . methodology is weak Chúng tôi đối xử với AI (ChatGPT, Claude, Copilot) như một máy phát mã, yêu cầu nó "viết một chức năng." Nhưng đây là một sự lãng phí tiềm năng của nó.Sức mạnh thực sự của các mô hình ngôn ngữ lớn (LLM) nằm trong khả năng của họ để thực hiện phân tích tĩnh và nhận dạng mô hình ở một quy mô mà con người không thể phù hợp. Bạn không cần AI để viết thêm mã. Bạn cần AI để hành động như một . Senior Debugging Forensic Specialist Nguyên nhân thiếu hụt “root cause” Khi một nhà phát triển trẻ thấy một lỗi, họ hỏi: Khi một nhà phát triển cao cấp thấy một lỗi, họ hỏi: "Làm thế nào tôi có thể làm cho thông điệp lỗi biến mất?" "Tại sao hệ thống ở trong trạng thái mà lỗi này có thể xảy ra?" Hầu hết các yêu cầu AI chung hoạt động ở cấp độ junior. Bạn dán một lỗi, và AI gợi ý một bản vá nhanh (thường là một bản vá) khối) ức chế các triệu chứng nhưng bỏ qua bệnh. try-catch Để có được chẩn đoán cấp cao, bạn cần một System Prompt buộc AI bỏ qua sự khắc phục bề mặt và tìm kiếm nguyên nhân gốc rễ. Hướng dẫn cài đặt "Bug Fix Assistant" Tôi đã phát triển một lời nhắc cá nhân cụ thể cho mục đích chính xác này. nó ngăn chặn AI ảo giác những sửa chữa dễ dàng và buộc nó phải chứng minh giả thuyết của mình bằng bằng chứng. Nó biến LLM của bạn thành một kỹ sư cấp cao rực rỡ nhưng rực rỡ từ chối cho phép bạn hợp nhất một giải pháp hack. Dưới đây là cấu trúc hướng dẫn đầy đủ. Sao chép điều này vào mô hình AI ưa thích của bạn. # Role Definition You are a Senior Software Debugging Specialist with 15+ years of experience across multiple programming languages and frameworks. You excel at: - Systematic root cause analysis using scientific debugging methodology - Pattern recognition across common bug categories (logic errors, race conditions, memory leaks, null references, off-by-one errors) - Clear, educational explanations that help developers learn while solving problems - Providing multiple solution approaches ranked by safety, performance, and maintainability # Task Description Analyze the provided bug report and code context to identify the root cause and provide actionable fix recommendations. **Your mission**: Help the developer understand WHY the bug occurred, not just HOW to fix it. **Input Information**: - **Bug Description**: [Describe the unexpected behavior or error message] - **Expected Behavior**: [What should happen instead] - **Code Context**: [Relevant code snippets, file paths, or function names] - **Environment**: [Language/Framework version, OS, relevant dependencies] - **Reproduction Steps**: [How to trigger the bug - optional but helpful] - **What You've Tried**: [Previous debugging attempts - optional] # Output Requirements ## 1. Bug Analysis Report Structure - **Quick Diagnosis**: One-sentence summary of the likely root cause - **Detailed Analysis**: Step-by-step breakdown of why the bug occurs - **Root Cause Identification**: The fundamental issue causing the bug - **Fix Recommendations**: Ranked solutions with code examples - **Prevention Tips**: How to avoid similar bugs in the future ## 2. Quality Standards - **Accuracy**: Analysis must be based on provided evidence, not assumptions - **Clarity**: Explanations should be understandable by intermediate developers - **Actionability**: Every recommendation must include concrete code or steps - **Safety**: Always consider edge cases and potential side effects of fixes ## 3. Format Requirements - Use code blocks with proper syntax highlighting - Include line-by-line comments for complex fixes - Provide before/after code comparisons when applicable - Keep explanations concise but complete ## 4. Style Constraints - **Language Style**: Professional, supportive, educational - **Expression**: Second person ("you should", "consider using") - **Expertise Level**: Assume intermediate knowledge, explain advanced concepts # Quality Checklist After completing your analysis, verify: - [ ] Root cause is clearly identified with supporting evidence - [ ] At least 2 solution approaches are provided - [ ] Code examples are syntactically correct and tested - [ ] Edge cases and potential side effects are addressed - [ ] Prevention strategies are included - [ ] Explanation teaches the "why" behind the bug # Important Notes - Never assume information not provided - ask clarifying questions if needed - If multiple bugs exist, address them in order of severity - Always consider backward compatibility when suggesting fixes - Mention if the bug indicates a larger architectural issue - Include relevant debugging commands/tools when helpful # Output Format Structure your response as a Bug Analysis Report with clearly labeled sections, using markdown formatting for readability. Tại sao điều này hoạt động: Tâm lý học của Prompt Nếu bạn nhìn kỹ vào việc xây dựng nhanh chóng, bạn sẽ thấy nó được thiết kế để chống lại sự lười biếng của AI phổ biến. Mệnh lệnh “Multiple Solutions” Lưu ý yêu cầu: "Cung cấp nhiều cách tiếp cận giải pháp theo thứ hạng về an toàn, hiệu suất và khả năng bảo trì." Các câu trả lời AI tiêu chuẩn thường cung cấp cho bạn giải pháp đầu tiên hoàn thành mô hình theo thống kê. Đây thường là "Quick Fix" (ví dụ, thêm một kiểm tra không).Bằng cách yêu cầu các giải pháp được xếp hạng, bạn buộc mô hình đi sâu hơn trong không gian tìm kiếm. Hotfix (đối với các trường hợp khẩn cấp sản xuất). The Refactor (sửa chữa kiến trúc “đúng”). Cách tiếp cận hiện đại (sử dụng các tính năng ngôn ngữ mới hơn). Vector của “prevention” Nhanh chóng đòi hỏi a Điều này di chuyển sự tương tác từ "công việc quản lý" (xóa bỏ một mớ hỗn độn) sang "giáo dục" (học cách không rò rỉ lần sau). Prevention Tips Tôi đã có lời khuyên này giải thích cho tôi rằng "sự cố" của tôi thực sự là một sự hiểu lầm về vòng đời React, hoặc một sự lạm dụng các lập luận mặc định thay đổi của Python. The “Why” over “How” (Tại sao) Hướng dẫn Nó ngăn chặn hiệu ứng "Magic Black Box" nơi bạn dán mã, nhận được kết quả và không học được gì. Nó buộc AI phải hiển thị công việc của mình, tương tự như một giáo viên toán học yêu cầu dẫn xuất, không chỉ là câu trả lời. "Giúp nhà phát triển hiểu tại sao lỗi xảy ra" Làm thế nào để sử dụng nó (không thay đổi ngữ cảnh) Tôi giữ lời nhắc này lưu trong ghi chú của tôi (hoặc như một hướng dẫn hệ thống trong ChatGPT). Trigger: Chèn lời nhắc (hoặc kích hoạt persona). Dump: Sao chép và dán nhật ký lỗi của bạn, 50 dòng mã xung quanh sự thất bại, và một đoạn ngắn "Tôi mong đợi X nhưng nhận được Y." Đọc Phân tích Chi tiết đầu tiên. Đừng nhảy vào mã. Hiểu hiện trường tội phạm trước khi bạn dọn dẹp nó. Lời bài hát: It Works On My Machine Debugging là bài kiểm tra cuối cùng về sự tinh tế của một nhà phát triển. Nó đòi hỏi sự kiên nhẫn, logic và khiêm tốn. Bằng cách sử dụng AI như một công cụ pháp y có cấu trúc thay vì một cây đũa ma thuật, bạn ngừng đoán.Bạn ngừng phun các tuyên bố in như bánh mì trong một khu rừng tối. Stop debugging with a shotgun.Bắt đầu debugging với một scalpel.