標籤: Programming

AI 筆記:計畫趕不上變化

這陣子用 AI agent 來寫程式,過程中被自己習慣的流程卡了幾次,這篇就當作是提醒自己的踩雷記錄。

一開始的想像:高階模型負責規劃,低階模型負責幹活

一開始我用的是很多人都推薦的做法:

  • 先用一個比較強、比較貴的模型,幫整個功能做超詳細的規劃。
  • 規劃細到什麼程度?包含要改哪個檔案、哪一段程式、步驟順序都先排好。
  • 然後再讓便宜一點的模型,照這份計畫一條一條執行。

看起來很划算:強模型負責「想清楚」,弱模型負責「照做」,不會讓強模型狂燒 token,而且弱模型不太容易亂衝。

如果是個小功能、一個人開發、repo 變動不大,這套 workflow 其實還算好用。

繼續閱讀 ➜

我偏好的 Coordinator Pattern

前言

當我實作畫面流程時,我會為一組「流程」建立一個 Coordinator。如果這組流程很複雜,它可以拆分成多個「子流程」,那每一個子流程也會有對應的 Sub-Coordinator。主流程的 Coordinator 可以管理子流程的 Sub-Coordinator。

Coordinator 用來管理流程的畫面,它負責建立畫面、傳遞資料給畫面、回應畫面的請求、移除畫面等等。如果用 tree 來理解畫面流程的話,Coordinator 就是 root,各個畫面就是 leaf。換個角度看,Coordinator 像一個容器 — 它自己不產出畫面內容,而是決定裡面放哪些畫面、什麼時候切換。

繼續閱讀 ➜

讓 KOReader 的資料夾顯示書籍封面

這次要介紹的是我為 KOReader 檔案瀏覽(Mosaic)所做的另一個 userpatch:2-browser-folder-cover.lua。這個 patch 可以讓資料夾在 Mosaic 檢視時顯示封面圖片,支援放置自訂 .cover 檔案,若無自訂封面則會自動從該資料夾或其子資料夾的書籍取得封面。此外還提供兩種顯示風格:單一封面或 2×2 格狀封面。

下載路徑:https://github.com/chiahsien/KOReader.Patches

繼續閱讀 ➜

一個自訂 KOReader 書籍排序的腳本

我在 KOBO 電子書閱讀器上額外安裝了 KOReader 系統,它的眾多設定讓我可以調整出自己最喜歡的樣子來觀看電子書,無論是 ePUB、PDF、CBZ 格式,高度自訂化佈局讓閱讀成為一件舒服的事。

最近有一個困擾我的地方,就是它的書本排序方式雖然很多,但卻沒有我想要的排序方式,我想要讓書本「先按照作者排序,然後如果是系列套書就按照系列順序排序,最後再按照書名或是出版日期排序」,這樣才符合我整理書本的習慣。

還好 KOReader 提供了讓使用者開發與安裝 user patch 的功能,那就自己來寫一個 patch 滿足我的需求吧!

p.s.: 也有開發者搜集了很多實用的 user patch,可以來這裡看看

繼續閱讀 ➜

如何建立 iOS Share Extension

在網路上已經有很多關於 iOS Share Extension 的教學,例如這裡就有一篇。有需要的人可以自行在網路上搜尋,這邊就不多作著墨。我這次想要分享的主要是在開發 share extension 的過程遇到一些要注意的事項,以及踩到的一些坑。

我的開發環境是 macOS Sonoma + Xcode 15,使用 Swift 開發。

要建立一個 share extension 很簡單,就是在你的專案新增一個 target 然後選擇 Share Extension 即可。Xcode 會自動幫忙產生必要的檔案,以及做好基本設定。

繼續閱讀 ➜