วิธีให้ Gemini อ่านและอธิบายโค้ด

Google Gemini สามารถช่วยอ่าน Source Code แล้วอธิบายว่าโค้ดทำงานอย่างไร Function แต่ละตัวมีหน้าที่อะไร ข้อมูลไหลผ่านระบบแบบไหน รวมถึงช่วยค้นหา Bug, Dependency และส่วนของโปรเจกต์ที่เกี่ยวข้องกันได้ เหมาะทั้งกับคนเริ่มเขียนโปรแกรมและ Developer ที่ต้องรับช่วง Codebase ของผู้อื่น

ผู้ใช้สามารถให้ Gemini อ่านโค้ดได้หลายวิธี ตั้งแต่ วาง Code ลงใน Prompt, อัปโหลดไฟล์ Source Code, Import Code Folder ไปจนถึง Import GitHub Repository หากต้องการผลลัพธ์ที่ดี ไม่ควรถามเพียงว่า “โค้ดนี้คืออะไร” แต่ควรระบุระดับความรู้และสิ่งที่ต้องการให้ Gemini อธิบายให้ชัดเจน

❶ 💻 Gemini อ่านและอธิบายโค้ดได้ไหม

ได้ Gemini สามารถใช้ Source Code เป็น Context แล้วตอบคำถามเกี่ยวกับ Codebase ได้

ตัวอย่างงานที่สามารถใช้ Gemini ช่วยได้ เช่น

  • 🧠 อธิบายว่า Code ทำอะไร
  • 🔍 อธิบาย Function
  • 🧩 อธิบาย Class และ Module
  • 🔗 Trace การเรียก Function
  • 📊 อธิบาย Data Flow
  • 🐛 หา Bug
  • ⚠️ วิเคราะห์ Error
  • ♻️ แนะนำ Refactor
  • 🚀 หาแนวทาง Optimize
  • 🔐 Review Security เบื้องต้น
  • 🧪 ช่วยสร้าง Unit Test
  • 📚 สร้าง Documentation
  • 🔄 แปลงภาษา Programming
  • ✍️ เพิ่ม Comment
  • 👨‍💻 ช่วยเรียนรู้ Codebase ที่ไม่คุ้นเคย

ข้อดีคือสามารถถามต่อในรูปแบบภาษาธรรมชาติได้ เช่น

“ทำไม Function นี้ต้องใช้ async?”

หรือ

“ค่าของ userId มาจากไฟล์ไหน?”

ทำให้ไม่จำเป็นต้องเข้าใจทุกส่วนของโปรเจกต์ก่อนเริ่มถาม

❷ 📋 วิธีที่ง่ายที่สุด: วาง Code ให้ Gemini อ่าน

หาก Code มีเพียงไม่กี่บรรทัด วิธีง่ายที่สุดคือ Copy แล้ววางลงใน Prompt

ตัวอย่าง Python

def calculate_total(price, quantity):
    return price * quantity

total = calculate_total(250, 3)
print(total)

จากนั้นถาม

“อธิบาย Code Python นี้ทีละบรรทัดสำหรับคนที่เพิ่งเริ่มเขียนโปรแกรม”

Gemini สามารถอธิบายประมาณว่า

  • def ใช้สร้าง Function
  • price และ quantity คือ Parameter
  • return ส่งค่าผลลัพธ์กลับ
  • calculate_total(250, 3) เรียก Function
  • ผลลัพธ์คือ 750

✅ เหมาะกับกรณีไหน

เหมาะกับ

  • Function เดียว
  • Error จุดเล็ก
  • Code ตัวอย่าง
  • Script สั้น
  • Formula
  • SQL Query

หากโปรเจกต์มีหลายไฟล์ ควรใช้การ Upload Code หรือ Import Codebase แทน

❸ 📄 วิธีอัปโหลดไฟล์ Code เข้า Gemini

หากโค้ดยาวเกินกว่าจะ Copy ลง Prompt สามารถเพิ่มไฟล์เข้า Gemini ได้

ขั้นตอนทั่วไปคือ

ขั้นที่ 1 เปิด Gemini

