TROISINH
Prompt EngineeringPrompt cho từng mục đích

Prompt cho coding: Debug, refactor, generate code

Hướng dẫn viết prompt để AI viết code, fix bug và tối ưu code hiệu quả. Từ sinh viên đến developer đều dùng được ngay.

Định nghĩa

Prompt cho coding là cách bạn ra lệnh cho AI để nó viết code mới, tìm lỗi bug, hoặc cải thiện code cũ thay vì tự gõ từng dòng một. Khác với Google search chỉ trả về link Stack Overflow, AI coding assistant như Claude, ChatGPT hay GitHub Copilot có thể đọc code của bạn, hiểu context dự án, và viết luôn đoạn code phù hợp — chỉ cần bạn biết cách yêu cầu đúng.

Giải thích chi tiết

Viết code từ đầu (Generate)

Nhiều người mới dùng AI để viết code thường gõ chung chung như "viết cho tôi app quản lý công việc". Kết quả thường là code demo sơ sài không chạy được.

Cách đúng là phải cung cấp technical context: ngôn ngữ lập trình (Python, TypeScript), framework (React, Django), yêu cầu chức năng cụ thể, và style code bạn muốn. AI không đọc được ý nghĩ trong đầu bạn — nó chỉ đọc prompt.

Debug — Tìm và sửa lỗi

Đây là use case mạnh nhất của AI coding. Thay vì paste error message lên Google rồi click 10 tab Stack Overflow, bạn paste cả code lỗi + error message + context vào AI. AI sẽ:

  • Giải thích tại sao lỗi xảy ra
  • Đề xuất fix cụ thể dòng nào
  • Giải thích side effects nếu sửa

Lưu ý: Luôn gửi kèm version thư viện (ví dụ: pandas 2.0, React 18) vì cách giải quyết khác nhau tùy version.

Refactor — Cải thiện code cũ

Code chạy được chưa đủ — code cần dễ đọc, dễ bảo trì. Prompt refactor thường dùng để:

  • Chuyển từ "spaghetti code" sang structured code
  • Thêm type hints (Python) hoặc interface (TypeScript)
  • Áp dụng design pattern (Singleton, Factory...)
  • Tối ưu performance (big O, memory usage)

Thêm vào prompt tiêu chí cụ thể: "refactor để dễ unit test" hay "tối ưu cho dataset trên 100k rows" sẽ cho kết quả khác nhau hoàn toàn.

Giải thích code (Code Explanation)

Khi đọc code legacy viết 5 năm trước — hoặc code của đồng nghiệp vừa nghỉ việc — AI có thể dịch từng dòng thành tiếng Việt, vẽ flowchart logic, hoặc liệt kê dependencies để bạn nắm bắt nhanh.

Ví dụ thực tế

Debug Python với Error Message

Bạn có đoạn code pandas bị lỗi:

File "script.py", line 15, in <module>
  df.groupby('category').sum()
KeyError: 'category'

Prompt dùng:

Debug giúp tôi đoạn code Python dưới đây đang bị lỗi KeyError. Tôi dùng pandas 2.0.

import pandas as pd
df = pd.read_csv('data.csv')
result = df.groupby('category').sum()

Error message: KeyError: 'category'

Hãy:

  1. Giải thích tại sao lỗi
  2. Đề xuất fix cụ thể
  3. Kiểm tra xem code fix có handle trường hợp column 'category' bị thiếu không

Kết quả tốt hơn khi: Bạn thêm sample data (df.head()), vì lỗi có thể do column thực sự không tồn tại hoặc chỉ là typo chữ hoa/thường.

Generate API Endpoint với Context

Thay vì: "viết API đăng ký user"

Prompt dùng:

Viết endpoint POST /api/v1/register bằng FastAPI với yêu cầu:

  • Input: email (validate format), password (tối thiểu 8 ký tự), full_name
  • Băm password bằng bcrypt
  • Lưu vào PostgreSQL dùng SQLAlchemy async
  • Trả về JWT token nếu thành công, HTTP 400 nếu email đã tồn tại
  • Viết kèm Pydantic models và dependency injection chuẩn
  • Thêm type hints đầy đủ và docstring

Kết quả sẽ là code production-ready thay vì pseudocode.

Refactor từ Procedural sang OOP

Bạn có file utils.py 200 dòng toàn function lộn xộn. Prompt:

Refactor file utils.py dưới đây theo hướng OOP, tạo class DataProcessor với:

  • Methods: load(), clean(), transform()
  • Handle lỗi bằng custom exception thay vì print
  • Thêm type hints và logging
  • Giữ nguyên logic xử lý nhưng loại bỏ code duplicate

Ứng dụng

Sinh viên IT

  • Giải bài tập thuật toán: Không xin đáp án, mà xin explain từng bước để hiểu dynamic programming
  • Hiểu code mẫu: Paste code từ giáo trình, yêu cầu giải thích bằng tiếng Việt với ví dụ thực tế

Junior Developer

  • Code review trước khi commit: Paste function vừa viết, hỏi "có bảo mật issue gì không?" hoặc "có vi phạm SOLID không?"
  • Học best practices: "Viết lại đoạn này theo Pythonic way"

Senior Developer / Tech Lead

  • Generate boilerplate: Tạo template project, CI/CD config, Docker compose nhanh
  • Prototype nhanh: Viết MVP trong 30 phút để demo ý tưởng trước khi bỏ công viết chính thức

Người không chuyên IT (PM, Data Analyst, Marketing)

  • Automation script: Viết Python script xử lý Excel, rename file hàng loạt, crawl data đơn giản
  • Regex: "Viết regex bắt số điện thoại Việt Nam format +84 hoặc 0xx"

So sánh

Loại PromptKhi nào dùngInput cần thiếtOutput mong đợi
GenerateBắt đầu feature mớiTechnical stack, requirements, constraintsCode hoàn chỉnh, có thể chạy được
DebugCode báo lỗiCode lỗi + error message + version thư việnGiải thích nguyên nhân + code đã fix
RefactorCode chạy được nhưng xấuCode gốc + tiêu chí (clean/readable/performance)Code cải tiến + explanation thay đổi
ExplainĐọc hiểu code cũCode snippet + level giải thích (beginner/expert)Giải thích logic, flowchart, hoặc tài liệu

Quy tắc vàng: Luôn cung cấp context kỹ thuật đầy đủ (ngôn ngữ, framework, version) cho cả 4 loại. AI không biết bạn đang dùng React hay Vue nếu bạn không nói — và kết quả sẽ sai hoàn toàn.

Bài viết liên quan

Cùng cụm

Prompt cho viết lách: Blog, email, báo cáo

Áp dụng AI cho content marketing và văn phòng — từ viết blog đến soạn email chuyên nghiệp

Prompt cho phân tích: Data, research, so sánh

Dùng AI để phân tích dữ liệu CSV, nghiên cứu thị trường, và so sánh sản phẩm

Prompt cho sáng tạo: Brainstorm, ideation

Kỹ thuật brainstorm ý tưởng kinh doanh và viết story sáng tạo với AI

Đọc tiếp

Kỹ thuật cơ bản: Zero-shot, Few-shot Prompting

Nắm vững nền tảng kỹ thuật prompt để áp dụng cho coding hiệu quả hơn

Kỹ thuật nâng cao: Chain of Thought

Học cách bắt AI "suy nghĩ từng bước" để giải quyết bài toán phức tạp và debug logic khó

System Prompt & Thực chiến

Tìm hiểu cách thiết lập tính cách và giới hạn cho AI assistant chuyên về coding

On this page