iT邦幫忙

2025 iThome 鐵人賽

DAY 14
0
生成式 AI

30 天一人公司的 AI 開發實戰系列 第 14

Day 14: 創辦人週報:重新學習一套開發生態框架讓開發如此順利

  • 分享至 

  • xImage
  •  

上週結束時,我在週報裡寫道「放下固有習慣,擁抱 Kotlin 哲學」。

這週,我真正體會到這句話的含義。

第二週的變化很明顯。程式碼產出比第一週大幅增加。功能完成了專案管理、資料庫、狀態管理、錯誤處理、UI 元件。每次重構都讓程式碼更簡潔。Debug 時間從幾小時降到幾十分鐘。開發信心從有點擔心變成非常有把握。

是什麼造成了這樣的轉變?

答案是我停止了對抗,開始了學習。

從對抗到擁抱

Week 1 的我:帶著包袱前進

第一週,我像是揹著 20 公斤的登山包爬山:

// 第一週的程式碼風格
class ProjectManager {
    // 帶著 Spring 思維寫 KMP
    @Autowired lateinit var repository: ProjectRepository
    @Transactional
    fun saveProject(project: Project) {
        // 200 行的「企業級」邏輯
    }
}

我在試圖把過去 10 年的經驗「移植」到 KMP。

結果呢?框架不支援就自己造輪子。慣例不同就強行適應。生態不熟就繞路解決。

Week 2 的我:輕裝上陣

這週,我放下了包袱:

// 第二週的程式碼風格
class ProjectRepository(private val database: GrimoDatabase) {
    suspend fun save(project: Project) = 
        database.projectQueries.insert(project.toDb())
}

30 行解決了之前 200 行的問題。

關鍵轉變就是從「我知道怎麼做」變成「KMP 怎麼做」。

ARS 我的學習加速器

發現學習的正確方式

這週最大的收穫是創造了 ARS(Architecture Research Specialist)角色。

傳統學習 vs 系統化學習

以前的學習方式很痛苦。遇到問題就 Google,然後看 Stack Overflow,試錯,不 work 就繼續 Google,找到過時的解法,勉強能用但不知道是不是最佳實踐。要花 2-3 天。

有了 ARS 之後就不一樣了。定義問題,讓 ARS 研究,30 分鐘後就得到 3-5 個可行方案、每個方案的實際案例、2025 年的最新實踐、具體的實作程式碼。只要 1-2 小時。

三個關鍵學習案例

案例一:SQLDelight Migration

我寫了 200 行的 MigrationManager。結果 ARS 研究發現 SQLDelight 2.0 有 deriveSchemaFromMigrations。我在用 2023 年的方式寫 2025 年的程式。Cash App 只用 30 行就搞定。

結果呢?程式碼大幅減少,效能顯著提升,維護成本大幅降低。

案例二:錯誤處理

Compose Desktop 的錯誤追蹤像謎團。ARS 研究發現 Result Type Pattern 是 KMP 的最佳實踐,Sealed Class 完美支援跨平台,try-catch 在 KMP 已過時。

除錯時間大幅縮短,iOS 相容性問題提前解決,錯誤處理變得優雅。

案例三:狀態管理

MVI、MVP、MVVM 選哪個?ARS 研究發現 JetBrains 官方推薦 MVI + StateFlow,Compose 天然支援單向資料流,50+ 團隊的 Cash App 也用這套。

狀態管理 bug 大幅減少,UI 更新可預測,測試變得簡單。

重新學習的心法

這週我悟出了重新學習一套生態系統的心法:

空杯心態

「我有 10 年經驗,這應該很簡單」這是錯誤心態。

「KMP 是新世界,讓我重新當學生」這才是正確心態。

當我放下「資深工程師」的身份,反而學得更快。

慣例優於配置

不要對抗框架,自己造輪子。要擁抱框架,相信框架。

deriveSchemaFromMigrations = true  // 相信框架

框架的設計者比我更了解框架。

最小可行學習

不要試圖一次學會整個生態系統。

第一週學基礎語法,第二週學核心框架,第三週學進階特性,第四週做最佳化。每週專注一個主題,深入學習。

證據驅動學習

不盲信教程,要看實際案例。

Cash App 有 50+ 開發者,驗證了 MVI + StateFlow。Expedia 從 Room 遷移到 SQLDelight。Signal Desktop 證明了 SQLite 方案可行性。

真實案例比理論更有說服力。