เปิด Gemini Web App และเข้าสู่ระบบบัญชี Google

ขั้นที่ 2 เลือก Add files

เลือกเพิ่มไฟล์บริเวณช่อง Prompt

ขั้นที่ 3 เลือก Source Code

อัปโหลดไฟล์ที่ต้องการให้ Gemini วิเคราะห์

ตัวอย่างเช่น

app.py
index.js
server.js
config.php
database.sql
style.css
index.html

ขั้นที่ 4 เขียน Prompt

ตัวอย่าง

“อ่าน Source Code ในไฟล์นี้ทั้งหมด แล้วอธิบายว่าโปรแกรมทำงานอย่างไร โดยเริ่มจากภาพรวมก่อน จากนั้นอธิบาย Function สำคัญทีละตัว”

วิธีนี้เหมาะกับ Code ที่อยู่ในไฟล์เดียวหรือไม่กี่ไฟล์

❹ 📂 วิธีให้ Gemini อ่าน Code ทั้งโฟลเดอร์

สำหรับ Project ที่มีหลายไฟล์ Gemini Web App ปัจจุบันมี Import code สำหรับนำ Code Folder เข้ามาเป็น Context

เส้นทางโดยทั่วไปคือ

Add files → More uploads → Import code → Upload folder

จากนั้นเลือกโฟลเดอร์ Project

ตัวอย่าง

my-app/
├── src/
│   ├── controllers/
│   ├── models/
│   ├── routes/
│   └── services/
├── tests/
├── package.json
└── README.md

เมื่อ Import แล้วสามารถถาม

“อธิบาย Architecture ของ Project นี้ก่อน แล้วแสดง Entry Point, Module หลัก และความสัมพันธ์ของ Directory ต่าง ๆ”

ฟีเจอร์นี้มีประโยชน์มากกว่าการอัปโหลดทีละไฟล์ เพราะ Gemini สามารถใช้ Context จากหลายไฟล์เพื่อเชื่อมโยงการทำงานของระบบ

❺ 🐙 วิธีให้ Gemini อ่าน GitHub Repository

ถ้า Code อยู่บน GitHub สามารถ Import Repository เข้า Gemini Web App ได้เช่นกัน

โดยเลือก

Add files → More uploads → Import code

จากนั้นใส่ Repository URL หรือ Branch URL

เมื่อ Repository ถูก Import แล้ว สามารถถามเกี่ยวกับ

  • Codebase
  • Function
  • Dependency
  • Architecture
  • Bug
  • Code Improvement

ได้โดยตรง

ตัวอย่าง Prompt

“อ่าน Repository นี้ก่อน แล้วอธิบายว่าโปรเจกต์นี้สร้างขึ้นเพื่ออะไร ใช้ Framework อะไร และ Request หลักเดินทางผ่านไฟล์ใดบ้าง”

📌 ข้อควรรู้

Repository ที่ Import เข้า Gemini จะเป็นสถานะของ Code ในเวลาที่นำเข้า

หาก GitHub มี Commit ใหม่ในภายหลัง ไม่ควรถือว่า Gemini ในแชตเดิมเห็น Code ใหม่โดยอัตโนมัติ

❻ 🧠 Prompt ที่ดีที่สุดสำหรับให้อธิบาย Code

แทนที่จะใช้เพียง

“อธิบาย Code นี้”

ลองใช้ Prompt ที่กำหนดโครงสร้างชัดเจน เช่น

“อ่าน Code ที่แนบมาทั้งหมด แล้วอธิบายตามลำดับดังนี้:

  1. Code นี้มีจุดประสงค์อะไร
  2. Input คืออะไร
  3. Output คืออะไร
  4. Function สำคัญมีอะไร
  5. แต่ละ Function รับ Parameter อะไร
  6. Function เรียกกันอย่างไร
  7. Data Flow เป็นอย่างไร
  8. Dependency ภายนอกมีอะไร
  9. จุดใดมี Logic ซับซ้อน
  10. จุดใดอาจเกิด Error

อธิบายเป็นภาษาไทยสำหรับคนที่มีพื้นฐาน Programming ระดับเริ่มต้น และหากไม่สามารถยืนยันอะไรจาก Code ได้ให้ระบุว่าไม่แน่ใจแทนการเดา”

