Prompt Engineering
AI
ChatGPT
Developer
Programming
โปรแกรมเมอร์

Prompt Engineering สำหรับนักพัฒนา: เพิ่มประสิทธิภาพการเขียนโค้ด

เรียนรู้เทคนิค Prompt Engineering สำหรับนักพัฒนาซอฟต์แวร์ ตั้งแต่การเขียนโค้ด Debug, Code Review, Documentation จนถึงการออกแบบ Architecture

AI Unlocked Team
17/01/2568
Prompt Engineering สำหรับนักพัฒนา: เพิ่มประสิทธิภาพการเขียนโค้ด

Prompt Engineering สำหรับนักพัฒนา: เพิ่มประสิทธิภาพการเขียนโค้ด

ในฐานะนักพัฒนา AI อย่าง ChatGPT, Claude หรือ GitHub Copilot สามารถเป็น "Pair Programmer" ที่ทรงพลัง แต่คุณภาพของความช่วยเหลือขึ้นอยู่กับ Prompt ที่คุณเขียน บทความนี้จะแนะนำเทคนิค Prompt Engineering เฉพาะสำหรับงานพัฒนาซอฟต์แวร์

ทำไม Developer ต้องรู้ Prompt Engineering?

  • เร่งความเร็ว: ลดเวลา Boilerplate Code, Documentation
  • Debug ได้ไว: หาสาเหตุและวิธีแก้ปัญหาได้เร็วขึ้น
  • เรียนรู้สิ่งใหม่: ใช้ AI เป็น Tutor เมื่อเรียน Tech ใหม่
  • Code Quality: ได้ Code Review และ Best Practices

หมวด 1: การเขียนโค้ด

Template พื้นฐานสำหรับเขียนโค้ด

คุณเป็น Senior [Language] Developer ที่เชี่ยวชาญ [Framework/Library]

เขียนโค้ดสำหรับ:
- ภาษา: [ระบุภาษา เช่น TypeScript, Python]
- Framework: [ระบุ เช่น Next.js, FastAPI]
- งาน: [อธิบายสิ่งที่ต้องการ]

Requirements:
- [Requirement 1]
- [Requirement 2]
- [Requirement 3]

Constraints:
- [ข้อจำกัดหรือ Style ที่ต้องการ]

ให้รวม:
- โค้ดที่พร้อมใช้งาน
- Comments อธิบาย
- Error Handling
- Unit Tests (ถ้าเหมาะสม)

ตัวอย่าง: สร้าง API Endpoint

คุณเป็น Senior Node.js Developer ที่เชี่ยวชาญ Express และ TypeScript

สร้าง REST API Endpoint สำหรับ:
- งาน: User Authentication (Register, Login, Logout)
- Database: PostgreSQL with Prisma ORM
- Auth: JWT Token

Requirements:
- Input Validation ด้วย Zod
- Password Hashing ด้วย bcrypt
- Refresh Token Mechanism
- Rate Limiting

Response Format:
- Success: { success: true, data: {...} }
- Error: { success: false, error: { code: string, message: string } }

ให้สร้าง:
1. Route definitions
2. Controller functions
3. Middleware (auth, validation)
4. Types/Interfaces
5. Error handling utilities

ตัวอย่าง: React Component

คุณเป็น Senior React Developer ที่เชี่ยวชาญ TypeScript และ Modern React Patterns

สร้าง React Component สำหรับ:
- Component: Data Table with Pagination
- Styling: Tailwind CSS
- State: React Query for data fetching

Features:
- Sortable columns
- Search/Filter
- Pagination (client-side)
- Loading states
- Empty state
- Error handling

Props Interface:
- data: T[]
- columns: ColumnDef<T>[]
- pageSize?: number
- onRowClick?: (row: T) => void

ให้รวม:
- TypeScript types/interfaces
- Proper accessibility (a11y)
- Responsive design
- Custom hooks ถ้าจำเป็น

หมวด 2: Debug และแก้ไขปัญหา

Template สำหรับ Debug

คุณเป็น Senior Developer ที่เชี่ยวชาญการ Debug

ช่วยหาสาเหตุและแก้ไขปัญหา:

## Context
- ภาษา/Framework: [ระบุ]
- Environment: [Dev/Prod/Test]
- เกิดขึ้นเมื่อ: [สถานการณ์]

