周三下午,我打開了一個四年沒碰的GitHub倉庫。這個React答題應用當年寫了一半就扔了,現在連加載頁都過不去。瀏覽器控制臺里躺著兩行錯誤:429 Too Many Requests,還有一個經典的Cannot read properties of undefined。API在每次渲染時瘋狂請求,加載動畫永遠轉下去——典型的自學新手代碼,JavaScript基礎沒打牢就急著上手框架。
這就是GitHub Finish-Up-A-Thon挑戰賽的起點:把一個廢棄項目真正做完。
![]()
第一步:止血
問題比表面看起來更糟。OpenTDB API的429錯誤說明請求頻率超限,而代碼里完全沒有錯誤處理,失敗響應直接送進.map(),整個應用炸掉。我在api.ts里做了三件事:給響應加response.ok檢查,用Array.isArray()守護data.results,再把startTrivia包進try/catch/finally——無論API成敗,加載狀態必須復位。就這一處改動,那個無限旋轉的spinner終于停了。
GitHub Copilot在這里幫了忙。它建議的Array.isArray檢查,恰好堵住了我漏掉的靜默崩潰點。我沒盲從,但重構數據流時確實快了不少。
第二步:讓它像個真正的游戲
舊版本的問題不只是bug。它開始得突然,結束得潦草,沒有反饋,沒有節奏。我加了難度選擇(簡單/中等/困難),做了帶分數的結果頁,明確標記"測驗結束"的狀態,還塞了一些交互音效——讓點擊有回應,讓等待有預期。
UI也換了。原來的界面能用,但和"答題游戲"這個概念氣質不符。現在用深色底、高對比度的 trivia 風格,卡片做了毛玻璃效果,內容能跳出來。
現狀
線上版本:https://tryquizzify.vercel.app/ 倉庫:https://github.com/temisan0x/quiz-app
它不完美。但四年前那個跑不起來的半成品,現在是個能玩、能走完流程、知道用戶在哪一步的東西。Finish-Up-A-Thon的核心就是這個:完成比完美重要,尤其是對你自己 abandoned 的項目。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.