日期: 2025年10月9日 星期四
雲端天氣: 晴空萬里
心情: 興奮開心模式
親愛的日記:
今天下午,蘇蘇又在電腦前傷心了。
蘇蘇:「奇怪,為什麼 Claude Code上的程式碼又跑不起來!第三次了! Claude Code 說可以用 pymongo.connect()
連資料庫,但一直報錯說找不到這個函數...」
老陳翻了個白眼:「你都錯這麼多次了,你有去查官方文檔嗎?」
蘇蘇:「沒有啊,反正有 AI 了還要看文檔幹嘛?」
老陳嘆了口氣:「蘇蘇,你知道你現在像什麼嗎?像個盲目相信 GPS 導航,結果開進河裡的司機。AI 給你的可能是舊答案,或者根本就是幻覺了在唬你。會自己看文檔直到現在仍然是工程師的基本功*,這不是 AI 時代前才需要的技能。」
蘇蘇:「蛤~好麻煩。」
AI 醬忽地跳到蘇蘇桌上:「這題我會~我來教妳!」(搖尾巴)
很多初學者會想:「反正問 AI 就好了,為什麼還要自己看文檔?」
現實是,下面兩種方式,你最好都需要會,尤其是初學者,要先打好基底,一定要先懂得閱讀文檔。
可以驗證 AI 的答案
pymongo.connect()
連接資料庫」MongoClient()
能更理解完整脈絡
快速定位所需文檔位置
利用AI協作查文檔的現代趨勢
適用情境:
WebSearch (找文檔):
WebFetch (讀文檔):
工作流程:
你的問題 → WebSearch 找到官方文檔 → WebFetch 讀取內容 → AI 整理後回答
❌ 讓 AI 用記憶回答:
你: FastAPI 如何處理 WebSocket?
Claude: 你可以這樣寫:
@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
await websocket.accept()
...
[容易產出舊版本的寫法,或是 AI 的幻覺]
✅ 明確提示 AI 要查官方文檔:
你: 請上網查詢 FastAPI 官方文檔中關於 WebSocket 的最新用法,
讀取相關頁面後,告訴我正確的實作方式。
請一定要引用官方文檔連結,並自行再次驗證是否與你描述相符。
AI:
[搜尋並找到官方文檔]
找到官方文檔: https://fastapi.tiangolo.com/advanced/websockets/
[讀取文檔內容]
根據 FastAPI 官方文檔 (最新版本),WebSocket 的用法如下:
from fastapi import FastAPI, WebSocket
app = FastAPI()
@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
await websocket.accept()
while True:
data = await websocket.receive_text()
await websocket.send_text(f"Message text was: {data}")
參考來源: https://fastapi.tiangolo.com/advanced/websockets/
並且我已經再次自行驗證描述內容與文檔相符。
關鍵差異:
情境: 想知道 Python 3.14 的新功能
Prompt:
請找到最新的 Python 3.14 官方文檔,摘要出最重要的 5 個新功能,
並針對每個功能說明:
1. 是什麼
2. 為什麼重要
3. 簡單範例
請附上官方文檔連結佐證,並自行再次驗證是否與你描述相符。
AI 回應範例:
根據 Python 3.14 官方文檔 (https://docs.python.org/3.14/whatsnew/3.14.html),
以下是最重要的 5 個新功能:
1. **Free-threaded Python 正式支援 (PEP 703/779)**
- 是什麼: Free-threaded 模式不再是實驗性功能,可選擇性移除 GIL
- 為什麼重要: CPU 密集型任務可以真正使用多核心加速,單執行緒效能損失降至 5-10%
- 範例: (AI 給出程式碼範例)
2. **延遲 annotations 評估 (PEP 649)**
- 是什麼: 不會在定義時就評估 type hints
- 為什麼重要: 提升啟動速度,減少循環引用問題
- 範例: (AI 給出程式碼範例)
...
參考來源: https://docs.python.org/3.14/whatsnew/3.14.html
已經再次驗證描述內容與文檔相符。
基本通用:
請上網查詢 [套件名稱] 官方文檔中關於 [功能] 的說明,告訴我 [你想知道的事情]。
讀取文檔後,請一定要引用準確對應的官方文檔連結(要精確的頁面,不要只給首頁),並且自行再次進行驗證確認自己的描述與連結內容相符和無任何虛假。
其他用法:
用法 1: 直接指定版本
請查詢 FastAPI 0.115 版本的 CORS 設定方式 (不要給我舊版本的)
讀取文檔後,請一定要引用準確對應的官方文檔連結(要精確的頁面,不要只給首頁),並且自行再次進行驗證確認自己的描述與連結內容相符和無任何虛假。
用法 2: 對比不同版本
請對比 React 18 和 React 19 的 useEffect 用法差異,分別查閱兩個版本的官方文檔。
讀取文檔後,請一定要引用準確對應的官方文檔連結(要精確的頁面,不要只給首頁),並且自行再次進行驗證確認自己的描述與連結內容相符和無任何虛假。
用法 3: 整合不同工具
我要用 FastAPI + SQLAlchemy 2.0 做非同步資料庫操作。
請查閱兩個套件的官方文檔,告訴我正確的整合方式。
讀取文檔後,請一定要引用準確對應的官方文檔連結(要精確的頁面,不要只給首頁),並且自行再次進行驗證確認自己的描述與連結內容相符和無任何虛假。
Perplexity 官網: https://www.perplexity.ai/
適用情境:
核心機制:
Perplexity 結合了搜尋引擎和大型語言模型,當你提問時:
為什麼特別適合查深入問題?
你只需要直接問:
FastAPI CORS 設定的最佳實踐是什麼?
Perplexity 自動做到:
回應範例:
根據多個來源的建議,FastAPI CORS 設定的最佳實踐:
**開發環境:**
可以使用 allow_origins=["*"] 方便開發
來源: [1] Stack Overflow 常見做法
**生產環境:**
應該明確列出允許的網域,避免使用 "*"
來源: [2] FastAPI 官方文檔
**安全性考量:**
使用萬用字元可能導致 CSRF 攻擊風險
來源: [3] OWASP 安全指南
**推薦做法:**
根據官方文檔 [2],應該這樣設定:
[程式碼範例]
引用來源:
[1] https://stackoverflow.com/questions/...
[2] https://fastapi.tiangolo.com/tutorial/cors/
[3] https://owasp.org/...
Context7 官網: https://context7.com
什麼是 Context7?
Context7 是一個 MCP (Model Context Protocol) 伺服器,支援多種 AI 編輯器,可以:
使用方式:
(需要安裝 MCP Server)
你: 實作 Stripe 退款功能,use context7
AI:
[Context7 自動抓取 Stripe 最新文檔]
[根據文檔給你正確的實作方式]
你可以在 CLAUDE.md 設定自動使用:
## 文檔查詢規範
在使用任何第三方套件前,必須先用 Context7 查詢最新文檔
親愛的工程師朋友:
我們永遠都在學習的路上。新框架、新語言、新工具層出不窮,光是追上技術演進就已經很累了。
提升學習效率,不只是省時間,更是省力氣。
以前查文檔可能要花 30 分鐘翻來翻去,現在用對方法,可能 3 分鐘就找到答案。省下的時間,你可以拿去:
但記住,工具是用來輔助的,不是取代思考。
AI 可以幫你快速找到文檔、整理重點、對比不同來源,但最終決策還是要你自己做。學會看文檔、驗證資訊、獨立思考,這些能力在 AI 時代反而更重要,因為這是你判斷 AI 給的答案對不對的基礎,也是初學者可以脫穎而出的關鍵之一喔。
今日金句: "Incorrect documentation is often worse than no documentation." — Bertrand Meyer
明日預告: Day 27 - AI 醬還在想~