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

สร้างทีละส่วน (ใช้ทุกอย่างที่เรียนมา)

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

ลงมือสร้างทีละ feature — โครงสร้างโปรเจกต์ + git + เทสต์ + clean code + DB + API ครบ

ถึงเวลาลงมือ — หัวข้อนี้คือการประกอบทุกบทเข้าด้วยกัน สร้างทีละ feature โดยใช้ workflow ที่นักพัฒนาจริงใช้: branch ต่อ feature, เขียนเทสต์คู่กัน, commit เล็ก ๆ

ตั้งโปรเจกต์

bash
mkdir task-api && cd task-api
python -m venv .venv && source .venv/bin/activate   # บท 4
pip install fastapi uvicorn pytest passlib bcrypt
pip freeze > requirements.txt
git init                                            # บท 5
# สร้าง .gitignore: .venv/, __pycache__/, .env, *.db

จัดโครงสร้าง (บท 4, 7)

task-api/
├── src/app/
│   ├── main.py      # FastAPI app + routes
│   ├── models.py    # Pydantic models
│   ├── db.py        # ฐานข้อมูล
│   └── auth.py      # hash + token
├── tests/test_tasks.py
├── requirements.txt
└── README.md

Workflow ต่อ feature

ทำทีละ feature ด้วยวงจรนี้ (บท 5, 6) — แต่ละ feature = branch + โค้ด + เทสต์ + commit

bash
git switch -c feature-auth        # branch ต่อ feature (บท 5)
# เขียน auth.py (hash + login)   (บท 10)
# เขียน tests/test_auth.py        (บท 6)
pytest                            # เทสต์ผ่านก่อน
git add . && git commit -m "feat: add register/login with hashing"
# merge เข้า main / เปิด PR
commit เล็ก + เทสต์ผ่านก่อน merge

อย่าเขียนทั้งโปรเจกต์รวดเดียวแล้วค่อย commit — ทำทีละ feature, เขียนเทสต์คู่กัน, commit สื่อความหมาย (conventional commits จากบท 5) นี่คือนิสัยที่ทำให้ดูแลโปรเจกต์ได้จริง

เขียนโค้ดสะอาดตั้งแต่ต้น (บท 7)

  • ตั้งชื่อสื่อความหมาย, ฟังก์ชันทำอย่างเดียว
  • แยก layer: route (บาง) / service (logic) / db
  • validate input ทุก endpoint ด้วย Pydantic (บท 2, 10)
  • กัน SQL injection ด้วย ? / ORM (บท 9)

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

  • ตั้งโปรเจกต์: venv + git + โครงสร้างแยก layer
  • ทำทีละ feature: branch → โค้ด → เทสต์ → commit → merge
  • ใช้ทุกบท: validation, DB, auth, clean code พร้อมกัน
  • commit เล็กสื่อความหมาย + เทสต์ผ่านก่อน merge
แบบฝึกหัด

1) ตั้งโปรเจกต์ + venv + git + โครงสร้างโฟลเดอร์ 2) ทำ feature แรก (auth) ครบ: โค้ด + เทสต์ + commit 3) ทำ CRUD task ต่อด้วย workflow เดียวกัน 4) ตรวจว่าทุก endpoint validate input และกัน injection