Tickets Hunter:用 AI 重啟一個搶票專案

專案緣起

Tickets Hunter 是我在 GitHub 上維護的公開搶票工具專案。最近收到不少 issue 回報,讓我重新審視這個專案的發展方向。

遇見 Maxbot

Maxbot 是一個功能完整但已經被原作者遺棄許久的搶票工具。它有豐富的功能實作,但程式碼缺乏維護,很多地方需要重構。

AI 協作實驗

這次我決定用 Claude Code 來進行開發實驗,透過 vibe coding 的方式重構 Maxbot 的核心功能。相較於傳統的手動重構,AI 輔助開發能更快速地理解既有程式碼邏輯,並提出重構建議。

Spec-Kit:規格驅動的開發架構

專案目前透過 GitHub 的 spec-kit 來驅動開發流程。這是另一個實驗性的架構概念:規格驅動開發(Specification-Driven Development)。透過定義明確的規格文件,讓 AI 能更精準地理解需求並產生對應的程式碼。

這個方案還在探索可行性階段,但初步體驗下來,將開發流程結構化確實能提升 AI 協作的效率。

開發角色的轉變

在這個專案中,我的角色變得很有趣:基本上都是在命令與審核的位置來使喚 Claude 調整功能。真正自己動手修改的程式碼,大概只有 AI 的提示詞(笑)。

這種開發模式讓我從「寫程式的人」轉變為「下指令與品質把關的人」,是一個蠻特別的體驗。

目前實作

專案核心採用 nodriver 作為自動化框架,這是 undetected-chromedriver 的官方繼任專案。相較於傳統 Selenium 需要透過 chromedriver 作為中介,nodriver 的關鍵差異在於:完全移除 chromedriver 與 Selenium 依賴,改以直接透過 Chrome DevTools Protocol (CDP) 與瀏覽器通訊。

這種架構帶來兩個優勢:一是效能大幅提升,二是減少可被偵測的自動化痕跡。由於省略了 chromedriver 這個中間層,網站端少了一個明確的偵測目標。此外,nodriver 屬於「CDP-minimal」策略的框架,會避免觸發 Runtime.enable 等高風險的 CDP 命令,從根本上減少可被識別的自動化特徵。

開發過程中,我使用 Google DevTools MCP 來完成自動化檢查與除錯,讓 Claude Code 能直接操控瀏覽器進行測試驗證,大幅提升了開發效率。

開發體驗總結

優點:

  • 快速理解陌生程式碼結構,即使是缺乏註解的 legacy code
  • AI 能根據 spec 文件主動提出重構建議,而非只是被動回應
  • 搭配 MCP 工具鏈,實現從開發到測試的全流程 AI 輔助

挑戰:

  • 提示詞工程本身就是一種技術債,需要不斷迭代優化
  • AI 對於跨檔案的相依性掌握有限,容易造成局部最佳化
  • Context window 限制讓大型重構必須分階段進行

小結

這是一次有趣的實驗,結合 AI 工具來處理遺留專案的重構工作。未來會持續記錄開發過程中的發現與心得。

專案持續開發中,歡迎到 GitHub 關注進度或提供建議。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


上一篇文章

2025 Fuji Rock 音樂祭參戰心得-露營篇

相關文章