Note-51408-14

Token ID: 1

ERC-721 1 Transfers

Metadata

{
  "title": "GPT应用实战:升级Laravel应用",
  "tags": [
    "post",
    "教程"
  ],
  "summary": "难以想象,我在日常生活中已经离不开Copilot和ChatGPT了,它们打的一套组合拳实在是安逸的不行,我写简单的程序时基本就是打完注释,然后一直TAB一直TAB,遇到问题,复制报错给GPT,然后根据回复搜搜资料,然后继续下一个程序。 我认为这对资本家是及其利好的日常编程是非常节…",
  "sources": [
    "xlog"
  ],
  "external_urls": [
    "https://outti.me/update_laravel_with_gpt"
  ],
  "date_published": "2023-03-28T05:30:19.895Z",
  "content": "难以想象,我在日常生活中已经离不开Copilot和ChatGPT了,它们打的一套组合拳实在是安逸的不行,我写简单的程序时基本就是打完注释,然后一直`TAB`一直`TAB`,遇到问题,复制报错给GPT,然后根据回复搜搜资料,然后继续下一个程序。\n\n我认为这对~~资本家是及其利好的~~日常编程是非常节省时间的。但是在开始之前,也需要阐明我的观点:\n> 人工智能只能`辅佐`,它只能`帮助`你学习。帮助你在本来已经涉猎的领域走的更好。\n\n正巧手头有一个项目,闲来无事想把它的框架从`Laravel6`升级到`Laravel9`,跨了几个大版本,如果按照以往,基本只能选择6、7、8、9一步一步来,不过这次我倒想看看能否借助人工智能,帮助完成这一步到位的任务。\n\n# 先设定一个Prompt\n在将相关依赖调整/替换至适配Laravel9的版本后,我遇到的第一个问题就是**白屏**\n\n按照惯例,先看日志,但是很奇怪,Laravel自带的日志没生成,Nginx也没报错,反正就是啥也不输出。想着有没有可能是缓存的问题,便执行`php artisan cache:clear`,收到了一个报错:\n```\nCall to undefined method App\\Exceptions\\Handler::render()\n```\n跟着找了一下,是绑定错误事件的代码出了问题,我尝试问它,两个版本有什么区别,它告诉我`Exceptions`类已经替换为`Throwbale`类了。\n\n那我能不能试着一股脑都丢给它?\n\n![image](ipfs://bafybeigp2ly2zsqq73vgvb7pgrp474t6ygpakdh2uxt3qt5pznbgu4hmim)\n\n![image](ipfs://bafybeiakuio3cx6kvas3zk43sbxyhli2ujuo6775743cqifpzdf6fpjqjq)\n\n复制粘贴替换,跑通了!这个你别说,你还真别说!\n\n然后跟着第二个错误是:\n```\nUndefined constant Illuminate\\Http\\Request::HEADER_X_FORWARDED_ALL\n```\n补充一点告诉它我要做什么:\n\n![image](ipfs://bafybeihuz566vtcvamqodzubidyge4xxx4szsdego7wgsruv2w3d62y2c4)\n\n按照给出的答案,替换变量就行。\n\n不过从这里你要能感觉到,一般会在路由类里直接在文件头就把`Illuminate\\Http\\Request`使用上了,死板替换是**不可取的**。\n\n运气好,直接进安装界面了:\n\n![image](ipfs://bafybeih6a22ww3x3tc6hk4kqctl4xa5x3xdxnpzyz3yu34canpbme5tmuy)\n\n# 记录调试过程\n## 简单的报错\n调试的过程遇到一个删文件时的参数不应该提供`null`的问题,我看了一下代码,发现是之前写的不严谨,没有做是否传入了文件的判断,加上就行。\n\n![image](ipfs://bafybeigw5yatb3hbvoru367mj6ef63zfj46mbkavk435vtzt6gbbi42quu)\n\n\n## 为产品做翻译\n改着改着发现之前多语言的`英文`弃坑了,没覆盖全,便来试试能不能让它完成这件事。\n\n我只能说,**省力省钱**。但是不是很省时。\n\n为什么呢?\n\n![image](ipfs://bafybeietzxl2ley3y34lhopnxfuthsgtjpygald5loxumdbkfxpqz2dghy)\n![image](ipfs://bafybeie3igpacu7upmocwodvgltgiyuzs4t4y2bsg2pagx52shpg4fnufi)\n\n刚开始,你一看,哎哟看起来不错,但是一旦内容过长\n\n![image](ipfs://bafkreid3sntejbol2eu5hxuldxritlhrkyfqojbl3fieip3yd7mmye73ta)\n\n当你说`继续`让它继续输出的时候,就开始自己编故事了,这一段输出出来的内容是我源文件没有的。\n\n并且代码格式并不会**原封不动**,偶尔会出现丢弃的情况。不过好在翻译质量真的不差,并且**保留了**变量格式,这真的是太安逸了。\n\n在文件头写上\n```\nThe file was created by outtime and aided with ChatGPT.\n```\n代表我偷懒了。(这句话也是它给的)\n\n## 增加一个多选框\n\n![image](ipfs://bafybeigcnwotoafgla4rl6f4jav5maferxz5vsd57ayymj3t7smmnfgp7y)\n\n\n![image](ipfs://bafkreigtydqtlrdktbdyejo75shl5z2qqglgukvzchqcinyydwt6gcxqye)\n\n别说了,真的有人会不喜欢这种感觉吗?\n\n这算是我除了让它帮我写文案之外,第一次用它来帮我完成代码。之前也看到过很多朋友分享他们用GPT来完成项目大部分代码的经历,但是我总担心完全生成出来的代码,应用到产品时问题会比自己写的还要多。\n\n不过就:`在搜索引擎搜索半天都总结不出一条可用的代码,将自己的需要告诉GPT等个几秒就出来可用的代码`的这种体验,我只能说太看得起自己了😂\n\n**这是未来每个人都必须掌握的工具**",
  "attributes": [
    {
      "value": "update_laravel_with_gpt",
      "trait_type": "xlog_slug"
    }
  ]
}