Prompt แบบนี้ให้คำตอบเป็นระบบกว่าการถามแบบกว้าง

❼ 👶 วิธีให้ Gemini อธิบาย Code สำหรับมือใหม่

Gemini สามารถปรับระดับคำอธิบายตามพื้นฐานของผู้ใช้ได้

ตัวอย่าง Prompt

“อธิบาย Code นี้เหมือนกำลังสอนคนที่เพิ่งเริ่มเรียน Python โดยหลีกเลี่ยงศัพท์เทคนิคที่ไม่จำเป็น และถ้าต้องใช้ศัพท์เทคนิคให้อธิบายความหมายด้วย”

หรือ

“ฉันเข้าใจ HTML และ CSS แต่ยังไม่เก่ง JavaScript ช่วยอธิบาย JavaScript ชุดนี้โดยเปรียบเทียบกับสิ่งที่คนเขียนเว็บน่าจะเข้าใจ”

การระบุระดับความรู้ช่วยให้คำอธิบายไม่ยากหรือง่ายเกินไป

❽ 🧑‍💻 วิธีให้อธิบาย Code สำหรับ Developer

ถ้ามีพื้นฐานอยู่แล้ว ไม่จำเป็นต้องให้อธิบายทุกบรรทัด

สามารถสั่ง

“อธิบาย Code นี้ในระดับ Senior Developer โดยเน้น Architecture, Control Flow, State Management, Dependency, Side Effect และ Design Decision ไม่ต้องอธิบาย Syntax พื้นฐาน”

ทำให้คำตอบเน้นสิ่งที่มีประโยชน์ต่อ Developer มากขึ้น

❾ 🔎 วิธีให้ Gemini อธิบายทีละบรรทัด

หากกำลังเรียน Programming สามารถใช้ Line-by-Line Explanation

ตัวอย่าง

const users = data.filter(user => user.active);

Prompt

“อธิบายบรรทัดนี้ทีละส่วน ตั้งแต่ const, filter, Arrow Function และเงื่อนไข user.active พร้อมยกตัวอย่างข้อมูลก่อนและหลังประมวลผล”

Gemini จะช่วยแยก Syntax ออกเป็นส่วนเล็ก ๆ ทำให้เข้าใจง่ายขึ้น

💡 อย่าใช้กับไฟล์หลายพันบรรทัด

การให้อธิบายทุกบรรทัดของโปรเจกต์ใหญ่จะสร้างข้อมูลจำนวนมากและอาจไม่ช่วยให้เข้าใจภาพรวม

ควรเริ่มจาก Architecture แล้วเจาะเฉพาะ Function ที่สำคัญ

❿ 🧩 วิธีให้ Gemini อธิบาย Function

ใช้ Prompt

“อธิบาย Function นี้โดยแสดง:

  • จุดประสงค์
  • Parameter
  • Return Value
  • Side Effect
  • Function อื่นที่เรียกใช้
  • Error ที่อาจเกิด
  • ตัวอย่าง Input
  • ตัวอย่าง Output”

ตัวอย่าง

def discount(price, percent):
    return price - (price * percent / 100)

สามารถถามต่อได้ว่า

“ถ้า price = 1000 และ percent = 20 ให้ Trace ค่าแต่ละขั้นตอน”

ทำให้เห็น Logic ชัดขึ้น

🔗 วิธีให้ Gemini อธิบาย Function ที่เรียกกันหลายชั้น

ระบบจริงมักมีการเรียก Code ต่อกันหลายระดับ

เช่น

login()
   ↓
validateUser()
   ↓
findUser()
   ↓
queryDatabase()

สามารถสั่ง

“Trace Function login() ตั้งแต่เริ่มต้นจนถึง Database พร้อมอธิบายค่าที่ถูกส่งจาก Function หนึ่งไปอีก Function หนึ่ง”

วิธีนี้เหมาะกับ Codebase ที่มีหลาย Layer

🗺️ วิธีให้ Gemini อธิบาย Data Flow

