Notes & software courses · Free to learn
Aph's Blog
On this page

วางแผน & ออกแบบโปรเจกต์

👋 อ่านฟรีทั้งหมดบน Aph's Blog — เนื้อหาภาษาไทย ทำตามทีละหน้าใน sidebar ได้เลย หากมีข้อเสนอแนะหรืออยากให้เพิ่มหัวข้อไหน บอกได้เสมอ

เลือกโปรเจกต์ เขียน requirement ออกแบบ data model และแตกงาน — วางแผนก่อนเขียนโค้ด

บทสุดท้ายคือการรวมทุกอย่างที่เรียนมาเป็นโปรเจกต์จริงตั้งแต่ต้นจนจบ — สิ่งที่เอาไปใส่ portfolio และแสดงความสามารถได้ หัวข้อแรกคือการวางแผน เพราะ "วางแผนก่อนเขียน = เขียนน้อยลง รื้อน้อยลง"

เลือกโปรเจกต์ที่ดี

เลือกโปรเจกต์ที่ไม่เล็กเกินจนไม่ได้ใช้ทักษะ และไม่ใหญ่เกินจนทำไม่จบ ตัวอย่างที่เหมาะ: REST API + DB + auth เช่น

  • ระบบจัดการงาน (Task/To-do API) — CRUD + auth ต่อผู้ใช้
  • ระบบบันทึกค่าใช้จ่าย — บันทึก/สรุปยอด + รายงาน
  • ระบบจัดการคลังสินค้าเล็ก ๆ — สินค้า/สต็อก/รายการ

เขียน Requirement

ระบุให้ชัดว่าโปรเจกต์ "ทำอะไรได้บ้าง" (feature) ก่อนลงมือ — เป็นเข็มทิศกันหลงทาง

Task API — requirements
- ผู้ใช้สมัคร/ล็อกอินได้ (auth)
- สร้าง/ดู/แก้/ลบ task ของตัวเอง (CRUD)
- task มี: title, done, created_at
- ดูเฉพาะ task ของตัวเอง (ต้องล็อกอิน)
- กรอง task ตามสถานะ done/ยังไม่เสร็จ

ออกแบบ Data Model & Endpoints

ตาราง (บท 9):
users:  id, email(unique), password_hash
tasks:  id, title, done, created_at, user_id(FK)

Endpoints (บท 10, REST):
POST   /register     สมัคร
POST   /login        ล็อกอิน -> token
GET    /tasks        ดู task ของตัวเอง
POST   /tasks        สร้าง task
PUT    /tasks/{id}   แก้
DELETE /tasks/{id}   ลบ
วางแผนก่อนเขียน = รื้อน้อยลง

ใช้เวลา 30 นาทีร่าง requirement + schema + endpoints ช่วยประหยัดเวลาเขียนหลายชั่วโมง และทำให้รู้ว่าจะใช้ทักษะบทไหนบ้าง — นี่คือสิ่งที่นักพัฒนาจริงทำก่อนเริ่มโปรเจกต์

แตกงานเป็น task ย่อย

  1. ตั้งโปรเจกต์ + venv + git (บท 4, 5)
  2. ออกแบบ DB + สร้างตาราง (บท 9)
  3. ทำ auth: register/login + hash (บท 10)
  4. ทำ CRUD task endpoints + validation (บท 10)
  5. เขียนเทสต์ครอบ endpoint หลัก (บท 6)
  6. เก็บงาน: README + CI + deploy

สรุปหัวข้อนี้

  • เลือกโปรเจกต์ขนาดพอดี (REST API + DB + auth)
  • เขียน requirement ระบุ feature ให้ชัดก่อนเขียนโค้ด
  • ออกแบบ data model + endpoints (ใช้บท 9, 10)
  • แตกเป็น task ย่อยเรียงลำดับ — วางแผนก่อนช่วยรื้อน้อยลง
แบบฝึกหัด

1) เลือกโปรเจกต์ของตัวเอง 2) เขียน requirement 5-7 ข้อ 3) ออกแบบ schema (ตาราง + key) และ endpoints 4) แตกเป็น task ย่อยเรียงลำดับการทำ