Vibe Coder
README 怎麼寫?給 AI Vibe Coder 的技術文件課
好的 README 要包含專案說明、功能列表、安裝步驟、環境變數說明、如何執行五個區塊,讓任何新人不用問你也能跑起專案。可以先請 AI 生成初稿,再補上只有你知道的細節;API 文件則交給 FastAPI 依 docstring 自動生成,不用額外維護一份。
README 怎麼寫?給 AI Vibe Coder 的技術文件課
三個月後你看自己寫的程式碼,會跟第一次看別人的程式碼一樣陌生。README 就是寫給那個未來的自己,也是寫給接手的人。這篇帶你用最小必要結構寫出一份真正有用的 README,並且學會怎麼請 AI 幫你生初稿、怎麼讓 FastAPI 自動幫你做 API 文件。
你將學到什麼
README 的最小必要結構
一句話說明、功能、安裝、環境變數、執行方式,五個區塊就夠用。
用 AI 生成 README
一段完整的提示詞範本,貼上專案資訊就能生出堪用的初稿。
FastAPI 自動生成 API 文件
加好 docstring,/docs 頁面就自動幫你做完 API 說明。
程式碼注解原則
注解該解釋「為什麼」,不是「做什麼」,程式碼本身要能說明做什麼。
README 的最小必要結構
一份堪用的 README,至少要有這幾個區塊:
# 天氣小工具
一句話說明這個專案做什麼。
## 功能
- 查詢即時天氣(OpenWeatherMap API)
- 使用者帳號和查詢歷史
- RESTful API,支援 JSON
## 安裝
git clone https://github.com/your/weather-app
cd weather-app
pip install -r requirements.txt
cp .env.example .env # 填入你的 API Key
## 環境變數
OPENWEATHER_API_KEY= # OpenWeatherMap API Key
SUPABASE_URL= # Supabase Project URL
SUPABASE_KEY= # Supabase anon key
## 執行
uvicorn main:app --reload
用 AI 生成 README 的正確方式
把專案的技術棧和功能講清楚,讓 AI 一次生出結構完整的初稿。
請幫我為這個 Python FastAPI 專案寫 README.md:
專案:天氣查詢 App
技術棧:Python 3.11、FastAPI、Supabase、OpenWeatherMap API
功能:使用者登入、查詢天氣、查詢歷史記錄
包含以下區塊:
- 專案說明(一句話)
- 功能列表
- 技術棧
- 安裝步驟(git clone → pip install → .env 設定)
- 環境變數說明(每個變數的用途)
- 如何執行(開發環境)
- API 端點概覽(表格,端點、方法、說明)
- 部署說明(Railway)
語言:繁體中文,程式碼區塊用英文
README 不需要面面俱到比起一份寫了很多但沒有人維護的 README,一份簡短但正確、及時更新的 README 更有價值。先從最小必要結構開始,隨著專案成熟再補充。
FastAPI 自動 API 文件
加好 docstring,/docs 頁面就會自動顯示這些說明,不需要額外維護一份 API 文件。
@app.get("/weather/{city}",
summary="查詢城市天氣",
description="回傳指定城市的即時溫度和天氣描述")
async def get_weather(
city: str = Path(..., description="城市名稱,英文"),
current_user: User = Depends(get_current_user)
) -> WeatherResponse:
# /docs 頁面會自動顯示這些說明
...
程式碼注解原則
注解應該解釋「為什麼」,而不是「做什麼」,程式碼本身應該能說明「做什麼」。
| 情況 | 不好的做法 | 好的做法 |
|---|---|---|
| 解釋程式碼 | 「把 i 加一」這種逐行翻譯 | 不需要注解,程式碼本身夠清楚 |
| 解釋邏輯 | 「如果 x 大於零」這種複述條件 | 用清楚的變數名稱取代注解 |
| 解釋原因 | 沒有注解,別人不知道為什麼這樣寫 | 說明背後的原因,例如某個 API 的時區怪癖 |
| 標記待辦 | 直接改掉,沒有留下記錄 | 用 TODO 註記,說明還缺什麼 |
| 函式文件 | 沒有 docstring | 用 Google Style Docstring 說明參數和回傳值 |
def get_weather(city: str, units: str = "metric") -> dict:
"""查詢指定城市的即時天氣資訊。
Args:
city: 城市名稱,英文,例如 "Taipei"
units: 溫度單位,metric(攝氏)或 imperial(華氏)
Returns:
包含 temperature 和 description 的字典
Raises:
HTTPException: 城市不存在或 API 呼叫失敗時
"""
讓文件保持最新的四個方法
- 改功能時同步更新 README:把「更新 README」加進你的完成定義,沒有更新文件就算沒完成。
- API 文件靠程式碼驅動:FastAPI 的 /docs 從 decorator 和 docstring 自動生成,保持程式碼正確就等於保持文件正確。
- 定期用新人視角閱讀 README:假裝自己是第一次看這個專案,按照步驟跑一遍,找出過時的地方。
- 用 AI 幫你更新:把改動告訴 AI,例如「我改了 API 的回傳格式,請幫我更新 README 的 API 端點說明」,很快就能完成。
文件完整性檢查清單README 有安裝步驟,新人能跑起來;README 有所有環境變數的說明;FastAPI /docs 頁面有所有端點的說明;關鍵函式有 docstring;有 .env.example 範本。
延伸學習
寫給升國一的你的筆記術
寫給剛升上國中的你:筆記不是寫給老師看的,是寫給考前的自己看的。18 章 85 課圖文,從「為什麼要寫」講到七科各自怎麼記,附 78 份可以印出來寫的練習單,以及 80 課家長專區與 34 張三年筆記養成路徑圖。沒有閱讀期限,國一買、國三還在。
NT$ 3,599
ChatGPT 很強,但真正讓你下班的是 Google
六小時完整實錄。從「AI 很厲害,為什麼你還是每天加班」這個問題出發,把 Google Workspace 當成真正的工作平台重新設計一次流程 ── Sheets 的資料結構、Drive 與 Docs 的文件流、Gmail 與 Calendar 的通知系統,再用 Apps Script 讓它自己跑起來,最後收斂成一張屬於你自己的 AI 工作能力地圖。
NT$ 4,599
常見問答
README 一定要寫得很詳細嗎?
不用。比起一份寫了很多但沒有人維護的 README,一份簡短但正確、及時更新的更有價值。先從最小必要結構開始,隨專案成熟再補充。
可以直接讓 AI 寫完整份 README 嗎?
可以先讓 AI 生初稿,但要補上 AI 不知道的細節,例如你真實的 API 端點、實際的部署方式,並且確認一個沒看過專案的人真的能照著跑起來。
API 文件要自己另外寫一份嗎?
不用。FastAPI 會依你在路由和函式上寫的 summary、description、docstring,自動生成 /docs 頁面,維護程式碼正確就等於維護文件正確。
程式碼注解越多越好嗎?
不是。注解應該解釋「為什麼這樣做」,例如某個 API 的時區怪癖,而不是逐行翻譯程式碼在做什麼,那種注解程式碼本身就該說明清楚。

