时光

时光的时光轴

寄以时间,予以文字
telegram
github
微信公众号

GPT應用實戰:升級Laravel應用

難以想像,我在日常生活中已經離不開 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類了。

那我能不能試著一股腦都丟給它?

image

image

複製粘貼替換,跑通了!這個你別說,你還真別說!

然後跟著第二個錯誤是:

Undefined constant Illuminate\Http\Request::HEADER_X_FORWARDED_ALL

補充一點告訴它我要做什麼:

image

按照給出的答案,替換變量就行。

不過從這裡你要能感覺到,一般會在路由類裡直接在文件頭就把Illuminate\Http\Request使用上了,死板替換是不可取的

運氣好,直接進安裝界面了:

image

記錄調試過程#

簡單的報錯#

調試的過程遇到一個刪文件時的參數不應該提供null的問題,我看了一下代碼,發現是之前寫的不嚴謹,沒有做是否傳入了文件的判斷,加上就行。

image

為產品做翻譯#

改著改著發現之前多語言的英文棄坑了,沒覆蓋全,便來試試能不能讓它完成這件事。

我只能說,省力省錢。但是不是很省時。

為什麼呢?

image
image

剛開始,你一看,哎喲看起來不錯,但是一旦內容過長

image

當你說繼續讓它繼續輸出的時候,就開始自己編故事了,這一段輸出出來的內容是我源文件沒有的。

並且代碼格式並不會原封不動,偶爾會出現丟棄的情況。不過好在翻譯質量真的不差,並且保留了變量格式,這真的是太安逸了。

在文件頭寫上

The file was created by outtime and aided with ChatGPT.

代表我偷懶了。(這句話也是它給的)

增加一個多選框#

image

image

別說了,真的有人會不喜歡這種感覺嗎?

這算是我除了讓它幫我寫文案之外,第一次用它來幫我完成代碼。之前也看到過很多朋友分享他們用 GPT 來完成專案大部分代碼的經歷,但是我總擔心完全生成出來的代碼,應用到產品時問題會比自己寫的還要多。

不過就:在搜索引擎搜索半天都總結不出一條可用的代碼,將自己的需要告訴GPT等個幾秒就出來可用的代碼的這種體驗,我只能說太看得起自己了😂

這是未來每個人都必須掌握的工具

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。