第一次接觸 ChatGPT
一個禮拜前發現幾年前用 .Net 寫的 micro service 似乎有 memory leak,由於只有幾百行 code,判斷是 .Net 本身有問題,於是打算用 Go 重寫一次。

再説 .Net ASPCore 單是起動就吃了 100MB 以上的 RAM,而且每個 service 都會 side-car 這個 app,弄兩三個 service 系統就開始 OOM-Kill 了。

雖然對 Go 不太熟悉,想著所有語言大多都相通,所以只要知道基本規則和一般做法的話應該還過得去。

於是便開始研究 /kubernetes 的 repo,第一個問題是 log 的做法,Google 了大半天,從 klog.InitFlagspflag.Parse,弄了這幾行 code
func main() {

    fs := pflag.NewFlagSet("", pflag.ExitOnError)
    c := Config{}

    fs.StringVar(&c.TLSCertFile, "tls-cert-file", c.TLSCertFile,
    "File containing x509 Certificate used for serving HTTPS (with intermediate certs, if any, concatenated after server cert).")
    fs.StringVar(&c.TLSPrivateKeyFile, "tls-private-key-file", c.TLSPrivateKeyFile, "File containing x509 private key matching --tls-cert-file.")

    klog.InitFlags(nil)

    flag.Set("logtostderr", "true")
    pflag.CommandLine.AddFlagSet(fs)
    pflag.CommandLine.AddGoFlagSet(flag.CommandLine)
    pflag.Parse()
}
這時候不知怎的突然想起某 YouTube 好像介紹用 ChatGPT 某些情況下比 Google 好,機會難得總之先試試看吧?

啊,怎麼 IP 被牆掉了?沒差,直接用 VPN 好了。

我:「 What is the general logging convention for writing k8s services with client-go?」

ChatGPT: [...](不知道有沒有版權問題所以這裏就不貼上來了)

我:

完‧全‧解‧答!

這什麼鬼好厲害!我花了半天 Google 的東西只是問一下 ChatGPT 就解決了!好厲害!嗯?但這裏為什麼要加 defer klog.Flush?順便也問一下吧。

我:「What does klog.Flush() do in your above example?」

ChatGPT:[...](簡單來説這個是必要而且是一般做法)

為了驗證我確應了一下 /kubernetes 的 repo⋯⋯

HO-LY FUCK!受教了!沒想到我也有被 AI 教育的一天,新時代要來了?

之後在開發中途問了幾個問題,結論 ChatGPT 是神器。

又一例我挖了大半天也找不到應該怎麼 decode 某些 resources ,於是問

「Please provide an example that shows how to unmarshal ingress object from AdmissionReview.Request.Resource using client-go.」

這個也沒問題地解答了。開發變得超輕鬆,好感動!

但得小心要抱持懷疑的態度來用呢。例如上面的問題 ChatGPT 會在 func init() 中寫 _ = AddSchema(..),我問為什麼要這樣寫,他説這一般做法和防止噴錯。

雖然解答得有條有度。但實際在上並沒有噴錯,而且 k8s 的 repo 裏面找不到這樣寫的例子。這裏反問了一下結果他説我是對的,噴錯的情況是在用其他工具( code scanning)的情況下才會發生。而且 k8s 也沒有指定 func init() 裏面要 _ = ...

本來預計要用幾天重寫的玩意最後只花了兩天就寫好了。感謝 ChatGPT 🙏

感想

網上有人笑讓 ChatGPT 寫 code debug 時間反而變長了。我覺得這是錯誤用法。不是要他幫你寫 code,像「請用 python 寫一個 program,會從 twitter 上 pull data 下來,然後分析這個 data,再將結果 save 都 db 上去」這類問題完全是想太多了。不如叫他幫你吃飯好不好?

不過要問將這個技術一直伸延下去的話有沒有可能發展出完全的 AI⋯⋯只能説我沒有足夠的知識去判斷了,直覺判斷的話應該不行吧?個人來講我也有願想活在小説中的世界,希望在有生之年可以看到完全的 AI 呢。

現在這個 ChatGPT 也很 SF 就是了。
Tag(s): diary
Profile picture
斟酌 鵬兄
Fri Nov 29 2024 08:42:01 GMT+0000 (Coordinated Universal Time)
Last modified: Fri Nov 29 2024 08:42:01 GMT+0000 (Coordinated Universal Time)
Comments
No comments here.
Do you even comment?
website: 
Not a valid website
Invalid email format
Please enter your email
*Name: 
Please enter a name
Submit
抱歉,Google Recaptcha 服務被牆掉了,所以不能回覆了