ด่านที่ 7 · เขียนโค้ดจริง

Coding 3 ชั้น ที่คนเห็นแค่ชั้นเดียว

พอถึงด่านเขียนโค้ดจริง — ที่หลายคนคิดว่าคือ "ทั้งหมด" — มันก็ยังไม่ได้มีชั้นเดียว. งานเขียนโค้ดซ้อนกันอยู่ 3 ชั้น และคนส่วนใหญ่มองเห็นแค่ชั้นแรก

หน้านี้สำหรับใคร

สำหรับคนที่อยากเข้าใจว่าทำไม "ฟีเจอร์ก็ดูเสร็จแล้ว" แต่ dev ยังบอกว่ายังไม่เสร็จ — เพราะยังมีอีก 2 ชั้นที่มองไม่เห็น

⏱️
อ่าน 20 วินาที: การเขียนโค้ดจริงมี 3 ชั้น — ฟีเจอร์ที่เห็น (Functional), คุณภาพที่มองไม่เห็น (Non-functional), และความปลอดภัยที่ต้องเขียนเพิ่ม (Security)
FunctionalNon-functionalSecurityAI ช่วยชั้นไหน
ส่วนที่ลูกค้าเห็น
ชั้น 1 · Functional — ฟีเจอร์ที่กดแล้วทำงานตรงโจทย์
— ผิวน้ำ · ใต้เส้นนี้คือส่วนที่มองไม่เห็น แต่ต้องเขียนเหมือนกัน —
ชั้น 2 · Non-functional — เร็ว · รองรับคนเยอะ · เก็บ Log ไว้ไล่ปัญหา
ชั้น 3 · Security — อุดช่องโหว่ที่ต้องตั้งใจเขียนเพิ่ม ไม่ได้มาเอง
ชั้นที่ 1: Functional what users see

Functional คือการเขียนโค้ดสร้างฟีเจอร์ทั้งหมดที่ User ต้องใช้จริง — ทำให้โปรแกรม "ทำงานตรงโจทย์" ตั้งแต่ หน้าบ้าน (กดปุ่มแล้วเกิดอะไรขึ้น) ถึง หลังบ้าน (บันทึกข้อมูลถูกต้องไหม). ชั้นนี้คือที่คนส่วนใหญ่มองเห็นและเข้าใจดี

ตัวอย่างจริงกด "บันทึกออเดอร์" แล้วข้อมูลเข้าระบบครบ ดูยอดรวมได้ — นี่คือ Functional ที่ลูกค้าสัมผัสได้
ชั้นที่ 2: Non-functional quality you don't see

Non-functional คือส่วนที่ "ไม่ใช่ฟีเจอร์ที่มองเห็น" แต่เป็นเรื่อง คุณภาพของระบบ — ทำให้อ่านข้อมูลได้เร็วขึ้น (Caching), รองรับคนเข้าพร้อมกันเยอะ ๆ (Scalability), และจัดการ Log. ทำควบคู่ไปกับตอนเขียนโค้ด แต่ User ไม่เห็นโดยตรง

ถ้าข้าม
วันเปิดตัวคน 5 คนใช้ก็ลื่น แต่พอข้อมูลโตเป็นหมื่นแถว หน้าจอค้าง 8 วินาที — แล้วไม่มี Log ให้ไล่ว่าช้าตรงไหน
งานคุณภาพที่มองไม่เห็น
Caching ทำให้อ่านข้อมูลเร็วขึ้น
📈
Scalability รองรับคนใช้พร้อมกันเยอะ ๆ
🧾
Logging เก็บบันทึกไว้ไล่ปัญหาได้
ชั้นที่ 3: Security must write extra

Security คือการเขียนโค้ดเพื่ออุดช่องโหว่ — และจุดสำคัญคือ "มันต้องเขียนเพิ่ม" เพื่อป้องกัน ไม่ใช่เขียนโค้ดปกติแล้วมันปลอดภัยมาให้เลย. เช่น ป้องกัน SQL Injection, เข้ารหัสข้อมูล (Encryption), และจัดการสิทธิ์การเข้าถึง

