身為開發人員,我們一直在尋找提高生產力和簡化工作流程的方法。隨著人工智慧的最新進展(並且我堅信這些技術將改變遊戲規則),我決定在現實世界的開發場景中測試這些工具。
我的目標:在短短 7 小時內建立一個全端人工智慧驅動的食物追蹤應用程式 PoC。
結果:效果非常好!但並非沒有挑戰。
這是我作為開發夥伴所學到的關於使用 AI 的知識。
目標雄心勃勃但重點突出:創建一款行動應用程序,讓用戶拍攝食物並使用人工智慧識別自動將其記錄到食物追蹤器中。技術堆疊包括我的首選:Quasar Framework(VueJS 框架)、Google Firebase 和 Capacitor(行動開發框架),以及 AI 推理的 Google Gemini 2.0 Flash。
沒什麼特別花俏的,但夠複雜來測試人工智慧輔助。
我使用了人工智慧工具的組合來協助專案的不同方面:
我獲得的最有價值的見解之一是將人工智慧視為初級開發人員或實習生。這種思維模式完全改變了我處理合作的方式。正如您不會將整個專案放在新實習生的辦公桌上並期望完美的結果一樣,我學會了:
這種方法帶來了更好的回報,並且比將人工智慧視為「無所不知」或「完全不可靠」更有效。
事實證明,人工智慧在規劃階段非常有幫助。我從一個粗略的專案大綱開始,並使用迭代提示來完善它。例如,我最初的提示之一是:
Can you help me plan out making the following app in 7 hours: <information about the app> Detail out how long I should spend on each section, and revise my overall plan as needed.
這引發了反覆討論,幫助明確了專案範圍和時間表,從而製定了更現實和詳細的計劃。
人工智慧工具擅長產生和維護文件。它可以快速建立全面的 Markdown 文件,並隨著專案的發展不斷更新。這為實際開發工作騰出了寶貴的時間。
將開發分解為更小、更有針對性的提示被證明是非常有效的。我沒有嘗試立即產生整個元件,而是使用了一系列提示,每個提示都建立在前一個提示的基礎上。例如:
我發現的一個巧妙的技巧是讓 A.I.記錄進度和後續步驟,以便在提示之間可以有一些參考內容。由於我使用的是 WindSurf,因此我可以使用「主提示」來保持對話繼續進行。主提示將指示人工智慧。在編寫程式碼時回顧筆記並添加內容。
WindSurf 的另一個亮點是錯誤修復和開發後任務。
測試我的應用程式並注意到一些錯誤後,我將清單傳遞給 WindSurf,它可以快速識別和修正問題,甚至產生測試案例以確保修復有效。這節省了我大量的時間和精力。
我有以下錯誤列表,只有少數情況我需要手動修復它們:
Can you help me plan out making the following app in 7 hours: <information about the app> Detail out how long I should spend on each section, and revise my overall plan as needed.
並非一切都一帆風順。出現了一些關鍵挑戰:
我在文件修改方面發現了一些限制:
注意:在撰寫本文時,文件鎖定/歸檔編輯失敗的錯誤似乎已在最新版本的 WindSurf 中修復。
人工智慧輔助的品質在較長的對話中會下降。我學會了為新元件開始新的對話並提供簡潔的上下文,而不是試圖維持一個漫長的會話。
隨著程式碼變得越來越長、越來越複雜,人工智慧很難跟上。我必須將任務分解為更小、更易於管理的區塊以保持質量,或者必須提供大量細節和上下文以保持 AI 正常運作。
偏離軌道意味著刪除功能、刪除相關程式碼,或有時完全建構錯誤的東西。這是一個很大的時間消耗,我必須非常小心地讓人工智慧保持在正軌上,或者決定手動編碼。
有時,自己做會比較快。學會識別這些時刻可以節省大量時間並減少挫折感。正如我的開發日誌中所述:「當它工作時,它工作得很好。當它不工作時,它可能會浪費時間。」
Git 經常提交:在讓 AI 做出重大更改之前,提交您目前的狀態。如果出現問題,這可以提供簡單的後備方案。
準備樣板程式碼:在使用 AI 輔助之前設定專案結構和基本配置。就我而言,這意味著:
清晰詳細的提示:盡可能具體地表達您的要求。包括相關背景和範例。在需求和設計階段花費盡可能多的時間,並提供盡可能多的細節。這些註釋和指導不僅可以幫助您更好地執行項目,還可以大大提高人工智慧生成的程式碼的品質。
迭代回饋:毫不猶豫地修正或指導人工智慧。例如,當我收到與要求不太相符的輸出時,我提供了具體的回饋:
Can you help me plan out making the following app in 7 hours: <information about the app> Detail out how long I should spend on each section, and revise my overall plan as needed.
這種特定的回饋通常會帶來快速、準確的修正。
使用人工智慧絕對加速了開發。雖然需要指導和偶爾的糾正,但 ChatGPT 和 Claude 以及 WindSurf 的結合使我比在同一時間範圍內單獨取得的進步要大得多。
也就是說,成功需要了解這些工具的功能和限制。關鍵是在人工智慧協助和人類專業知識之間找到適當的平衡,充分發揮各自的優勢。
這個實驗表明,未來人工智慧工具將成為開發工作流程中不可或缺的一部分——目前,不是取代開發人員,而是增強他們的能力。關鍵在於學習有效地使用這些工具,了解它們的優點和局限性,並開發能夠最大限度地發揮其優勢並同時最大限度地減少其缺點的工作流程。
對於有興趣將 AI 融入其工作流程的開發人員,我建議從小處開始,建立清晰的互動模式,並隨著您對 AI 的功能和限制更加熟悉而逐漸擴大 AI 的作用。
這些工具處於初級開發人員的水平,很快就有了足夠的訓練資料和迭代,他們將能夠做更多的事情。我可以看到這些工具最終編寫整個應用程式並處理大部分開發過程。在模型能夠模擬高級開發人員之前,我們仍然需要人工監督和指導。
我很高興看到這項技術的發展方向以及它將如何塑造軟體開發的未來。
以下是我在 7 小時內建立的應用程式的一些快速螢幕截圖。雖然不完美,但這是一個堅實的開始!
(用相機捕捉食物)
(將影像傳送給AI進行食物辨識)
(查看結果 - 將食物添加到追蹤器)
(確認食物入境)
(儀表板視圖)
(食物入口視圖)
無恥但相關的插件:
雖然我仍在開發本文中提到的食品應用程序,但我能夠使用 WindSurf 和 A.I. 快速完成另一個項目
如果您對人工智慧驅動的 Git CLI 幫助程式感興趣,以便更輕鬆地維護提交訊息和發行說明,請查看 eGit
以上是使用 AI 結對程式設計建立應用程式:我們 Sprint 的經驗教訓的詳細內容。更多資訊請關注PHP中文網其他相關文章!