iT邦幫忙

2026 iThome 鐵人賽

DAY 30
0
Build on Google AI

單鐵的人生如履薄冰!AI 教練 APP 30天開發旅程,你說能走到最後嗎?系列 第 30

Day 30 | 鐵人賽完賽心得:從全端架構設計到跨平台實作,Build on Google AI 帶來的軟體開發變革。

  • 分享至 

  • xImage
  •  

前言:馬拉松的終點線

經過三十天漫長的鐵人賽程,終於來到了終點線。

回顧 KAKERU AI 教練從 0 到 1 的誕生,這不僅是一場宛如公開處刑的技術實驗室,更是一次對於「AI 如何改變軟體開發流程」的深度實踐。

這三十天,除了埋頭交代專案的技術作法,我總覺得自己也像在完成一場沒人來看的脫口秀。撇除那幾個硬塞在文章裡、有夠難笑的諧音梗,每一篇與 AI 共筆的內容,我都是用寫段子的心態在經營:前言要怎麼鋪陳、技術的 Punchline 下在哪裡、結尾該怎麼漂亮收段,又要怎麼為隔天的新笑話埋下伏筆。

在構思跟調整這些內容的過程中,我心中充滿了對專業作家、對持續在社群平台無私分享的大神,以及對那個沒有 AI 輔助的純手工時代前輩們滿滿的敬意。

仔細想想,寫作與軟體開發在本質上其實極其相似。無論是寫脫口秀段子的起承轉合,還是設計一套跨平台應用的全端架構,我們都在試圖釐清脈絡、處理各種從未想過的湯匙使用方式,並期盼最後都能順利。

今天要帶著這份對內容創作的敬畏,來述說一些對系統未來架構的務實反思。

KAKERU 的下一步與技術債盤點

https://ithelp.ithome.com.tw/upload/images/20260908/20165043OotN24D6Cz.png

(by Mermaid)

上面是整個 KAKERU的最後架構圖。

即使 KAKERU 的架構有具備了 DevOps 與雲端原生的基礎,但很多地方只是為了這個專案的完成而草率地完成,在經過每一天笑話的發佈,依然有許多值得優化地方,這些都是為了應對未來規模化必須解決的課題,肯定有更好的做法,先列出以下:

  • 冷資料存檔機制: 針對長時間未使用 App 的幽靈帳號,系統應該實作生命週期管理。將資料庫中閒置的課表與歷史紀錄,依據 UUID 打包並封存到 GCP Cloud Storage (Bucket) 中,藉此降低資料庫的儲存壓力與成本。
  • 從視覺辨識轉向 API 原生串接: 雖然 Gemini 的多模態視覺辨識非常強大,但每次打卡都讓 AI 去讀取圖片,長遠來看 Token 消耗速度極快,帳單也會燒得很可觀。下一階段應優先考慮直接串接 Garmin 或 COROS 等裝置的官方 API,用最輕量的純文字 JSON 獲取數據。
  • 前端輕量影像預判防呆: 目前如果使用者上傳錯誤圖片,後端依然會發送給 Gemini API 才能得知「這不是跑步截圖」。未來應該在前端(或邊緣運算)加入輕量的預判機制,提前攔截無效圖片,避免浪費 AI Token 進行無意義的分析。
  • 局部更新取代全量生成: 目前在「診療室」調整課表時,Gemini 會重新吐出一份涵蓋 24 週的全新 JSON,再由前端透過 Zustand 進行比對。這種作法不僅耗時,Token 消耗量也非常驚人。未來應調整 Prompt 與架構,讓 AI 僅回傳「需要異動的差異化資料」,藉此大幅優化效能與成本。

視野之外的讚嘆與敬意

  • 致敬 PM 與真實使用者:獨自開發時,很長陷入這功能真是完善的感覺,看著剛寫好的功能,覺得這樣加上去應該很完美了。但實際上的 PM 與 User 總能輕易點出盲點,提出開發者完全沒想到的應用情境與優化建議。這讓深刻體悟到,技術只是片面基石,真正賦予產品靈魂的,是那些來自不同視角的使用者回饋。
  • 致敬所有持續創作的作家: 連續 30 天產出技術文章,不僅考驗體力,也考驗內容的編排能力。能夠把艱澀的技術寫得生動有趣,甚至讓人產生想繼續看下去的動力,這種用文字影響他人的能力,真的令我無比佩服。
  • 致敬沒有 AI 時代的「真.鐵人」前輩們:在那個沒有 AI 幫忙構思、沒有得協助 Debug 與重構程式碼的年代,前輩們在網路上翻找零碎資源,Stackoverflow、Github或其他大陸論壇,就能實作出龐大專案並無私分享。願稱你們為真鐵人,絕對是實至名歸,儘管我有經歷過那段,Google搜尋的連結都已經點過,卻遲遲沒有解方的年代,但始終還是很崇拜那些前輩們。

今日總結

今天(Day 30),我的首場鐵人賽aka脫口秀終於正式走入終點。

KAKERU 的故事雖然在這裡暫時告一段落,但這段反覆打磨產品、重新盤點技術債,並且與 AI 深度協作的實戰經驗,絕對會成為未來開發路上極其重要的養分,我很期待往後能將那些已經記在Notion的那些專案想法,都一一實踐出來。

最後,就用這段真實發生的對話,為鐵人賽畫下句點:

人:恭喜你結束了!!這三十天真的充實,下次還要參加嗎?
我:Day30。
人:對我知道今天是 Day30,很恭喜你,下次會參加嗎?
我:嗯,Day30。
人:…喔,原來是「得三思」(Day 30) 的部分,幹嘛英文夾中文(可能太緊張了,他應該知道自己諧音笑話有多難笑,不會再說了才對)!
我:不過得捨氣真的不錯,整個煥然一新。
人:捨棄什麼不錯?竟然讓你煥然一新。
我:因為 Day30 (Day thirty / 得捨氣) 是最後一天,過程很充實,最後一天格外清爽。
人:(拍手)…

感謝每一個點閱過這系列文章的你,不管是來尋找技術解方、來看架構設計,還是真的對我的諧音笑話有興趣。這30天,謝謝指教,我們不能是三角、四方、還是五邊,我們要有緣再見。

人:…


上一篇
Day 29 | 最真實的 Dogfooding:連續一週打卡實測、AI 診療室動態排程與 GCP 帳單開
系列文
單鐵的人生如履薄冰!AI 教練 APP 30天開發旅程,你說能走到最後嗎?30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言