今年最火熱的話題
應該就是ChatGPT
再不來寫個一篇
都不敢說自己是軟體工程師了

網路上很多誇張範例
用gpt從零做出網頁、遊戲
或是寫書上Amazon賣
創造被動收入等等之類

我這篇就比較樸實無華
沒那麼高大尚
只講日常工作應用到的地方

好用的地方

Sample Code

這個應該是最廣泛的應用
根據你的需求,用指定的程式語言
產生相對應的程式碼

如果有明確的需求
方法等級以內的程式碼
通常都能快速產生

之前寫C#的Action Filter
要在MSDN看個半天
複製貼上後還是得根據自己的需求修改
但是GPT是直接幫你實作完成
甚至還有註解,省了滿多時間

翻譯

和Google翻譯相比
GPT無疑是完勝
因為專案的翻譯通常會是json
或是xml格式的檔案
完全可以請GPT輸出相同格式的翻譯
不用再自己一個一個複製貼上
雖然準確性如何就無法驗證了
因為GPT翻譯終究是暫時性的
正常來說還是會請翻譯社做Proofreading

塞假資料

有一次要調整table scheme做測試
但又不想要汙染測試機的table
於是就在local建立一個相同的表
請GPT幫我根據這個表
生成十條insert假資料的sql
還真的有模有樣的

感覺未來也可以應用在整合測試
就不用自己辛苦產生這些Sql

正規表達法

這個堪稱我最大罩門
(在更之前是Vim)
學了好幾次,但永遠記不起來
這次有個需求
需要修改一個正規表達式
GPT3秒就完成了
還附上詳細解釋
對比stackoverflow
正規還是用GPT查比較方便

不好用的地方

Debug

這個試過了很多遍
通常沒什麼用
GPT只能指出最表層的錯誤
但無法探究root cause

因為實際上程式運行時
會牽涉到其他系統
有時候甚至是特定資料才會出錯

總不可能查個Bug
自家門戶洞開
把gitlab和資料庫權限都開出去
(雖然實際上也做不到)
所以目前Debug
還是得乖乖的一行一行檢查程式碼

Code Review

把一段又臭又長的程式碼
請GPT講評一下
竟然說寫得不錯
可能是”客套”的參數設太高了

結論

還是不免俗的要來討論
ChatGPT可否取代軟體工程師
這個問題在我看來,就像是問:
Google地圖可以替代計程車司機嗎?
以我個人的經驗來看
目前來說是無法取代的

先不論正確性與否
程式的發布修改
不可能交給外部的服務來部屬
總不可能出包了,老闆究責
你叫GPT扛吧
他也只能說
“很抱歉,我剛剛說錯了”

ChatGPT像是新一代的Google
讓工程師工作更有效率
就跟Google地圖
讓開車更方便一樣

而工程師除了寫程式
更多時間是在討論需求,確認規格
幫User通靈他到底想要什麼

然後在不影響舊有系統下
開發新的功能
這些都是目前GPT無法做到的

多一個工具總是好的
ChatGPT肯定是軟體工程師必備技能
就像早期的stack overflow一樣
但是取代工程師?
我認為是不太可能的