面向 ChatGPT 編程的 11 種方法

0、搭建框架
首先,ChatGPT 可以幫我們開啟想要編寫的任何新內容的骨架結構,從而提升日常編碼效率。GitHub Copilot 在這方面也做得很好。這里我們以遠程下載圖片為例進行演示。
在 VSCode 中,可以基于 ChatGPT 插件面向 ChatGPT 編程實現(xiàn)這段演示代碼,代碼生成后點擊 Insert 自動插入代碼到右側編輯區(qū):

當然,你也可以從第三方云存儲下載圖片豐富代碼實現(xiàn)細節(jié):

1、代碼解釋
你可以拿出想要理解的任何代碼,比如上面這段 ChatGPT 自動生成的圖片下載代碼,讓 ChatGPT 對其進行解釋:

可以看到這些解釋非常詳細,這比自己摸索試圖理解復雜的代碼要快得多,尤其是一些比較抽象的、封裝度比較高的底層代碼。
2、改進現(xiàn)有的代碼
通過描述你想要實現(xiàn)的目標,讓 ChatGPT 對現(xiàn)有的代碼進行改進。比如這里假設圖片資源不存在,則退出不執(zhí)行后面的文件保存操作:

它會為你提供如何實現(xiàn)目標的說明,包括修改后的代碼,非常酷。
3、使用正確的命名規(guī)范重寫代碼
當重構由非本地 Go 開發(fā)人員編寫的使用不同命名約定的代碼時,這非常有用:


注意到 ChatGPT 不僅為你提供更新后的代碼,還解釋了更改的原因。
4、使用正確的代碼風格重寫代碼
當審查(Review)和重構(Rewrite)由非本地 Go 開發(fā)人員編寫的代碼時,這非常有幫助。ChatGPT 熟知 Go 語言代碼風格,并將為你提供改進代碼的建議,使其更易于閱讀:

5、簡化代碼
我們還可以讓 ChatGPT 簡化復雜的代碼,結果將是原始代碼的更緊湊版本,比如我們讓 ChatGPT 來簡化這段插入算法的示例代碼:


你可以對比運行下兩段代碼的運行結果,完全一致,但是 ChatGPT 提供的簡化版本顯然代碼更加簡潔。
6、編寫測試用例
這已經(jīng)成為我最喜歡的 ChatGPT 功能之一:詢問它是否可以幫助你測試一個函數(shù),它將為你編寫測試用例。還是以上面這個插入排序函數(shù)為例:


Go 測試用例中一般是不包含 main 函數(shù)的,你可以讓 ChatGPT 中去掉 main 函數(shù):

7、探索替代方案
有的時候,我們可能面對的是一段并不是性能最好的代碼實現(xiàn),比如基準測試后得出一段代碼性能并不是很理想,需要尋求另一種更好的實現(xiàn)方式。這個時候,可以讓 ChatGPT 給我們提供思路,當你想要探索不同的解決方案時,這非常有用。
下面以一段斐波那契數(shù)列的遞歸實現(xiàn)優(yōu)化為例進行演示:


這里 ChatGPT 給出了兩種替代方案,都很靠譜。
8、翻譯代碼
每當你想要將某些代碼從一種語言轉換到另一種語言時,可以請求 ChatGPT 幫助翻譯,這對它來說是小菜一碟:

非常棒!
9、編寫文檔
這是我最喜歡的另一個技巧之一。詢問 ChatGPT 編寫代碼的文檔,它通常可以很好地完成。它甚至會將使用示例包括在文檔中:

10、調試代碼
如果你在代碼中遇到困難并且找不到錯誤,可以向 ChatGPT 尋求幫助。它可能只需要幾秒鐘就能夠找到錯誤原因所在。我不知道你的情況如何,但對我來說有時候會比 ChatGPT 要花費更長的時間。
我們以前面的下載圖片為例進行演示:


不僅能找到問題,還能給出修復后的代碼,調試代碼的時間是不是大幅提升了呢?
總結
在面向 ChatGPT 編程的過程中,需要記住以下兩點,這也是使用 ChatGPT 編程的兩個大前提:
我擁有超過X年的編程經(jīng)驗,我知道我在做什么。
我不相信別人的代碼(包括我的代碼),我也不相信 ChatGPT 的輸出。
使用 ChatGPT 不是說讓它替我完成所有工作,使用 ChatGPT 是為了讓我的產(chǎn)出和效率提升 10 倍。
ChatGPT 只是一個工具,而不是主導者,工具是給人使用的,能否最大化工具價值也在于使用它的人。主導者永遠在人,在我。
何況,ChatGPT 也是有缺陷的。我發(fā)現(xiàn)它在處理代碼時會出錯,它不是總是對的,但這就是為什么我會在這里:監(jiān)督它。我們一起形成了一個更完美的聯(lián)盟。另外,那些詆毀這個工具的開發(fā)者正在忽略它的價值。
更多關于 ChatGPT 的內容,請點擊閱讀原文。