ถ้าต้องการเข้าใจว่าข้อมูลเดินทางอย่างไร ใช้ Prompt

“Trace Data Flow ตั้งแต่ผู้ใช้ Submit Form จนข้อมูลถูกบันทึกลง Database พร้อมระบุไฟล์ Function และข้อมูลที่ถูกเปลี่ยนในแต่ละขั้น”

ตัวอย่าง Flow อาจเป็น

Browser
   ↓
POST /register
   ↓
Route
   ↓
Controller
   ↓
Validation
   ↓
Service
   ↓
Model
   ↓
Database

การเห็น Flow ช่วยให้เข้าใจระบบได้เร็วกว่าอ่านไฟล์แบบแยกส่วน

🌐 วิธีให้ Gemini อธิบาย API Code

หากเป็น Backend API ใช้ Prompt

“อธิบาย API Endpoint นี้ตั้งแต่ Request เข้ามาจน Response ถูกส่งกลับ โดยระบุ HTTP Method, Parameter, Validation, Business Logic, Database Query และ Response Status”

ตัวอย่าง

app.get('/users/:id', async (req, res) => {
  const user = await findUser(req.params.id);
  res.json(user);
});

ถามต่อได้ว่า

“ถ้าไม่พบ User จะเกิดอะไรขึ้น และ Code นี้ควรจัดการ Error อย่างไร”

ช่วยทั้งเรียนรู้และ Review Logic ไปพร้อมกัน

🗄️ วิธีให้ Gemini อธิบาย SQL

สามารถวาง Query แล้วถามได้โดยตรง

ตัวอย่าง

SELECT category, SUM(revenue) AS total_revenue
FROM sales
GROUP BY category
ORDER BY total_revenue DESC;

Prompt

“อธิบาย SQL นี้ตามลำดับการทำงาน พร้อมยกตัวอย่างข้อมูลก่อน Query และผลลัพธ์หลัง Query”

Gemini สามารถช่วยอธิบาย

  • SELECT
  • FROM
  • GROUP BY
  • SUM
  • ORDER BY

ได้เป็นขั้นตอน

🎨 วิธีให้ Gemini อธิบาย HTML และ CSS

สำหรับ Frontend สามารถถาม

“อธิบายว่า HTML และ CSS ชุดนี้ทำงานร่วมกันอย่างไร และ Selector แต่ละตัวมีผลกับ Element ใด”

หรือ

“ค้นหา CSS ที่ทำให้ Element นี้อยู่กึ่งกลาง และอธิบาย Mechanism”

เหมาะสำหรับเรียนรู้ Code ที่ Copy มาจาก Theme หรือ Template

⚙️ วิธีให้ Gemini อธิบาย JavaScript

JavaScript มักซับซ้อนเรื่อง

  • Promise
  • async/await
  • Closure
  • Event
  • Callback
  • Scope
  • DOM
  • State

สามารถถามเฉพาะ Concept ได้ เช่น

“อธิบายว่า async/await ถูกใช้ตรงไหนใน Code นี้ และเหตุใด Function จึงต้องเป็น async”

หรือ

“Trace Event ตั้งแต่ผู้ใช้กด Button จนข้อมูลแสดงบนหน้าเว็บ”

🐍 วิธีให้ Gemini อธิบาย Python

สำหรับ Python สามารถถามได้ตั้งแต่ Syntax ไปจนถึง Library

Prompt

“อธิบาย Script Python นี้โดยแบ่งเป็น Import, Data Loading, Processing, Function และ Output”

หากมี pandas

“อธิบายว่า DataFrame ถูกเปลี่ยนแปลงอย่างไรในแต่ละบรรทัด และแสดงตัวอย่างข้อมูลก่อนกับหลัง”

เหมาะสำหรับเรียนรู้ Data Analysis Code ที่ผู้อื่นเขียน

🐘 วิธีให้ Gemini อธิบาย PHP

Prompt

“อธิบาย PHP Code นี้ตั้งแต่ Request เข้ามาจน Query Database และ Render Output พร้อมระบุจุดที่ต้องระวังเรื่อง Input Validation”

สำหรับ WordPress สามารถถาม