## Code ที่มีปัญหา
```[language]
[วางโค้ดที่นี่]

Error Message

[วาง Error Message/Stack Trace]

สิ่งที่คาดหวัง

[อธิบายสิ่งที่ควรเกิดขึ้น]

สิ่งที่เกิดขึ้นจริง

[อธิบายสิ่งที่เกิดขึ้น]

สิ่งที่ลองแก้ไขแล้ว

  1. [วิธีที่ 1]
  2. [วิธีที่ 2]

ช่วยวิเคราะห์:

  1. สาเหตุที่เป็นไปได้
  2. วิธีแก้ไขพร้อมโค้ด
  3. วิธีป้องกันไม่ให้เกิดซ้ำ

### ตัวอย่าง: Debug Memory Leak

ช่วย Debug Memory Leak ใน React Application:

Context

  • React 18 + TypeScript
  • Next.js 14 App Router
  • ปัญหาเกิดเมื่อ Navigate ระหว่างหน้า

Component ที่สงสัย

export function LiveDataComponent() {
  const [data, setData] = useState([]);

  useEffect(() => {
    const ws = new WebSocket('wss://api.example.com/live');

    ws.onmessage = (event) => {
      setData(prev => [...prev, JSON.parse(event.data)]);
    };

    return () => ws.close();
  }, []);

  return <DataList items={data} />;
}

อาการ

  • Memory เพิ่มขึ้นเรื่อยๆ เมื่อ Navigate
  • Chrome DevTools แสดง Detached DOM Nodes เพิ่มขึ้น

ช่วยวิเคราะห์:

  1. หาจุดที่ทำให้เกิด Memory Leak
  2. แก้ไขโค้ด
  3. แนะนำ Best Practices สำหรับ WebSocket ใน React

## หมวด 3: Code Review

### Template สำหรับ Code Review

คุณเป็น Tech Lead ที่เชี่ยวชาญ Code Review

Review โค้ดต่อไปนี้:

Context

  • โปรเจค: [ประเภทโปรเจค]
  • ภาษา/Framework: [ระบุ]
  • Purpose: [จุดประสงค์ของโค้ด]

Code

[วางโค้ดที่นี่]

Review ในด้าน:

  1. Correctness: ทำงานถูกต้องตาม Requirements หรือไม่
  2. Performance: มี Performance Issues หรือไม่
  3. Security: มีช่องโหว่ Security หรือไม่
  4. Maintainability: อ่านง่าย แก้ไขง่ายหรือไม่
  5. Best Practices: ตาม [Language/Framework] Best Practices หรือไม่
  6. Testing: ทดสอบได้ง่ายหรือไม่

รูปแบบ Feedback:

  • ระบุจุดที่ต้องแก้ไข (พร้อมโค้ดที่แนะนำ)
  • ระบุจุดที่ทำได้ดี
  • ให้คะแนน Overall (1-10)

### ตัวอย่าง: Security Review

Review โค้ดนี้เพื่อหา Security Vulnerabilities:

app.post('/api/users/search', async (req, res) => {
  const { query } = req.body;

  const sql = `SELECT * FROM users WHERE name LIKE '%${query}%'`;
  const users = await db.query(sql);

  res.json(users);
});

app.get('/api/file', (req, res) => {
  const { path } = req.query;
  res.sendFile(path);
});

ช่วย:

  1. ระบุ Vulnerabilities ทั้งหมด
  2. อธิบายความเสี่ยง
  3. เขียนโค้ดที่แก้ไขแล้ว
  4. แนะนำ Security Best Practices เพิ่มเติม

## หมวด 4: Documentation

### สร้าง API Documentation

คุณเป็น Technical Writer ที่เชี่ยวชาญ API Documentation

สร้าง API Documentation สำหรับ:

API Endpoint

[วางโค้ด API ที่นี่]

สร้างเอกสารรูปแบบ OpenAPI/Swagger ที่รวม:

  1. Endpoint Description
  2. Request Parameters
  3. Request Body Schema
  4. Response Schema (Success & Error)
  5. Example Requests & Responses
  6. Error Codes
  7. Authentication Requirements

### สร้าง README

สร้าง README.md สำหรับ:

  • ชื่อโปรเจค: [ชื่อ]
  • ประเภท: [Library/CLI/Web App/API]
  • ภาษา/Framework: [ระบุ]
  • จุดประสงค์: [อธิบาย]

รวมส่วน:

  1. Project Title + Badge (build status, npm version, etc.)
  2. Description (1-2 ย่อหน้า)
  3. Features (bullet list)
  4. Installation
  5. Quick Start / Usage
  6. Configuration
  7. API Reference (ถ้าเป็น library)
  8. Examples
  9. Contributing
  10. License

### สร้าง Code Comments

เพิ่ม JSDoc/Docstring Comments ให้โค้ดนี้:

[วางโค้ดที่นี่]

ให้รวม:

  • Description ของ function/class
  • @param พร้อม type และ description
  • @returns พร้อม type และ description
  • @throws (ถ้ามี)
  • @example (ถ้าเหมาะสม)

## หมวด 5: Architecture & Design

### ออกแบบ System Architecture

คุณเป็น Solutions Architect ที่เชี่ยวชาญ [Cloud Provider]

ออกแบบ Architecture สำหรับ:

  • ระบบ: [อธิบายระบบ]
  • Users: [จำนวน Concurrent Users]
  • Data: [ประมาณการ Data Volume]
  • Requirements:
    • [Requirement 1]
    • [Requirement 2]
    • [Requirement 3]

Constraints:

  • Budget: [ระบุ]
  • Team Size: [ระบุ]
  • Timeline: [ระบุ]

ให้รวม:

  1. High-Level Architecture Diagram (ASCII หรือ Mermaid)
  2. Component Breakdown
  3. Technology Stack Recommendations
  4. Data Flow
  5. Security Considerations
  6. Scaling Strategy
  7. Cost Estimation
  8. Trade-offs และ Alternatives

### Database Schema Design

คุณเป็น Database Architect

ออกแบบ Database Schema สำหรับ:

  • ระบบ: [อธิบาย เช่น E-commerce Platform]
  • Database: [PostgreSQL/MySQL/MongoDB]
  • Scale: [จำนวน Records ที่คาด]

Features ที่ต้องรองรับ:

  • [Feature 1]
  • [Feature 2]
  • [Feature 3]

ให้รวม:

  1. ERD Diagram (Mermaid format)
  2. Table Definitions พร้อม Data Types
  3. Indexes ที่แนะนำ
  4. Relationships
  5. Migration Scripts
  6. Query Examples สำหรับ Common Operations
  7. Performance Considerations

## หมวด 6: Learning & Explanation

### อธิบาย Concept

คุณเป็น Senior Developer ที่เก่งในการอธิบาย

อธิบาย [Concept] สำหรับ Developer ที่:

  • มีพื้นฐาน: [ระบุระดับ]
  • รู้จัก: [ระบุสิ่งที่รู้อยู่แล้ว]

ให้อธิบาย:

  1. [Concept] คืออะไร (1-2 ประโยค)
  2. ทำไมถึงสำคัญ/ต้องใช้
  3. ทำงานอย่างไร (พร้อม Diagram ถ้าช่วยได้)
  4. ตัวอย่างโค้ดพื้นฐาน
  5. Use Cases ที่พบบ่อย
  6. Common Pitfalls
  7. แหล่งเรียนรู้เพิ่มเติม

### Compare Technologies

เปรียบเทียบ [Technology A] vs [Technology B]:

Context:

  • ใช้สำหรับ: [ประเภทโปรเจค]
  • Team: [ขนาดและประสบการณ์]
  • Scale: [ระดับ Scale ที่ต้องการ]

เปรียบเทียบในด้าน:

  1. Learning Curve
  2. Performance
  3. Ecosystem & Community
  4. Use Cases ที่เหมาะ
  5. Pros & Cons
  6. Code Examples (เปรียบเทียบ Syntax)
  7. When to use which

สรุป: แนะนำสำหรับ Context นี้


## หมวด 7: Testing

### สร้าง Unit Tests

คุณเป็น QA Engineer ที่เชี่ยวชาญ Testing

สร้าง Unit Tests สำหรับ:

[วางโค้ดที่ต้องการ Test]

ใช้:

  • Testing Framework: [Jest/Vitest/Pytest/etc.]
  • Assertion Library: [ระบุ]
  • Mocking: [ระบุ ถ้าจำเป็น]

ให้ครอบคลุม:

  1. Happy Path
  2. Edge Cases
  3. Error Cases
  4. Boundary Values

รูปแบบ:

  • Descriptive Test Names
  • Arrange-Act-Assert Pattern
  • Comments อธิบาย Test Cases ที่ซับซ้อน

### สร้าง Integration Tests

สร้าง Integration Tests สำหรับ API Endpoint:

[วาง API Code]

Test Cases ที่ต้องครอบคลุม:

  1. Valid Requests
  2. Invalid Input
  3. Authentication/Authorization
  4. Rate Limiting (ถ้ามี)
  5. Error Responses

ใช้:

  • Framework: [Supertest/Pytest/etc.]
  • Database: [Mock หรือ Test DB]

## เคล็ดลับสำหรับ Developer

### 1. ให้ Context เพียงพอ

❌ ไม่ดี: "แก้ Error นี้: undefined is not a function"

✅ ดี: "แก้ Error ใน React Component:

  • React 18 + TypeScript
  • เกิดเมื่อ onClick handler ถูกเรียก
  • Error: undefined is not a function
  • Code: [วางโค้ด]"

### 2. ระบุ Stack ที่ใช้

✅ ดี: "Stack:

  • Language: TypeScript 5.x
  • Framework: Next.js 14 (App Router)
  • Database: PostgreSQL + Prisma
  • Styling: Tailwind CSS"

### 3. ให้ตัวอย่าง Output ที่ต้องการ

ต้องการ Response Format:

interface ApiResponse<T> {
  success: boolean;
  data?: T;
  error?: {
    code: string;
    message: string;
  };
}

### 4. ขอให้อธิบายด้วย

เพิ่มท้าย Prompt: "อธิบายว่าทำไมถึงเลือกวิธีนี้ และ Trade-offs ที่มี"


## Prompt Patterns ที่มีประโยชน์

### 1. Rubber Duck Pattern

ช่วยเป็น Rubber Duck ให้:

ปัญหาที่เจอ: [อธิบาย] สิ่งที่ลองแล้ว: [ระบุ]

ถามคำถามเพื่อช่วยให้คิดออก (อย่าตอบตรงๆ)


### 2. Explain Like I'm 5 (ELI5)

อธิบาย [Concept] แบบง่ายที่สุด เหมือนอธิบายให้เด็ก 5 ขวบฟัง ใช้การเปรียบเทียบกับสิ่งในชีวิตประจำวัน


### 3. Refactor Pattern

Refactor โค้ดนี้โดย:

  1. ไม่เปลี่ยน Behavior
  2. ปรับปรุง [Readability/Performance/Testability]
  3. อธิบายทุกการเปลี่ยนแปลง

## แหล่งเรียนรู้เพิ่มเติม

ต้องการเรียนรู้เพิ่มเติม?

- [Prompt Engineering 101](/blog/prompt-engineering-basics) - พื้นฐาน Prompt
- [Chain of Thought Prompting](/blog/chain-of-thought-prompting) - ให้ AI คิดเป็นขั้นตอน
- [10 ข้อผิดพลาดในการเขียน Prompt](/blog/common-prompt-mistakes) - หลีกเลี่ยง Mistakes
- [Prompt Engineering: ศิลปะการสอน AI](/blog/prompt-engineering-mastery) - เจาะลึกเทคนิคขั้นสูง

## สรุป

**Prompt Engineering สำหรับ Developer** ช่วยให้คุณ:

1. **เขียนโค้ดเร็วขึ้น** - ลดเวลา Boilerplate
2. **Debug ได้ไวขึ้น** - AI ช่วยวิเคราะห์ปัญหา
3. **เรียนรู้ได้ไวขึ้น** - ใช้ AI เป็น Tutor
4. **ปรับปรุง Code Quality** - ได้ Review และ Best Practices

**เคล็ดลับสำคัญ:**
- ให้ Context และ Stack ที่ใช้เสมอ
- ระบุ Requirements และ Constraints ชัดเจน
- ขอให้อธิบายเหตุผลด้วย
- ตรวจสอบและทดสอบโค้ดที่ได้เสมอ

---

**พร้อมยกระดับการพัฒนาซอฟต์แวร์ด้วย AI หรือยัง?**

สำรวจคอร์สเรียนและทรัพยากรเพิ่มเติมได้ที่ [AI Unlocked](/)!

เขียนโดย

AI Unlocked Team