公司一程序員捶胸頓足地指著自己電腦大罵Visual Studio上的Copilot是“AI智障”,表示自己每個月花10刀買的編程AI,一個簡單的需求它都搞不好,搞了一整天了,硬是沒有解決他的問題。但是,當我過去后發現事情并不是那么簡單,最后發現并不是Copilot的問題,是人的問題,可尷尬了!
![]()
這個程序員下稱小高,小高在Visual Studio上訂閱了Copilot,Copilot是Visual Studio的官方AI編程插件,每個月月費10美刀。自從用了Copilot,小高的編程效率是提高了,但是沒事總是會被Copilot給折磨一下。
這天,小高有個簡單的需求,就是程序需要導入一個CAD文件,然后讀取CAD文件里的坐標顯示在軟件界面上。
可是,CAD的坐標系的Y軸往上是正的,往下是負的,這跟普通的圖片像素坐標系的Y軸是反過來的,所以在導入CAD后,在小高寫的軟件里面需要將圖片坐標系的Y軸鏡像,以適配CAD的坐標系,方便后續操作,如果不這么做的話,就需要將CAD的Y軸坐標系取反,這樣雖然畫面和CAD地對上了,可是坐標就跟實際坐標不一樣了,后續如果在軟件里面需要處理這些坐標就需要花大量功夫去取反,顯然,這樣容錯率就不高了!
小高選擇了前者,直接將軟件畫面坐標取反,但是,這方面的代碼他不會寫,于是就去問了Copilot。
很快,Copilot就給出了結果,但是小高發現效果不是他想要的,據小高說,Copilot最開始給的建議也是將CAD的坐標進行取反,但是這不是小高想要的,小高連續試了好幾次,結果都不如人意。
其實,從小高的描述中,我發現其實最開始Copilot給出的代碼建議不對,是因為小高給的代碼修改建議和描述不對。
后來,小高也意識到了這個問題,于是只要求Copilot將畫面坐標系的Y軸鏡像。
雖然是這樣,但是Copilot給出的代碼修改建議仍然達不到小高的要求,小高就因為這個小的改動,和Copilot對峙了差不多有一整天的時間,最后發現不管怎么修改提示詞,Copilot給出的代碼結果總是不對,因此就發生了文章剛開始的事情。
將畫面坐標系鏡像這個操作,我以前是做過的,所以,我看小高都快砸電腦了,所以就跑過去幫他看看。
我仔細看了下小高的代碼,發現好像沒有問題,但是正如小高所說,畫面的坐標系還是沒有改變。
但小高的代碼怎么看都沒有問題,所以開始我也陷入了深深地自我懷疑中。
但是,很快問題就解決了!
我看找不出問題,因此就想把正在運行的軟件關掉,我的操作也沒什么其他的意思,就跟去網吧上網一樣,電腦出了問題我們本能的就是要重啟一樣,我覺得現在既然找不到問題,那就重啟一下軟件,下個斷點調試一下。
結果,小高立馬阻止了我,說軟件重啟后需要配置一堆東西,因為軟件是通過Visual Studio啟動的,修改代碼Visual Studio上面有熱重載,所以不需要重啟軟件。
我聽著很有道理,但是很快我就發現了問題所在!
小高的代碼里面,將軟件畫面鏡像的那段代碼是寫在畫面控件的初始化函數里面的,如果小高一直不重新實例化這個畫面界面,那么程序是走不到這里的。
我一想到這里,問小高∶“你怕不是軟件到現在一直都沒重啟過吧!”
小高看我鼠標光標停留在畫面界面的初始化函數上,似乎也意識到了問題所在,說了兩個字的口頭禪后,還是不情愿地把軟件給重啟了。
一頓操作之后,軟件畫面重新切了進來,發現畫面的坐標系正常鏡像了!
此時,尷尬的小高別提有多尷尬了,意思就是他問了一天的Copilot,說不定Copilot給的代碼建議一直就是對的,只不過是小高一直不愿意重啟軟件重新運行代碼,沒有發現問題出在哪而已。
總結
我在接觸大量使用AI編程工具的程序員時,發現他們有一個共同點,那就是AI給出的代碼他們幾乎都不怎么去評審,也就是說,只要AI給出的代碼只要能運行,他們就直接拿過來用,如果不能運行,就繼續問,直到AI給出的代碼結果符合他們的要求為止。
但是,這么做有一個缺點,那就是當需求變了的時候,他們就沒有辦法了。
就像小高一樣,小高的問題在于Copilot給出了代碼結果以后,小高沒有去認真閱讀Copilot給出的代碼,了解其思路,只是一味的要求Copilot幫他解決問題。
可是,如果AI如果有意識的話,它肯定在想∶我都給了很多回正確答案了,怎么這個主還是一直問我同樣的問題呢?
不管怎么說,AI只是編程輔助工具,它是沒辦法像人那樣思考的,它通過審視現有代碼,給出修改建議,具體對不對還是需要人去思考的,它只能從模型里面匹配出一個最佳結果來,但這個結果對不對,是需要人去判斷的,否則AI編程不光不能提高編程效率,反而適得其反。
就像小高一樣,他如果早早注意到將Y軸鏡像的代碼是在構造函數里面執行的,估計這個問題幾分鐘就解決了!
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.