เคล็ดลับลดข้อผิดพลาดใน Scripts
1. ใช้ Comments เยอะพอ
Comments ช่วยอธิบายเหตุผลที่เขียนโค้ดแบบนั้น และอธิบายส่วนที่ซับซ้อน ทำให้เข้าใจง่ายเมื่อกลับมาอ่านภายหลัง หรือคนอื่นมาอ่าน
// Good: อธิบาย "ทำไม" ไม่ใช่ "ทำอะไร"
function calculateDiscount(price, user) {
// VIP users get 20% off on weekends only
if (user.isVIP && isWeekend()) {
return price * 0.8;
}
return price;
}
2. ใช้ Indentation (เยื้องโค้ด) เสมอ
ทำให้โค้ดอ่านง่าย จับคู่ Braces { } ตัวเปิด-ปิดง่ายขึ้น ป้องกัน Syntax Error
// Bad
if(x>0){doSomething();}else{doOther();}
// Good
if (x > 0) {
doSomething();
} else {
doOther();
}
3. เขียน Modular Code (โมดูลาร์)
จัดกลุ่มคำสั่งที่เกี่ยวข้องเป็น Functions ทดสอบและนำกลับมาใช้ใหม่ได้ง่าย (Reusable)
// แทนที่จะเขียนโค้ดยาวใน Event Handler เดียว
function handleFormSubmit(formData) {
const validated = validateForm(formData);
if (!validated.isValid) return showErrors(validated.errors);
const processed = processData(validated.data);
saveToServer(processed)
.then(showSuccess)
.catch(showError);
}
4. ตั้งชื่อตัวแปรและฟังก์ชันอย่างสอดคล้องและมีความหมาย
- ใช้ชื่อที่อธิบายวัตถุประสงค์:
userAgeแทนa,calculateTotalแทนcalc - Boolean ให้ขึ้นต้นด้วย is/has/can:
isActive,hasPermission,canEdit - Function ใช้ Verb:
getUser,saveData,validateEmail
5. ใช้ Syntax ตั้งชื่อสอดคล้องกัน
- camelCase สำหรับ Variable/Function:
userName,getUserData - PascalCase สำหรับ Class/Constructor:
User,ApiClient - UPPER_SNAKE_CASE สำหรับ Constant:
MAX_RETRY - _prefix สำหรับ Private (Convention):
_internalMethod
6. ทดสอบแบบ Modular (Incremental Testing)
อย่าเขียน Script ทั้งหมดถึงค่อยทดสอบ ให้เขียนทีละส่วน ทดสอบให้ผ่านก่อนค่อยเพิ่มส่วนต่อไป
// ขั้นตอนการพัฒนา // 1. เขียนฟังก์ชัน validateEmail() -> ทดสอบ // 2. เขียนฟังก์ชัน validateForm() ใช้ validateEmail -> ทดสอบ // 3. เขียน handleSubmit() ใช้ validateForm -> ทดสอบ // 4. ผูก Event Listener -> ทดสอบ End-to-End
เครื่องมือช่วยลด Error
- Linters: ESLint (Standard, Airbnb, Google Style Guide)
- Formatters: Prettier (Auto-format)
- Type Checkers: TypeScript, JSDoc + Type Checking
- Testing: Jest, Vitest, Cypress (Unit, Integration, E2E)
- Debuggers: VS Code Debugger, Chrome DevTools
สรุป
ลด Error ได้ด้วย: Comments ที่ดี, Indentation ถูกต้อง, Modular Functions, Naming Convention สอดคล้อง, Incremental Testing และใช้ Tooling (Linter, TypeScript, Tests) ช่วยจับ Error ก่อน Production