พอถึงด่านเขียนโค้ดจริง — ที่หลายคนคิดว่าคือ "ทั้งหมด" — มันก็ยังไม่ได้มีชั้นเดียว. งานเขียนโค้ดซ้อนกันอยู่ 3 ชั้น และคนส่วนใหญ่มองเห็นแค่ชั้นแรก
สำหรับคนที่อยากเข้าใจว่าทำไม "ฟีเจอร์ก็ดูเสร็จแล้ว" แต่ dev ยังบอกว่ายังไม่เสร็จ — เพราะยังมีอีก 2 ชั้นที่มองไม่เห็น
Functional คือการเขียนโค้ดสร้างฟีเจอร์ทั้งหมดที่ User ต้องใช้จริง — ทำให้โปรแกรม "ทำงานตรงโจทย์" ตั้งแต่ หน้าบ้าน (กดปุ่มแล้วเกิดอะไรขึ้น) ถึง หลังบ้าน (บันทึกข้อมูลถูกต้องไหม). ชั้นนี้คือที่คนส่วนใหญ่มองเห็นและเข้าใจดี
Non-functional คือส่วนที่ "ไม่ใช่ฟีเจอร์ที่มองเห็น" แต่เป็นเรื่อง คุณภาพของระบบ — ทำให้อ่านข้อมูลได้เร็วขึ้น (Caching), รองรับคนเข้าพร้อมกันเยอะ ๆ (Scalability), และจัดการ Log. ทำควบคู่ไปกับตอนเขียนโค้ด แต่ User ไม่เห็นโดยตรง
Security คือการเขียนโค้ดเพื่ออุดช่องโหว่ — และจุดสำคัญคือ "มันต้องเขียนเพิ่ม" เพื่อป้องกัน ไม่ใช่เขียนโค้ดปกติแล้วมันปลอดภัยมาให้เลย. เช่น ป้องกัน SQL Injection, เข้ารหัสข้อมูล (Encryption), และจัดการสิทธิ์การเข้าถึง
AI เก่งชั้น Functional มาก — สั่งสร้างฟีเจอร์เป็นภาษาคนได้เลย. ชั้น Non-functional และ Security AI ช่วยแนะนำและเขียนบางส่วนได้ แต่ ต้องมีคนรู้คอยตรวจ โดยเฉพาะเรื่องความปลอดภัย ที่พลาดแล้วกระทบข้อมูลลูกค้า — ห้ามเชื่อ AI ร้อยเปอร์เซ็นต์
ช่วยเขียนฟีเจอร์ [บอกฟีเจอร์] ให้ที และก่อนจบขอ 3 อย่าง:
1) ฟีเจอร์ทำงานครบตามที่บอก
2) ใส่ index/cache ให้โหลดเร็วเมื่อข้อมูลเยอะ และ log error ไว้
3) อุดช่องโหว่: ตรวจ input, กัน SQL injection, เช็กสิทธิ์ผู้ใช้ก่อนเข้าถึงข้อมูล
แล้วอธิบายให้ฟังว่าแต่ละข้อทำอะไรไว้บ้าง
| Functional | ฟีเจอร์ที่ User ใช้ (คนเห็นชั้นนี้) |
| Non-functional | เร็ว · รองรับคนเยอะ · Log |
| Security | อุดช่องโหว่ — ต้องเขียนเพิ่ม |
| AI ช่วย | Functional เยอะ · Security ต้องคนตรวจ |