“อธิบาย Hook และ Function ใน Code นี้ และบอกว่า Code ทำงานในช่วงใดของ WordPress Lifecycle”

ช่วยให้เข้าใจ Plugin หรือ Theme Code ได้ง่ายขึ้น

🧱 วิธีให้ Gemini อธิบาย Class และ Object

สำหรับ Object-Oriented Programming ใช้ Prompt

“อธิบาย Class นี้โดยแบ่งเป็น Property, Constructor, Method, Inheritance และ Dependency พร้อมยกตัวอย่างการสร้าง Object และการเรียก Method”

หากมีหลาย Class ให้ถาม

“สร้างแผนภาพข้อความแสดงความสัมพันธ์ของ Class เหล่านี้”

ตัวอย่าง

UserController
      ↓
UserService
      ↓
UserRepository
      ↓
Database

📦 วิธีให้ Gemini อธิบาย Library และ Dependency

หากไม่รู้ว่า Package ใดมีหน้าที่อะไร ใช้ Prompt

“ตรวจ Dependency ของ Project นี้แล้วสร้างตารางชื่อ Package, หน้าที่ และส่วนของ Codebase ที่ใช้งาน Package นั้น”

เช่นโปรเจกต์ Node.js สามารถให้ Gemini ดู package.json

หรือ Python ดู

requirements.txt
pyproject.toml

แต่ข้อมูล Version และ API ของ Library สามารถเปลี่ยนได้ หากกำลังจะนำคำแนะนำไปเขียน Code จริง ควรตรวจ Documentation ปัจจุบันเพิ่มเติม

🐛 วิธีให้ Gemini อธิบาย Error พร้อม Code

ถ้ามี Error อย่าส่ง Code อย่างเดียว

ควรส่ง

  • Error Message
  • Stack Trace
  • Code ที่เกี่ยวข้อง
  • สิ่งที่ทำก่อน Error
  • Environment
  • Version ที่ใช้

ตัวอย่าง Prompt

“โปรแกรมเกิด Error นี้:

TypeError: Cannot read properties of undefined

อ่าน Code ที่แนบมาแล้วอธิบายก่อนว่า Error หมายถึงอะไร จากนั้น Trace ว่าค่าที่เป็น undefined มาจากที่ใด โดยยังไม่ต้องแก้ Code”

การหาต้นเหตุให้ชัดก่อนแก้ช่วยลดการสร้าง Patch แบบเดาสุ่ม

🔍 วิธีให้ Gemini หา Bug โดยไม่แก้ Code ทันที

ใช้ Prompt

“Review Code นี้และแสดง Bug หรือ Logic Issue ที่เป็นไปได้ แต่ยังไม่ต้องเขียน Code ใหม่”

ให้แยกเป็น

Bug ที่ยืนยันได้

มีหลักฐานจาก Code ชัดเจน

จุดที่น่าสงสัย

ต้องใช้ Runtime Data เพิ่ม

ข้อมูลที่ต้องตรวจ

เช่น Log, Input หรือ Database

วิธีนี้เหมาะกับ Code Review มากกว่าการให้ AI Rewrite ทุกอย่าง

🧪 วิธีให้ Gemini สร้าง Test เพื่อช่วยอธิบาย Code

บางครั้งวิธีที่ดีที่สุดในการเข้าใจ Function คือดู Test Case

Prompt

“สร้างตัวอย่าง Test Case สำหรับ Function นี้ โดยแสดง Input และ Expected Output แต่ยังไม่ต้องเขียน Unit Test Code”

เช่น

InputExpected
100, 10%90
500, 20%400

ทำให้เห็น Behavior ของ Function ชัดเจน

🔄 วิธีให้ Gemini แปลง Code เป็น Pseudocode

หาก Code ซับซ้อนมาก สามารถขอให้แปลงเป็น Pseudocode

ตัวอย่าง

“แปลง Function นี้เป็น Pseudocode ภาษาไทยโดยไม่ใส่ Syntax ของ Programming Language”

ตัวอย่างผล

รับข้อมูลผู้ใช้
ตรวจสอบข้อมูล
ถ้าข้อมูลไม่ถูกต้อง
    ส่ง Error
