返回學思錄
2026-04-10

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

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

在軟體開發的世界裡,將一個累積多年、基於 Objective-C 的成熟程式碼庫,遷移到全然不同的 Rust + Tauri 架構,通常被視為一項耗時數月、充滿風險的巨大工程。

但在 2026 年的今天,我們透過 AI Agentic Workflow,將這個過程縮短到了驚人的 ** 2 小時**。

舊時代的技術負擔:為什麼必須離開 Objective-C?

Kaze 的前身(Dan Downloader)是在 Objective-C 全盛時期開發的。雖然它穩定且高效,但隨著開發環境的變遷,它也帶來了沈重的負擔:

  1. 維護成本的攀升: Xcode 舊 UI 體系與現代 Swift/SwiftUI 的脫鉤,讓新功能的開發變得舉步維艱。
  2. Plugin 體系的臃腫: 為了支援多樣的下載處理,我們曾設計了一套極其複雜的 JS Plugin 系統。這套系統雖然靈活,但卻造成了嚴重的 I/O 競爭與排錯難題。
  3. 串流媒體的挑戰: 處理高度併發、非同步的分段媒體流(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。

#Kaze#AI Agentic Workflow#Rust#Tauri#Refactoring