AI 協作軟體開發親身經驗分享
Posted on Jul 8, 2024 by Amo Chen ‐ 3 min read
軟體開發進入 1 個只要有想法、有行動力就能實現的新時代。
藉著 LLM 的幫助,跟過程不斷試錯改進,讓就算不是前端工程師的我,也能夠跨越技能鴻溝,打造接近心中樣貌的番茄鐘!(其實也呼應我們之前提到的每個人會因為 AI 而守備範圍變廣)
其實一開始我只是想試著減少經常跑復健科的時間、金錢成本(每次要花 50 元還有近 1 小時的復健時間,一個月至少要去 6 次)。
有一天候診時,看著復健科的衛教影片,突然想到何不試試結合番茄鐘與伸展運動,定期提醒自己要動一動與減少久坐(或者站立工作),然後復健完回家,問完 ChatGPT 後很快就打造出 1 個雛形,自己用起來感覺還不錯,就決定繼續開發!
但是後續的挑戰反而比我想像還來的難一些,產品化過程最痛的主要是配色、美感、 UI/UX 的問題,所幸 Youtube, Dribble 都有不少資源可以借鑑,只要不斷地試,總會試出幾個還算滿意的設計(但其實也是滿滿的妥協)!
剩下的是自己幾乎每個工作天都使用自己做的番茄鐘,過程總會發現幾個痛點可以改善,例如:
- 工作時喜歡有背景音,所以就整合 Spotify Embeds 。
- 發現自己經常需要調整蕃茄鐘時長,所以就做了幾個常用番茄鐘規則可以切換。
- 發現主頁統計圖表沒辦法一眼看出今天專注多久,所以借鑑發票條列式的設計進行改良。
- 發現自己經常分心想看某些網站,就又請 ChatGPT 幫忙做 Chrome Extension 幫忙阻擋網站,還可以跟番茄鐘同步,番茄鐘開始跑的時候, Chrome Extension 也會自動開啟阻擋,番茄鐘結束就自動關閉阻擋。
- 發現工作忙時,根本不會想要使用 short break 與 long break ,所以又加上 Rush mode, 讓身體動一動之後再繼續衝刺。
總結來說,真的沒有完美的產品,只有能解決問題與不斷改進的產品。
再來談談我個人針對 AI 協作軟體開發的想法。
基本上,每個人的職能守備範圍變廣這件事,已經是確定的事了,每個人都可以藉由 LLM 做出解決自己問題的應用,譬如 146 小隻小資女分享她用 GenAI 自動化工作流程就是 1 個鮮明的例子。
不過,這並不代表任何人都具備將解決方案產品化(或者規模化)的能力,在產品化這件事上,紮實的軟體開發知識、經驗還是很重要,光是要使用/理解正確的技術名詞下對 prompt ,對一般使用者來講還是一項考驗,例如以下親身經歷:
- 使用者可能不知道響應式網頁設計(responsive web design)的情況下,就更不知道要用關鍵字 Flex 還是 Grid ? 不在你已知範圍內的知識,最多只能用間接的詞進行表達/描述,就靠 AI 能不能正確理解並生成回應,不過我們能不能正確理解/使用它的答案,則又是另一回事了⋯⋯。
- 瀏覽器的
setTimeout
,setInterval
也並非準時觸發執行,所以倒數計時的功能純用setInterval(func, 1000)
每秒更新,並不是真的每秒準時執行,最後會導致 25 分鐘的倒數計時,可能實際倒數會超過半小時,第 1 版由 AI 生成的倒數功能,就有這樣的重大問題(想解決久坐,卻還是被騙久坐XD)。 - Spotify Embeds 在載入完成時,僅會觸發一次
onSpotifyIframeApiReady
事件,對於 React 所開發的應用來說,換頁不是真的換頁,而是使用 JavaScript 對頁面重新渲染,所以當使用者換頁又切回主畫面時, Spotify Embeds 就會消失不見。要解決這個問題,最終還是得閱讀 Spotify Embeds 的 source code 理解它onSpotifyIframeApiReady
做了什麼事之後,再繞開這個問題。 - 對於少數台灣人能用的「國際」金流服務如何整合, AI 存在著 hallucinations 的現象,最終還是需要自行去閱讀、爬梳文件、測試才能整合。
其實產品化過程還是有很多細節,這部分目前 AI 還是無法面面俱到,畢竟用產品的是人不是 AI ,這些細節只有人才能體會。
至於我還有沒有再去復健科,其實是沒再去了,雖然偶爾還是會感到不適,但跟以前相比復發頻率與不適程度都下降許多,大概是每日堅持站立 1 個番茄鐘,以及有定期跟著伸展身體的緣故,從結果來說算是真的解決自己的痛點XD
最後,不要恐懼被 AI 取代,而是要擁抱 AI 工具,並且積極充實不同領域的知識,讓我們守備範圍變廣的同時,也能夠持續增加駕馭 AI 的能力。