iT邦幫忙

2026 iThome 鐵人賽

DAY 26
0

在利用 Claude Code 輔助開發這套圖書管理系統的過程中,最常發生的情境就是:我下了一句簡單 prompt,AI 就生成了幾百行的程式碼。

但當我把 code 貼進專案時,心中常浮現一個大問號:「這段語法到底是什麼意思?萬一出 Bug 我改得動嗎?」

特別是在寫到 PDO 資料庫連線、prepared statement 防禦 SQL 注入,或是交易控制的 FOR UPDATE 鎖定機制時,AI 給出的寫法超出了我當時的語法儲備。今天想分享,當遇到「看不懂 AI 寫的 code」時,我的學習流程。

一、 不要直接複製 先建立「理解優先」的心態

直接複製貼上雖然能讓功能在一秒內跑起來,但這會帶來兩個問題:

  1. 無法 Debug:只要程式出錯,會不知道哪裡壞掉。
  2. 沒有技術累積:專案做完了,自己卻什麼都沒學到。

因此,看不懂的 code,不要直接寫進專案。

二、 拆解 AI 程式碼

當 Claude Code 產出一段看不懂的語法時,會透過以下步驟來理解它:

  1. 讓 AI 當專屬家教:要求「逐行註解」
    可以直接把看不懂的區塊貼回給 Claude,並加上這句 prompt:
這段語法我不太理解,請幫我在每一行程式碼加上詳細的中文註解,並用白話文解釋它的核心邏輯。

這能快速建立初步的概念。

  1. 善用「反向提問」探討關鍵語法
    如果程式碼裡出現了沒見過的函數或關鍵字(例如 PDO 的 FETCH_ASSOC 或 beginTransaction()),不要只問「這行是什麼」,改問:
    • 「為什麼這裡要用 PDO::FETCH_ASSOC?如果不加會怎樣?」
    • 「這裡如果不寫 try...catch 捕捉例外,會有什麼資安或系統風險?」

透過比較「寫與不寫」的差異,能更快理解這個語法背後的設計目的。

  1. 主動手寫測試:最小化驗證
    不要直接在複雜的大專案裡測試。把 AI 給的那段關鍵程式碼抽出來,新建一個獨立的測試檔(如 test.php),透過 var_dump() 或 echo 印出中間結果。
    例如,不懂 PDO 查詢回傳的物件結構時:
// 建立小測試檔,親自印出來看結構
$stmt = $pdo->prepare("SELECT * FROM books WHERE id = :id");
$stmt->execute(['id' => 1]);
$result = $stmt->fetch(PDO::FETCH_ASSOC);

// 親眼看看 print_r 出來的陣列長怎樣
print_r($result);

親眼看到資料變化的過程,比看很多遍檔案有效。

  1. 重新自己寫一遍
    看完 AI 的解釋並測試過後,把 AI 的 code 關掉,嘗試不看參考答案、自己憑理解重寫一次。如果能順利寫出來且執行成功,代表這段邏輯已經真正變成自己的知識了。

三、 從「被動接受」到「主動主導」

在這次開發圖書管理系統的過程中,把「看不懂」視為一個學習的訊號,主動去拆解它、質問 AI、動手實驗,才能在擁有 AI 高效開發能力的同時,依然維持自己對系統架構的掌控力。


今天分享了在 AI 協助開發過程中,面對看不懂程式碼的心態調適與流程:從要求 AI 逐行註解、探討語法設計目的、建立最小化測試檔手驗,到最後嘗試自己重寫。掌控 AI 工具的關鍵,不在於它產出程式碼的速度有多快,而是在於自己能吸收並理解多少。


上一篇
Day 25 用 Apache 將網站跑起來
下一篇
Day 27 Claude 犯過的錯誤
系列文
從零打造圖書管理系統:WSL2 × MySQL × Claude Code 的整合實作 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言