🎬 YouTube Premium 家庭 Plan成員一位 只需
HK$148/年!
不用提供密碼、不用VPN、無需轉區
直接升級你的香港帳號 ➜ 即享 YouTube + YouTube Music 無廣告播放
明天屬於今天勇於擁抱的人
如何將ChatGPT變成你的AI編程助手 – 並提高你的產出
這是我在過去兩年使用ChatGPT進行編程輔助的經驗,並因此完成了更多編程工作的總結。
在過去兩年中,我一直在實驗如何利用ChatGPT來提高我的編程效率。當ChatGPT幫我找到了困擾的bug時,我意識到人工智能(AI)是值得探索的。
許多人認為AI就像魔法精靈,可以從一個模糊的願望中實現整個程序或應用程式。其實更好的比喻是:AI就像一種電動工具。
當然,你可以用傳統的鋸子來切割木材,但桌鋸的速度快得多。無論哪種工具都不會自己製作家具,它們只是幫助你創造家具。要記住,AI並不會為你寫代碼,而是幫助你撰寫代碼。
雖然沒有客觀的方法來確定ChatGPT幫助了我多少,但我相當確信它讓我的編程產出翻了一番。換句話說,通過將ChatGPT作為我的工具之一,我完成的工作量翻了一倍。
我主要使用的是ChatGPT Plus,而不是免費版。起初是因為Plus中的GPT-4模型在編程方面表現得比免費版的GPT-3.5模型好。然而,現在兩個版本都支持某種變體的GPT-4o模型,它們的編程能力是一致的。請記住,免費版的查詢次數有限,當你被要求等待時,這會打斷我的編程流程。因此,我選擇每月$20的Plus版本。
我應該指出,我測試了許多大型語言模型(LLMs),並發現只有少數幾個(且都是基於ChatGPT的LLMs)能夠應對我所提出的所有挑戰。因此,儘管市場上有很多很酷的AI工具供程序員使用(有些甚至是免費的),但它們的幫助有限,除非AI生成的代碼實際上是有效的。好消息是,隨著時間的推移,AI在編程方面的能力將不可避免地提高,因此這個問題將不再那麼突出。
如何充分利用AI編程夥伴的建議
回顧我所有的項目,我意識到有一些具體的技巧可以分享,幫助你最大限度地發揮AI編程夥伴的潛力。讓我們深入探討。
1. **給AI很多小任務**
AI不擅長處理複雜的指令集,尤其是如果你期望它進行產品設計。然而,AI在解析和處理小而明確的指令方面非常出色。
2. **把機器人當作Slack對話中的一個人**
與同事之間的電子郵件來往可能會隔幾小時,而想像一下你在Slack聊天的情景,每次互動都更小,但相隔的時間卻只有幾秒鐘。
3. **對於更複雜的例程,迭代提示**
從簡單的任務開始,然後在正確編寫後,逐步添加更多元素。我會剪切並粘貼之前的提示,隨著我獲得的代碼塊進行添加和刪減。
4. **測試AI返回的每一小段代碼**
永遠不要假設代碼會運行。將代碼插入到你的項目中,看看它的表現如何。
5. **使用調試器**
對於更深入的測試,不要猶豫,逐步查看AI生成的代碼。觀察變數及AI的具體操作。記住,只要你檢查每個語句和行的正常運行,讓它為你寫代碼片段是可以的。
6. **不需要將AI編碼助手集成到你的IDE中**
許多編碼工具供應商正在推廣將AI集成到他們的工具中。然而,我更喜歡將ChatGPT作為與我的開發環境分開的工具使用。我不希望AI能夠進入我的主要編碼環境並更改那裡的內容。
7. **隨意從生成的例程中抽取代碼行**
你不必使用AI生成的所有內容。就像你可能去Stack Overflow尋找代碼示例,然後挑選你想複製的行一樣,你可以對AI生成的代碼做同樣的事情。
8. **避免要求AI進行專有編碼或使用它無法獲得的內部知識**
AI LLMs基於訓練數據或它們在網上找到的內容運行。這意味著它們通常對你的獨特應用或業務邏輯一無所知。因此,避免試圖讓AI寫任何需要這種知識水平的內容。這是你的工作。
9. **給AI提供範例以便它理解你的代碼上下文**
我給ChatGPT一段HTML頁面的代碼,要求它添加一個展開文本塊的功能。AI返回了HTML、JS和CSS。後來我要求它提供額外的CSS選擇器,並要求它解釋其工作原理,AI也給出了理由。所有這些過程都因為我給AI的範例幫助它理解了上下文。
10. **利用AI進行常識編碼**
AI最大的優勢在於編寫使用常識、流行庫和常規實踐的代碼塊。AI無法編寫你獨特的業務邏輯,但如果你要求AI為庫和API的功能編寫代碼,它將為你節省大量時間。
11. **隨意要求一兩行的代碼片段**
即使你需要的內容可能僅生成一兩行的回應,仍然可以將AI用作任何研究工具,以節省時間。
12. **告訴AI它編寫的代碼無法正常運行**
我發現AI經常產生不完整或無法運行的代碼。告訴它哪裡出錯,並建議澄清。然後要求AI重新編寫一些新內容。它通常會這樣做,並且修訂後的代碼有時會比原始代碼更好。
13. **用一個AI檢查另一個AI的工作**
看看兩個語言模型如何解釋相同的代碼是很有趣的。正如我們所見,並非所有語言模型都能很好地運作,但它們的結果可以提供指導。你甚至可以讓一個ChatGPT會話檢查另一個ChatGPT會話的結果。
14. **使用AI編寫CSS選擇器**
CSS選擇器是編碼者用來定義網頁元素進行樣式或其他操作的表達式。它們很快就會變得複雜和難以理解。我經常複製一段HTML,然後要求AI為該HTML的某個部分提供選擇器。這種方法可以節省大量時間。然而,請記住,你通常需要進行迭代,告訴AI前幾個選擇器無法正常工作,直到它生成可行的選擇器。
15. **讓AI為你編寫正則表達式**
正則表達式是最常用於解析文本的符號數學序列。我幾乎和寫CSS選擇器一樣不喜歡寫它們。AI在編寫正則表達式方面表現出色,但你需要測試它們。
16. **使用AI測試正則表達式**
我在Mac Studio上使用Patterns應用程序測試生成的正則表達式。但AI也能提供幫助。我經常將AI生成的正則表達式輸入另一個AI實例,然後詢問:“這個做什麼?”如果我得到的描述符合我想要的功能,我就會對AI的表現更有信心。
17. **讓AI處理複雜的循環數學**
與CSS選擇器和正則表達式一樣,複雜的循環數學可能是繁瑣且易出錯的。這是AI的理想應用場景。在指定提示時,不要告訴AI循環中包含什麼。讓它編寫適當的循環包裝元素,然後在該過程工作後編寫業務邏輯。
18. **使用“這段代碼有什麼問題?”作為提示**
我經常將代碼塊,特別是AI生成的正則表達式,輸入AI。查看AI認為代碼有什麼問題通常是非常有啟發性的,經常會突出代碼未測試的錯誤條件。然後,當然,要求AI重新生成修復了它所發現錯誤的代碼。
19. **使用“這個做什麼?”作為提示**
同樣,我喜歡將代碼塊輸入AI,詢問“這個做什麼?”這通常是非常有啟發性的,即使對我自己的代碼也是如此。但最大的好處是在處理他人編寫的代碼時。將函數或代碼塊輸入AI可以節省逆向工程原始代碼的時間。
20. **知道何時放棄AI**
有時,AI無法完成工作。我發現如果你嘗試讓AI重寫代碼超過兩到三次,那麼你就已經過了無法挽回的地步。如果你想要AI生成的代碼,請從全新的、重新措辭的提示開始,看看能得到什麼。有時,你必須自己動手。
21. **在函數和變數命名中要具體**
AI會從變數和函數名稱中捕捉意圖,寫出更好的代碼。例如,將變數名稱指定為$order_date有助於告訴AI你在處理一個訂單和日期的值。這比像$od這樣的名稱要好得多。此外,從命名良好的變數生成的代碼通常也更具可讀性,因為AI知道使用更具描述性的名稱來創建其他變數。
22. **閱讀代碼前後的註釋**
AI通常會在撰寫代碼前後生成有關每個提示的註釋。這些註釋中可能包含寶貴的資訊,幫助你理解AI的操作或其解決問題的方法。有時,AI還會指向其他可能有用的庫或函數。
23. **可以隨時回來請求更多幫助**
抓取你項目中的各種代碼片段來說明你的需求,告訴ChatGPT閱讀它們,然後詢問你想要的內容。我曾經需要為擴展區域的輸入字段建立排除條件,詢問AI後,少於一分鐘我就得到了本來需要我10分鐘到1小時才能寫出的代碼。
24. **利用AI幫助你重寫過時的代碼塊**
我曾經有一個使用較舊版本PHP的模組,使用了現在已被淘汰的語言特性。為了更新代碼,我將過時的代碼片段粘貼到ChatGPT中,要求它告訴我如何重寫,以便與當前大多數PHP版本兼容。它做到了,而且運行正常。
25. **使用AI幫助你編寫不熟悉的語言**
我對學習新編程語言非常有信心,但我發現如果需要用不熟悉的語言編碼,AI可以提供幫助。我會詢問AI如何編寫我想要的內容並指定語言。比如,我想知道在Python中如何編寫case語句,而我一直在PHP中這樣做。只需問:“比較在PHP和Python中編寫case語句”或“如何在Python和PHP中連接字符串”。你會得到很好的比較,這個過程使得編寫不熟悉的代碼變得更加容易。
總結
有一個額外的提示:檢查公司關於生成代碼的法律問題。如果你不確定從何處開始,可以閱讀我有關AI和代碼所有權的文章。如果你使用我分享的技巧,你將不會使用AI來編寫獨特的業務邏輯或構成代碼獨特性的核心部分。因此,你很可能能夠保留這段代碼的版權,這應該成為你獨特價值的關鍵要素。
我為公司內部使用或開源代碼編寫代碼,因此我對AI生成的片段的所有權問題並不擔心。
你是否使用AI來幫助編寫代碼?你有任何建議可以補充到我的列表中嗎?請在下方留言告訴我們。
你可以在社交媒體上關注我的日常項目更新。一定要訂閱我的每週更新電子報,並在Twitter/X上關注我@DavidGewirtz,在Facebook上關注Facebook.com/DavidGewirtz,在Instagram上關注Instagram.com/DavidGewirtz,以及在YouTube上關注YouTube.com/DavidGewirtzTV。
—
這篇文章提供了許多實用的技巧,幫助程序員更有效地利用AI工具,特別是ChatGPT,來提高編程效率。隨著AI技術的進步,這些工具將在未來的開發過程中扮演越來越重要的角色。不過,值得注意的是,AI的輔助仍然需要程序員本身具備一定的專業知識與判斷力,以確保生成的代碼能夠達到預期的效果。因此,程序員應該在使用AI的同時,不斷提升自己的技能與知識,以便在這個快速變化的技術環境中保持競爭力。
以上文章由特價GPT API KEY所翻譯及撰寫。而圖片則由FLUX根據內容自動生成。