ถ้าข้อมูลถูกต้อง
    บันทึก Database
ส่งผลสำเร็จกลับ

เหมาะสำหรับทำความเข้าใจ Logic ก่อนสนใจ Syntax

🪜 วิธีให้ Gemini สร้าง Step-by-Step จาก Code

อีกวิธีคือถาม

“สมมติว่า Function นี้ได้รับ Input ตัวอย่างดังต่อไปนี้ ให้จำลองการทำงานทีละขั้นและแสดงค่าของตัวแปรหลังแต่ละขั้น”

เรียกว่า Trace Execution

เหมาะกับ

  • Loop
  • Recursion
  • Algorithm
  • Array Processing
  • Conditional
  • State Change

🧠 วิธีใช้ Gemini เรียน Codebase ที่ไม่เคยเห็นมาก่อน

หากได้รับ Project ของผู้อื่น อย่าเริ่มอ่านแบบสุ่ม

Workflow ที่แนะนำคือ

❶ Architecture

ถามภาพรวมก่อน

❷ Entry Point

หาไฟล์เริ่มต้น

❸ Main Flow

Trace Use Case หลัก

❹ Module

เรียนทีละ Module

❺ Data

ดู Model และ Database

❻ Integration

ดู API หรือ Service ภายนอก

❼ Test

ดู Expected Behavior

❽ Error Handling

ดูว่าระบบจัดการข้อผิดพลาดอย่างไร

สำหรับ Developer ที่ใช้ Gemini กับงานบน comsiam วิธีนี้มีประสิทธิภาพกว่าการให้ AI อธิบายไฟล์หลายพันบรรทัดเรียงจากบนลงล่าง

📚 Prompt สำหรับ Developer ใหม่ใน Project

สามารถใช้คำสั่งนี้

“ฉันเพิ่งเข้ามาทำงานกับ Codebase นี้และยังไม่รู้ Architecture

สร้าง Learning Path ให้ฉันโดย:

  1. เลือกไฟล์ที่ควรอ่านก่อน
  2. อธิบายเหตุผล
  3. ระบุ Concept ที่ต้องเข้าใจก่อน
  4. แบ่ง Codebase เป็น Module
  5. เสนอ Use Case หนึ่งรายการสำหรับ Trace ตั้งแต่ต้นจนจบ”

ทำให้การศึกษา Codebase มีลำดับชัดเจนขึ้น

🔐 วิธีให้ Gemini อธิบาย Code ด้าน Security

สามารถถาม

“อธิบายว่า Authentication และ Authorization ใน Codebase นี้ทำงานอย่างไร พร้อมระบุไฟล์ที่เกี่ยวข้อง”

หรือ

“ตรวจว่า Input จากผู้ใช้ถูก Validate ตรงไหนก่อนเข้าสู่ Database”

แต่ Security Review จาก AI ไม่ควรเป็นการตรวจเพียงอย่างเดียว

ระบบจริงควรมี

  • Code Review
  • Static Analysis
  • Dependency Scan
  • Secret Scan
  • Security Testing

ร่วมด้วย

📋 วิธีให้ Gemini เพิ่ม Comment ใน Code

สามารถสั่ง

“เพิ่ม Comment เฉพาะส่วนที่ Logic ซับซ้อน โดยไม่ Comment บรรทัดที่อ่านเข้าใจได้อยู่แล้ว”

ดีกว่า

“Comment ทุกบรรทัด”

เพราะ Comment มากเกินไปทำให้ Code อ่านยาก

ตัวอย่างที่ดี

// Retry once because the upstream API occasionally returns 502.

ควรอธิบาย เหตุผล มากกว่าเพียงบอกว่า Code ทำอะไร

📚 วิธีให้ Gemini สร้าง Documentation จาก Code

Prompt

“สร้าง Documentation สำหรับ Function นี้ โดยระบุ Purpose, Parameter, Return Value, Exceptions และ Example”

หรือสำหรับ Project

“สร้าง Developer Documentation จาก Codebase นี้ โดยใช้เฉพาะสิ่งที่ยืนยันได้จาก Source”

