<aside>
🦖 站內連結
🔗 社群連結
🌐 全部社群 Portaly ▶️ YouTube 📘 Facebook 📸 Instagram 🧵 Threads
</aside>
https://github.com/AhLung/chomp-pdf
這份是給第一次用 Claude Code 的人看的。沒有工程背景也能看懂。 透過一個真實專案(PDF 壓縮工具 ChompPDF)的開發過程,告訴你怎麼跟它合作。
很多人第一次用會以為:「我下指令、它執行。」
不是。是這樣:
你說想要什麼 → 它先理解 + 必要時反問 → 給你選項(優缺點)→ 你決定 → 它做
↓
你看結果 → 給回饋 → 它修
你不需要會寫程式。你需要的是:
ChompPDF 的版本歷史:
v1.0 (2026-04-24) 最簡版,能壓就好
v1.1 加觀看解析度模式
v1.2 自動最佳化
v1.3 修 macOS Preview 顯示問題
v1.4 整體 UI 重做(Soft Candy 主題)
v1.4.1~1.4.9 各種小修(掃描檔誤判、文字遮色片、JPX 編碼...)
v1.5.0 大改:整個搬進 Web Worker(UI 不卡)
v1.5.1 Worker pool 並行(壓更快)
v1.5.2~1.5.4 效能調校 + bug 修
重點:每個版本只動一兩件事。這樣壞了能退回、好處看得到。
| 任務類型 | 做法 |
|---|---|
| 小修(改文字、對齊按鈕、修 typo) | 直接說、它直接改 |
| 中修(加新功能、改邏輯) | 先描述清楚目標,給它一兩個重點檔案 |
| 大改(架構重構、整段重寫) | 先進 Plan mode 討論,確定方向再動 |
Plan mode 是 Claude Code 的功能 — 在這個模式下它只會討論不會動手。等你 OK 才開始實作。
我說(三個字):
壓更快
它沒有直接動手。它回:
「『更快』有 4 種做法,各有取捨,你要選哪個?」
A. 加 worker pool 並行(中等複雜、整體 2-3x) B. 整個搬進 worker(低複雜、UI 不卡但不一定快) C. WebGPU 加速(高複雜、不確定收益) D. WASM threading(高複雜、需特殊伺服器設定)
我推薦 A+B 一起做(B 是 A 的前置)。
我選了 B(優先「不卡」)+ 之後再做 A。它再寫一份分階段計劃(8-11 天、4 個 phase),每個 phase 上線一個版本。
這段對話的價值:
我說(配截圖 + 一句話):
鯊魚恐龍不見了
它直接看截圖、抓出問題:
找到了。
shrinkViaWorker(worker 模式)只 callsetProgressDisplay(只更新 % 文字),沒接到 mascot 的startRace/setProgress/declareWinner。所以 worker 模式下 mascot CSS 變數從沒被設過,動畫永遠不啟動。
修完推 v1.5.3,告訴我重載瀏覽器測試。從報問題到修好不到 5 分鐘。
為什麼這麼快?
實作 Phase 2 重構時,它幫我把一堆程式碼搬進 worker,但搬漏了 _newCanvas、applyTiffPredictor、validateMaskRefs 等函式。
我跑起來看 console:
Error: _newCanvas is not defined
我把錯誤訊息直接貼給它(不需要解讀)。它先補上,推新版。
但又跳新錯:applyTiffPredictor is not defined。
第三次後我留下教訓,它寫了一個 audit script 主動掃「被呼叫但沒定義」的東西,一次抓完。
心得:它會犯錯,但你不用幫它擦屁股 — 直接把錯誤訊息丟回去,它自己會抓根因。