| name | refactor |
| description | ปรับโครงสร้างโค้ดให้อ่านง่าย/ลดซ้ำ โดยพฤติกรรมเหมือนเดิม ใช้เมื่อผู้ใช้ขอ refactor ทำให้สะอาด หรือลดโค้ดซ้ำ |
Skill: refactor
หลักการ: พฤติกรรมต้องเหมือนเดิมเป๊ะ เปลี่ยนแค่รูปทรงข้างใน
- มีตาข่ายกันก่อน: ถ้ามีเทสต์ → รันให้ผ่านก่อน; ถ้าไม่มีและเสี่ยง → เขียนเทสต์คุมพฤติกรรมเดิมก่อน (characterization test)
- ทำทีละขั้นเล็กๆ — เปลี่ยนหนึ่งอย่าง แล้วรันเทสต์ ก่อนไปต่อ
- เทคนิคที่ใช้บ่อย: rename ให้สื่อความ, extract function/variable, รวมโค้ดซ้ำ (DRY), ลบ dead code, ลด nesting (early return)
- อย่าแถม: ไม่เพิ่มฟีเจอร์ ไม่เปลี่ยน behavior ไม่ "ปรับปรุง" ส่วนที่ไม่เกี่ยว — surgical
- รันเทสต์ให้ผ่านหลังเสร็จ; ถ้าไม่มีเทสต์ ลองรันโปรแกรมจริงเทียบผลก่อน/หลัง
ถ้าเจอ dead code หรือบั๊กระหว่างทาง: บอกผู้ใช้ อย่าเงียบๆ ลบ/แก้เกินที่ขอ