คุณภาพ, เอกสาร & CI
ทำให้โปรเจกต์ดูเป็นมืออาชีพ: README ที่ดี, linter/formatter และ CI ที่รันเทสต์อัตโนมัติ
โปรเจกต์ที่ดีไม่ใช่แค่โค้ดทำงานได้ แต่ต้องมีเอกสารที่คนอื่นเข้าใจ และระบบตรวจคุณภาพอัตโนมัติ หัวข้อนี้ทำให้โปรเจกต์ของคุณดูเป็นมืออาชีพและพร้อมโชว์
README ที่ดี
README คือหน้าแรกที่คนเห็น ต้องบอก: โปรเจกต์คืออะไร, ติดตั้งยังไง, รันยังไง, ใช้ยังไง
# Task API
REST API จัดการ task ส่วนตัว พร้อมระบบ login
## ติดตั้ง
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
## รัน
uvicorn src.app.main:app --reload
เปิด http://localhost:8000/docs
## เทสต์
pytest
## เทคโนโลยี
FastAPI, SQLite, pytestLinter & Formatter (ruff/black)
เครื่องมือจัดรูปและตรวจสไตล์โค้ดอัตโนมัติ ทำให้โค้ดสม่ำเสมอทั้งทีมโดยไม่ต้องเถียงกันเรื่องรูปแบบ
pip install ruff
ruff check . # ตรวจปัญหา/สไตล์
ruff format . # จัดรูปอัตโนมัติ
# (black เป็น formatter ยอดนิยมอีกตัว)CI ด้วย GitHub Actions
CI (Continuous Integration) รันเทสต์อัตโนมัติทุกครั้งที่ push/เปิด PR — มั่นใจว่าโค้ดไม่พังก่อน merge สร้างไฟล์ใน .github/workflows/
# .github/workflows/test.yml
name: tests
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: pip install -r requirements.txt
- run: pytestเมื่อตั้ง CI แล้ว ทุก push จะรันเทสต์ให้อัตโนมัติบน GitHub ถ้าแดง (เทสต์พัง) จะเห็นทันทีก่อน merge — นี่คือสิ่งที่ทำให้ทีมกล้าแก้โค้ดร่วมกันโดยไม่กลัวพัง (รวมบท 5, 6 เข้ากับ git บท 5)
สรุปหัวข้อนี้
- README บอก: คืออะไร / ติดตั้ง / รัน / ใช้ / เทคโนโลยี
- ruff/black ตรวจ+จัดรูปโค้ดอัตโนมัติให้สม่ำเสมอ
- CI (GitHub Actions) รันเทสต์อัตโนมัติทุก push/PR
- CI เขียว = มั่นใจว่าโค้ดไม่พังก่อน merge
1) เขียน README ให้โปรเจกต์ครบ 4 ส่วน (คืออะไร/ติดตั้ง/รัน/เทสต์) 2) ติดตั้ง ruff แล้ว format โค้ด 3) สร้าง GitHub Actions workflow รัน pytest 4) push แล้วดูว่า CI รันเทสต์ให้บน GitHub