เข้าใจผิดบ่อย
คิดว่าโค้ดปกติปลอดภัยอยู่แล้ว — จริง ๆ ต้องตั้งใจเขียนกันเพิ่ม
3 ช่องโหว่ที่ต้องอุดเอง
🛡️
SQL Injection กรอกข้อมูลแปลก ๆ แล้วล้วงฐานข้อมูลได้
🔑
สิทธิ์เข้าถึง User A เปิดดูข้อมูล User B ไม่ได้
🔒
Encryption ข้อมูลสำคัญถูกเข้ารหัส ไม่เก็บเป็นข้อความเปล่า
AI ช่วยชั้นไหนได้แค่ไหน ai assist

AI เก่งชั้น Functional มาก — สั่งสร้างฟีเจอร์เป็นภาษาคนได้เลย. ชั้น Non-functional และ Security AI ช่วยแนะนำและเขียนบางส่วนได้ แต่ ต้องมีคนรู้คอยตรวจ โดยเฉพาะเรื่องความปลอดภัย ที่พลาดแล้วกระทบข้อมูลลูกค้า — ห้ามเชื่อ AI ร้อยเปอร์เซ็นต์

ช่วยเยอะ
Functional — สร้างฟีเจอร์ได้เร็ว
ต้องมีคนตรวจ
Security & Non-functional — พลาดแล้วกระทบหนัก
3 คำถามก่อนรับมอบงาน
Functional — "กดทุกปุ่มในงานจริงแล้วทำงานครบไหม ข้อมูลที่บันทึกถูกต้องและดูย้อนหลังได้?"
Non-functional — "ถ้าข้อมูลโตเป็นหมื่นแถว หรือคนใช้พร้อมกัน 50 คน ยังเร็วอยู่ไหม และมี Log ไว้ไล่ปัญหาหรือเปล่า?"
Security — "เช็กสิทธิ์ก่อนเข้าถึงข้อมูลแล้วยัง ป้องกัน SQL Injection และเข้ารหัสข้อมูลสำคัญหรือยัง?"
พรอมต์ก๊อปไปสั่ง AI ให้ครบทั้ง 3 ชั้น
ช่วยเขียนฟีเจอร์ [บอกฟีเจอร์] ให้ที และก่อนจบขอ 3 อย่าง: 1) ฟีเจอร์ทำงานครบตามที่บอก 2) ใส่ index/cache ให้โหลดเร็วเมื่อข้อมูลเยอะ และ log error ไว้ 3) อุดช่องโหว่: ตรวจ input, กัน SQL injection, เช็กสิทธิ์ผู้ใช้ก่อนเข้าถึงข้อมูล แล้วอธิบายให้ฟังว่าแต่ละข้อทำอะไรไว้บ้าง

สรุปสั้น ๆ

Functionalฟีเจอร์ที่ User ใช้ (คนเห็นชั้นนี้)
Non-functionalเร็ว · รองรับคนเยอะ · Log
Securityอุดช่องโหว่ — ต้องเขียนเพิ่ม
AI ช่วยFunctional เยอะ · Security ต้องคนตรวจ
กลับห้องสมุด
พี่ปุ้ย ปริวรรตน์ อรุโณทยานันท์ ผู้สอนสร้างระบบธุรกิจด้วย AI
คิด เขียน และเป็นเจ้าของไอเดียเว็บนี้โดย พี่ปุ้ย ปริวรรตน์ อรุโณทยานันท์
ผู้เชี่ยวชาญวางระบบองค์กร & AI — สอนเจ้าของกิจการสร้างระบบของตัวเองมากกว่า 400 คน
ประวัติพี่ปุ้ย ·  ดูคอร์ส →