เหมาะกับ Project ที่ Documentation ขาดหรือไม่อัปเดต

📂 Gemini อ่าน Code ได้มากแค่ไหน

สำหรับ Gemini Apps ปัจจุบัน Google มี Import Code โดยตรง

Code Folder

รองรับประมาณ

  • 1 Code Folder ต่อแชต
  • สูงสุด 5,000 ไฟล์
  • ขนาดรวมสูงสุด 100 MB

GitHub Repository

รองรับประมาณ

  • 1 Repository ต่อแชต
  • สูงสุด 5,000 ไฟล์
  • ขนาดรวมสูงสุด 100 MB

แม้ระบบรองรับไฟล์จำนวนมาก แต่ไม่ควรถือว่าการใส่ Code มากที่สุดจะทำให้คำตอบดีที่สุดเสมอไป

หากต้องแก้ปัญหาเฉพาะ Feature การเลือก Context ที่เกี่ยวข้องยังช่วยให้การวิเคราะห์มีจุดโฟกัสมากขึ้น

⚠️ Gemini อธิบาย Code ถูกต้อง 100% หรือไม่

ไม่ควรถือว่าถูกต้อง 100%

Gemini สามารถ

  • เข้าใจ Logic ผิด
  • พลาด Edge Case
  • เข้าใจ Library Version ผิด
  • อธิบาย Runtime Behavior ผิด
  • สร้าง Function ที่ไม่มีจริง
  • เดา Intent ของ Developer ผิด
  • พลาด Dependency ข้ามไฟล์

ดังนั้นควรใช้คำอธิบายเป็น เครื่องช่วยทำความเข้าใจ แล้วตรวจ Code จริงประกอบ

🚫 7 ข้อผิดพลาดที่พบบ่อยเวลาให้ Gemini อ่าน Code

❶ ส่ง Code แต่ไม่บอกภาษา

ควรระบุว่าเป็น Python, PHP, JavaScript หรือภาษาใด หากไม่ชัดเจน

❷ ไม่บอก Version

Framework ต่าง Version อาจทำงานต่างกัน

❸ ถามกว้างเกินไป

“อธิบายโปรเจกต์นี้ทั้งหมด”

อาจได้คำตอบกว้างและไม่ลึก

❹ ให้แก้ก่อนเข้าใจ

ควรอธิบาย Root Cause ก่อนสร้าง Patch

❺ ไม่ส่ง Error Message

AI ต้องเดาสาเหตุจาก Code มากขึ้น

❻ เชื่อคำอธิบายทันที

ควรตรวจกับ Source จริง

❼ นำ Code ที่ AI สร้างไป Production โดยไม่ Test

ทุกการเปลี่ยนแปลงควรผ่านการทดสอบ

🔐 ระวัง Secret ก่อนส่ง Code เข้า Gemini

Source Code อาจมีข้อมูลสำคัญ เช่น

.env
API_KEY
DATABASE_PASSWORD
ACCESS_TOKEN
PRIVATE_KEY
CLIENT_SECRET

ก่อนอัปโหลดควรตรวจและลบข้อมูลที่ไม่จำเป็น

ตัวอย่างที่ไม่ควรส่ง

API_KEY = "real-secret-key"

ควรเปลี่ยนเป็น

API_KEY = "YOUR_API_KEY"

หรือใช้ Environment Variable

import os

API_KEY = os.getenv("API_KEY")

การลด Secret ก่อนส่ง Source Code เป็นแนวทางที่ควรทำเสมอ ไม่ว่าจะใช้ Gemini หรือ AI Tool ใดก็ตาม

💡 10 Prompt ให้อธิบาย Code ที่ใช้ได้ทันที

❶ อธิบายภาพรวม

“อธิบายว่า Code นี้มีจุดประสงค์อะไร Input และ Output คืออะไร”

❷ อธิบายมือใหม่

“อธิบาย Code นี้สำหรับคนที่เพิ่งเริ่มเขียนโปรแกรม โดยอธิบายศัพท์เทคนิคทุกคำที่จำเป็น”

❸ อธิบาย Function

