Kaze 產品日誌 (四):AI Agentic Workflow —— 2 小時完成 Objective-C 到 Rust 的核心架構遷移

在軟體開發的世界裡,將一個累積多年、基於 Objective-C 的成熟程式碼庫,遷移到全然不同的 Rust + Tauri 架構,通常被視為一項耗時數月、充滿風險的巨大工程。
但在 2026 年的今天,我們透過 AI Agentic Workflow,將這個過程縮短到了驚人的 ** 2 小時**。
舊時代的技術負擔:為什麼必須離開 Objective-C?
Kaze 的前身(Dan Downloader)是在 Objective-C 全盛時期開發的。雖然它穩定且高效,但隨著開發環境的變遷,它也帶來了沈重的負擔:
- 維護成本的攀升: Xcode 舊 UI 體系與現代 Swift/SwiftUI 的脫鉤,讓新功能的開發變得舉步維艱。
- Plugin 體系的臃腫: 為了支援多樣的下載處理,我們曾設計了一套極其複雜的 JS Plugin 系統。這套系統雖然靈活,但卻造成了嚴重的 I/O 競爭與排錯難題。
- 串流媒體的挑戰: 處理高度併發、非同步的分段媒體流(HLS/DASH)時,Objective-C 的併發模型在性能與程式碼的可讀性之間,已經難以取得平衡。
引進 AI Agentic Workflow:開發範式的革命
這場遷移並非簡單的程式碼對譯,而是一次由 AI Agent 深度參與的系統級重構。我們採用的 AI Agentic Workflow 分為以下核心階段:
1. 任務分解與架構對映(Task Breakdown)
我們並非直接餵入數千行 Obj-C 程式碼,而是先透過 AI Agent 識別出舊架構中的資料流(Data Flow)。這個階段的目標是釐清哪些是核心的媒體處理邏輯,哪些是可以隨架構遷移而捨棄的冗餘體系,並將其與 Rust 的所有權模型進行預先對映。
2. 基準驗證:定義改版成功的「地面真理」(Baseline Verification)
這是在進入大規模程式碼遷移前,最關鍵的一步。如果沒有基準線,重構就會變成一場盲目的冒險。
我們並不是等到 Rust 程式碼寫完才開始測試,而是先在舊版 Objective-C 體系上,快速萃取出過去數年來已經明確的關鍵場景(Key Scenarios)。我們建立了一套輕量級的驗證集:
- 萃取關鍵場景: 包含帶有特殊 Referer 校驗的 DASH 請求、採用 AES-128 加密的 HLS 流、以及在不同網路條件下的分段重試邏輯。
- 黑箱測試思維: 我們不關心舊程式碼的實作細節,我們只記錄在特定輸入下,舊版 App 的行為軌跡與最終媒體輸出。
- 定義改版成功的標準: 這套基準案例成了我們對 AI Agent 下達指令時的「真理」。在 AI 每完成一個模組的 Rust 遷移後,我們會立即回測這些場景。唯有新引擎在處理這些經典場景時,能產出與舊版完全一致(甚至更優)的結果時,我們才判定該階段遷移「基本成功」。
這一步實踐解決了重構中最難的問題:如何確保新架構在追求效能的同時,沒有遺失掉過去應對各種惡劣 Web 環境的「實戰經驗」。
3. 驚人的 2 小時遷移與結構坍縮
在有了基準案例後,我們進入了高頻率的交互重構。在 AI Agent 的輔助下,我們進行了以下工作:
- 核心引擎轉換: 透過 AI Agent,我們在 2 小時內完成了 HLS/DASH 解析引擎的核心遷移。
- Plugin 體系的坍縮: 這是最重要的架構決策。我們利用 AI 的理解能力,將原本發散在數十個 JS Plugin 中的處理流程,收束並精煉進 Rust 的底層 Trait 中。原本需要處理複雜 IPC 的邏輯,瞬間變成了高效的內核調度。
4. 行為一致性校驗(Behavior Consistency)
遷移後最怕的是功能回退(Regression)。透過 AI Agent 自動生成的測試腳本,我們確保了新版 App 在處理舊版 Browser Extension 的 WebSocket 訊號時,行為完全一致。
選擇 Rust + Tauri 的核心考量
在 AI Agentic Workflow 的賦能下,我們得以在最短時間內享受到新技術棧帶來的好處:
- Rust 的併發安全: 徹底解決了下載數千個片段時,最令開發者頭痛的數據競態(Data Race)與記憶體洩漏。
- Tauri 的極致輕量: 讓我們能以網頁技術開發 UI,卻能保有 Native App 的性能與體積。對於 Kaze 這樣一個工具類產品,這種「輕盈感」是不可妥補的核心競爭力。
開發者角色的轉變
這場重構是我們第一次把已經進入維護的產品進行全AI改造。在 AI 時代,開發者的角色不再只是寫出程式碼,而是更像一位「架構策劃師」與「品質守護者」。
我們不再糾結於瑣碎的語法遷移,而是將精力投入在更核心的產品邏輯與用戶體驗上。
下一篇,也是系列的最後一篇,我將分享在擁有強大的 Rust 底層後,我們如何開發出 Album Mode 與 智慧廣告偵測,帶給用戶更好的下載體驗。
探索 Kaze 2: 如果你對我們正在開發的下載技術感興趣,歡迎前往 Kaze 產品頁面 了解更多細節並支持我們的 Side Project。