难以想象,我在日常生活中已经离不开 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等个几秒就出来可用的代码
的这种体验,我只能说太看得起自己了😂
这是未来每个人都必须掌握的工具