開發效率的飛躍

開發效率的提升

第一週平均功能開發需要幾天,第二週幾小時內就完成。Debug 時間佔比從很多變成很少。重構信心從不敢輕易動變成有信心重構。程式碼從每個功能需要很多行變成簡潔許多。測試覆蓋率也明顯提升。

質性的改變

程式碼品質

第一週的程式碼充滿擔心、防禦、過度設計:

try {
    try {
        // 業務邏輯
    } catch (e: SpecificException) {
        // 處理
    }
} catch (e: Exception) {
    // 再處理
} finally {
    // 清理
}

第二週的程式碼簡潔、自信、恰到好處:

// 簡潔、自信、恰到好處
repository.getProject(id).fold(
    onSuccess = { /* 處理成功 */ },
    onFailure = { /* 處理失敗 */ }
)

開發體驗

第一週的一天很痛苦。早上 9 點開始寫功能,10 點遇到問題,11 點還在 Google,中午找到可能的解法,下午試錯,傍晚勉強能 work,但不確定是否最佳實踐,帶著疑慮下班。

第二週就不一樣了。早上 9 點開始寫功能,9 點半遇到問題,10 點 ARS 給出研究報告,10 點半選定方案實作,11 點半功能完成、測試通過。下午開始下一個功能,4 點完成兩個功能,5 點重構優化,6 點滿意地提交程式碼。

一人公司的最佳實踐

建立你的 AI 團隊

這週我的「團隊」:

我負責產品決策,ARS 負責技術研究,SA 負責架構設計,DEV 負責實作細節,QA 負責品質保證。

每個 AI 角色都有專門的能力,組成了一個「虛擬團隊」。

知識管理系統

grimo/
├── docs/
│   ├── decisions/      # ARS 的研究報告
│   ├── learnings/      # 學習筆記
│   ├── patterns/       # 發現的模式
│   └── mistakes/       # 踩過的坑
├── CLAUDE.md           # AI 協作指南
└── templates/          # 程式碼模板

每個學習都被記錄,形成組織記憶。

快速迭代循環

想法出現,ARS 研究,原型實作,測試驗證,重構優化,進入下個想法。

幾小時內完成一個完整循環。

給其他創辦人的建議

選擇技術棧時,考慮學習曲線

不只是技術本身,還要考慮生態系統的成熟度、社群的活躍度、學習資源的豐富度、AI 的熟悉程度(對,這很重要)。

投資在學習系統,而非學習內容

與其死記 API,不如建立高效的學習方法(如 ARS)、掌握查找資訊的能力、培養技術決策的框架。

不要單打獨鬥

即使是一人公司,也可以有「團隊」。AI 助手團隊(不同角色)、開源社群(學習案例)、技術部落格(他人經驗)。

擁抱框架的哲學

每個框架都有其設計哲學。Spring 是企業級、配置驅動。Django 是 batteries included。Rails 是約定優於配置。KMP 是簡潔、類型安全、跨平台。

理解並擁抱,而非對抗。

實戰心得:順利的感覺真好

心態的轉變

2 週前我覺得「KMP 好難,文件不全,生態不成熟,坑很多...」

現在我覺得「KMP 真優雅,程式碼簡潔,類型安全,開發體驗很好!」

同樣的技術,不同的心態,完全不同的體驗。

效率的提升

這週完成了專案管理功能、資料庫 Migration 系統、錯誤處理框架、狀態管理架構、UI 元件庫。

如果沒有重新學習,可能要花 2 個月。

信心的建立

最大的改變是信心。

第一週每寫一行都擔心是不是錯的。第二週知道什麼是對的,為什麼是對的。

這種信心來自於理解了生態系統的設計理念、看到了成功案例的驗證、掌握了最佳實踐。

學習是最好的投資

這週我深刻體會到,在變化的世界裡,學習能力比知識本身更重要。

給自己的提醒

保持初心,永遠當自己是新手。系統學習,用 ARS 這樣的系統化方法。實踐驗證,學了就用,用了就懂。分享記錄,寫下來,教別人,記更牢。

今日金句

「重新學習不是歸零,而是升級。」

關於作者:Sam,一人公司創辦人。正在打造 Grimo,一個智能任務管理和分配平台。

專案連結GitHub - grimostudio


上一篇
Day 13: 開發者的資料庫魔法:類型安全的 SQLDelight 存取之道
系列文
30 天一人公司的 AI 開發實戰14
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言