Contact
Line : comsiam
Contact
Line : comsiam

Claude ช่วยแปลงโค้ดจากภาษาหนึ่งไปอีกภาษาได้ เช่น Python เป็น JavaScript หรือ PHP เป็น Python แต่การแปลงที่ถูกต้องต้องรักษาพฤติกรรมของโปรแกรมเดิม ไม่ใช่เพียงเปลี่ยนรูปแบบคำสั่ง ผู้ใช้ ComSiam และนักพัฒนาควรส่งโค้ดพร้อมตัวอย่างข้อมูลและผลลัพธ์ที่คาดหวัง แล้วทดสอบโค้ดทั้งสองเวอร์ชันก่อนนำไปใช้
① ภาษาและเวอร์ชันต้นทาง — เช่น Python 3
② ภาษาและสภาพแวดล้อมปลายทาง — เช่น JavaScript สำหรับเบราว์เซอร์ หรือ Node.js
③ เป้าหมายของโค้ด — อธิบายว่าฟังก์ชันหรือโปรแกรมควรทำอะไร
④ ตัวอย่างข้อมูลและผลลัพธ์ — ใช้กำหนดพฤติกรรมที่ต้องรักษา
⑤ ไลบรารีที่เกี่ยวข้อง — แจ้งชื่อไลบรารีและเวอร์ชัน หากโค้ดเรียกใช้
⑥ ข้อจำกัด — เช่น ห้ามเพิ่มไลบรารี ต้องคงชื่อฟังก์ชัน หรือให้เปลี่ยนเฉพาะส่วนที่ส่งมา
หากโค้ดเรียกใช้ตัวแปรหรือฟังก์ชันจากส่วนอื่น ควรส่งบริบทส่วนนั้นด้วย หรือบอกให้ Claude ระบุสิ่งที่ยังขาดก่อนเริ่มแปลง
① ขอให้ Claude สรุปหน้าที่ของโค้ดต้นฉบับก่อน
② ระบุพฤติกรรมและกรณีขอบที่ต้องคงไว้ เช่น รายการว่างหรือค่าติดลบ
③ สั่งให้แปลงเป็นภาษาและสภาพแวดล้อมปลายทางอย่างชัดเจน
④ ขอให้แสดงข้อสมมติและความแตกต่างระหว่างภาษา
⑤ ทดลองโค้ดใหม่ด้วยข้อมูลชุดเดียวกับต้นฉบับ
⑥ หากผลไม่ตรง ให้ส่งโค้ดทั้งสองเวอร์ชันพร้อมผลทดสอบจริงกลับไปวิเคราะห์
Anthropic แนะนำให้ระบุคำสั่งและผลลัพธ์ที่ต้องการอย่างชัดเจน หลักนี้ช่วยลดการตีความคลาดเคลื่อนเมื่อต้องแปลงโค้ดที่มีข้อกำหนดหลายข้อ
โค้ด Python ด้านล่างรับรายการตัวเลขและคืนเฉพาะเลขคู่:
def get_even_numbers(numbers):
return [number for number in numbers if number % 2 == 0]
Prompt สำหรับสั่ง Claude:
ช่วยแปลงโค้ด Python ด้านล่างเป็น JavaScript สำหรับใช้ในเบราว์เซอร์
เป้าหมาย:
รับ Array ของตัวเลข แล้วคืน Array ที่มีเฉพาะเลขคู่
ข้อกำหนด:
- รักษาพฤติกรรมของโค้ด Python เดิม
- ไม่ใช้ไลบรารีภายนอก
- ระบุข้อสมมติเรื่องชนิดข้อมูล
- แสดงตัวอย่างทดสอบด้วย [1, 2, 3, 4]
- อธิบายความแตกต่างของวิธีกรองรายการในสองภาษา
โค้ดต้นฉบับ:
[วางโค้ด Python ที่นี่]
ตัวอย่าง JavaScript ที่ได้:
function getEvenNumbers(numbers) {
return numbers.filter(number => number % 2 === 0);
}
console.log(getEvenNumbers([1, 2, 3, 4]));
ผลลัพธ์ที่คาดหวังคือ [2, 4] ทั้งสองภาษาใช้วิธีกรองสมาชิกในรายการ แต่เขียนด้วยรูปแบบของแต่ละภาษา หากโค้ดจริงรับข้อมูลที่ไม่ใช่ตัวเลข ควรกำหนดด้วยว่าจะให้แปลงข้อมูล ปฏิเสธข้อมูล หรือจัดการเป็นกรณีพิเศษอย่างไร
ถ้าโปรเจกต์มีชุดทดสอบเดิม ให้นำชุดทดสอบนั้นมาช่วยเทียบพฤติกรรม และเพิ่มกรณีทดสอบเมื่อพบว่ามีเงื่อนไขที่ยังไม่ครอบคลุม
ช่วยแปลงโค้ดจาก [ภาษาและเวอร์ชันต้นทาง] เป็น [ภาษาและสภาพแวดล้อมปลายทาง]
หน้าที่ของโค้ด:
[อธิบายเป้าหมายของโปรแกรมหรือฟังก์ชัน]
พฤติกรรมที่ต้องรักษา:
- [เงื่อนไขที่ 1]
- [เงื่อนไขที่ 2]
- [กรณีขอบที่ต้องรองรับ]
ข้อจำกัด:
- [เช่น ห้ามเพิ่มไลบรารี]
- [เช่น คงชื่อฟังก์ชันเดิม]
- [เช่น แก้เฉพาะโค้ดส่วนนี้]
โปรดส่ง:
1. โค้ดภาษาใหม่
2. ข้อสมมติที่ใช้ในการแปลง
3. ความแตกต่างระหว่างภาษาในจุดที่เกี่ยวข้อง
4. ตัวอย่างทดสอบและผลลัพธ์ที่คาดหวัง
โค้ดต้นฉบับ:
[วางโค้ดที่นี่]
ตัวเลข ข้อความ ค่าว่าง และค่าบูลีนอาจถูกจัดการต่างกันในแต่ละภาษา ควรระบุว่าข้อมูลจริงมีรูปแบบใดและต้องการให้จัดการอย่างไร
หากโค้ดต้นฉบับใช้ไลบรารีเฉพาะ ให้ตรวจว่าในภาษาเป้าหมายมีไลบรารีที่ทำงานเทียบเท่าหรือไม่ อย่าให้ Claude เลือกไลบรารีใหม่โดยไม่แจ้งข้อจำกัดของโปรเจกต์
แม้ฟังก์ชันจะทำงานได้ แต่รูปแบบการเรียกใช้ ชื่อไฟล์ หรือวิธีจัดการข้อมูลอาจไม่ตรงกับโครงสร้างโปรเจกต์ ควรตรวจจุดเชื่อมต่อก่อนนำไปรวมกับระบบเดิม
ก่อนวางโค้ด ให้ลบรหัสผ่าน API Key โทเคน และข้อมูลส่วนบุคคล หากต้องแสดงตำแหน่งของข้อมูลลับ ให้แทนค่าจริงด้วยตัวอย่าง เช่น YOUR_API_KEY
Claude ช่วยเขียนและแปลงโค้ดได้หลายภาษา แต่ควรระบุภาษาและเวอร์ชันให้ชัด และตรวจว่าคำตอบตรงกับไลบรารีและสภาพแวดล้อมที่ใช้อยู่
ไม่ควรถือว่าเหมือนกันโดยอัตโนมัติ ความแตกต่างของชนิดข้อมูล ไลบรารี และวิธีจัดการกรณีพิเศษอาจทำให้ผลเปลี่ยน ต้องทดสอบด้วยข้อมูลชุดเดียวกัน
โปรเจกต์ขนาดใหญ่ควรแบ่งเป็นฟังก์ชันหรือโมดูล แล้วทดสอบทีละส่วนก่อนรวมกลับ วิธีนี้ช่วยให้หาจุดผิดพลาดได้ง่ายขึ้น
การแปลงโค้ดด้วย Claude ควรระบุภาษาเดิม ภาษาเป้าหมาย หน้าที่ของโค้ด ข้อจำกัด และผลลัพธ์ที่ต้องรักษา จากนั้นทดสอบโค้ดใหม่ด้วยข้อมูลชุดเดียวกับต้นฉบับและตรวจกรณีขอบเสมอ ผู้อ่าน ComSiam สามารถใช้ Prompt แม่แบบในบทความนี้เพื่อเริ่มแปลงฟังก์ชันเล็ก ๆ ก่อนนำแนวทางไปใช้กับโปรเจกต์ที่ใหญ่ขึ้น