“อธิบาย Parameter, Return Value, Side Effect และ Error ของ Function นี้”

❹ Trace Code

“Trace การทำงานตั้งแต่ Function แรกจนถึง Output สุดท้าย”

❺ Data Flow

“อธิบายว่าข้อมูลเดินทางผ่าน Module ใดบ้างตั้งแต่ Input จนบันทึก Database”

❻ Pseudocode

“แปลง Logic นี้เป็น Pseudocode ภาษาไทย”

❼ หา Bug

“หา Logic Issue ที่เป็นไปได้โดยยังไม่แก้ Code”

❽ Architecture

“อธิบาย Architecture และความสัมพันธ์ระหว่าง Module ของ Codebase นี้”

❾ Dependency

“อธิบาย Library ภายนอกทั้งหมดและส่วนของ Code ที่ใช้งาน Library นั้น”

❿ ตรวจคำอธิบาย

“กลับไปตรวจ Source Code อีกครั้ง และระบุส่วนของคำอธิบายก่อนหน้าที่เป็นการสันนิษฐานแทนสิ่งที่ยืนยันได้จาก Code”

❓ คำถามที่พบบ่อย

Gemini อ่านโค้ดได้ไหม

ได้ สามารถวาง Source Code อัปโหลดไฟล์ Import Code Folder หรือ Import GitHub Repository แล้วถาม Gemini เกี่ยวกับ Code ได้

Gemini อธิบาย Code ภาษาไทยได้ไหม

ได้ สามารถกำหนดให้ตอบภาษาไทย และเลือกได้ว่าจะอธิบายสำหรับมือใหม่หรือ Developer ที่มีประสบการณ์

Gemini อ่านหลายไฟล์พร้อมกันได้ไหม

ได้ Gemini มี Import Code Folder สำหรับโปรเจกต์หลายไฟล์ และรองรับ GitHub Repository สำหรับวิเคราะห์ Codebase จาก Repository

Gemini อ่าน Code Folder ได้กี่ไฟล์

ตามข้อจำกัดปัจจุบัน Code Folder รองรับสูงสุดประมาณ 5,000 ไฟล์ และขนาดรวมประมาณ 100 MB ต่อแชต

Gemini สามารถหา Bug จาก Code ได้ไหม

สามารถช่วยวิเคราะห์ Bug และ Debug Issue ได้ แต่ไม่ควรถือว่าการวิเคราะห์ถูกต้องทุกกรณี ควรใช้ Error Message, Log และ Test ประกอบ

Gemini แก้ Code ให้เลยได้ไหม

สามารถเสนอ Code หรือแนวทางแก้ได้ แต่ควรให้ Gemini อธิบายปัญหาและ Root Cause ก่อน จากนั้น Developer ต้อง Review และ Test Code ก่อนใช้งานจริง

🎯 สรุป

วิธีให้ Gemini อ่านและอธิบายโค้ดสามารถทำได้ตั้งแต่การวาง Code สั้น ๆ ลงใน Prompt ไปจนถึงการ Import Code Folder หรือ GitHub Repository สำหรับ Codebase หลายไฟล์

หากต้องการเข้าใจ Code ให้เร็ว ควรเริ่มจาก Purpose → Architecture → Entry Point → Function → Data Flow → Dependency → Error Handling แทนการให้อธิบายทุกบรรทัดตั้งแต่ต้น

สำหรับโปรเจกต์ขนาดใหญ่ Gemini สามารถช่วยค้นหา Function, Trace Flow และเชื่อมโยง Source Code หลายไฟล์ได้ แต่คำอธิบายของ Generative AI ยังสามารถคลาดเคลื่อนได้ จึงต้องตรวจ Source Code, Documentation, Runtime Behavior และ Test จริงประกอบ

แนวทางของ comsiam คือใช้ Gemini เป็นผู้ช่วยทำความเข้าใจ Codebase ก่อน แล้วค่อยใช้ AI ช่วยหา Bug, Refactor หรือสร้าง Code ในขั้นตอนถัดไป วิธีนี้ช่วยลดโอกาสที่ AI จะแก้ Code โดยยังไม่เข้าใจโครงสร้างของระบบ