難以想像,我在日常生活中已經離不開 Copilot 和 ChatGPT 了,它們打的一套組合拳實在是安逸的不行,我寫簡單的程式時基本就是打完註釋,然後一直TAB
一直TAB
,遇到問題,複製報錯給 GPT,然後根據回覆搜搜資料,然後繼續下一個程式。
我認為這對資本家是極其利好的日常編程是非常節省時間的。但是在開始之前,也需要闡明我的觀點:
人工智能只能
輔佐
,它只能幫助
你學習。幫助你在本來已經涉獵的領域走得更好。
正巧手頭有一個專案,閒來無事想把它的框架從Laravel6
升級到Laravel9
,跨了幾個大版本,如果按照以往,基本只能選擇 6、7、8、9 一步一步來,不過這次我倒想看看能否借助人工智能,幫助完成這一步到位的任務。
先設定一個 Prompt#
在將相關依賴調整 / 替換至適配 Laravel9 的版本後,我遇到的第一個問題就是白屏
按照慣例,先看日誌,但是很奇怪,Laravel 自帶的日誌沒生成,Nginx 也沒報錯,反正就是啥也不輸出。想著有沒有可能是緩存的問題,便執行php artisan cache:clear
,收到了一個報錯:
Call to undefined method App\Exceptions\Handler::render()
跟著找了一下,是綁定錯誤事件的代碼出了問題,我嘗試問它,兩個版本有什麼區別,它告訴我Exceptions
類已經替換為Throwbale
類了。
那我能不能試著一股腦都丟給它?
複製粘貼替換,跑通了!這個你別說,你還真別說!
然後跟著第二個錯誤是:
Undefined constant Illuminate\Http\Request::HEADER_X_FORWARDED_ALL
補充一點告訴它我要做什麼:
按照給出的答案,替換變量就行。
不過從這裡你要能感覺到,一般會在路由類裡直接在文件頭就把Illuminate\Http\Request
使用上了,死板替換是不可取的。
運氣好,直接進安裝界面了:
記錄調試過程#
簡單的報錯#
調試的過程遇到一個刪文件時的參數不應該提供null
的問題,我看了一下代碼,發現是之前寫的不嚴謹,沒有做是否傳入了文件的判斷,加上就行。
為產品做翻譯#
改著改著發現之前多語言的英文
棄坑了,沒覆蓋全,便來試試能不能讓它完成這件事。
我只能說,省力省錢。但是不是很省時。
為什麼呢?
剛開始,你一看,哎喲看起來不錯,但是一旦內容過長
當你說繼續
讓它繼續輸出的時候,就開始自己編故事了,這一段輸出出來的內容是我源文件沒有的。
並且代碼格式並不會原封不動,偶爾會出現丟棄的情況。不過好在翻譯質量真的不差,並且保留了變量格式,這真的是太安逸了。
在文件頭寫上
The file was created by outtime and aided with ChatGPT.
代表我偷懶了。(這句話也是它給的)
增加一個多選框#
別說了,真的有人會不喜歡這種感覺嗎?
這算是我除了讓它幫我寫文案之外,第一次用它來幫我完成代碼。之前也看到過很多朋友分享他們用 GPT 來完成專案大部分代碼的經歷,但是我總擔心完全生成出來的代碼,應用到產品時問題會比自己寫的還要多。
不過就:在搜索引擎搜索半天都總結不出一條可用的代碼,將自己的需要告訴GPT等個幾秒就出來可用的代碼
的這種體驗,我只能說太看得起自己了😂
這是未來每個人都必須掌握的工具