Copilot 与 ChatGPT,让程序员如虎添翼 —— 让 AI 们为我们打工!
时间:2022-12-20 19:59:06
Copilot 来了,程序员会失业吗?ChatGPT 又来了,程序员会失业吗?程序员本来就焦虑,最近似乎越来越焦虑了。在 Copilot 问世时,我感觉自己退化成了工具人:《我退化成一个只会敲 Tab 键的工具人了!》。如今 ChatGPT 又来了,这次我是什么感觉呢?感觉真的 Google 和 StackOverflow 已经不好用了。
(资料图片)
不过,经过一段时间对 Copilot 的使用,我的心态已经平和了许多,不再担心失业了。回头来看,其实,它们都是效率工具,它们不是要干掉程序员,而是更好地帮助程序员。众所周知,程序员可以改变世界,那么,借助 Copilot 和 ChatGPT,程序员的自我感觉更棒了!可以更加肆无忌惮地在未知领域里自由探索了!
探索 Vue前几天,我开始对一个 Vue 项目做一些迭代优化,这是我第一次接触 Vue 项目。我需要对该 Vue 项目进行保护,添加登录功能,详细过程见《使用 IdentityServer 保护 Vue 前端》。我在这一篇日志里提了一下,说自己参考 Vue 的官方文档,给 Vue 应用添加的方法,在 vue-router 的导航守卫里,按照 vue-router 的官方文档去拿这个方法,居然是 undefined!通过 Google 搜索了很久,都是这种官方文档类似的说明(然而并不管用!),于是我去 StackOverflow 上提了这个问题:https://stackoverflow.com/questions/74769607/how-to-access-vues-methods-from-navigation-guard,这个问题到现在,也没有其他人(除了我自己)回复。
于是我抱着试一试的心理,在 ChatGPT 上问了一下,没有想到立即得到了详细的解答:
它的思路是,将方法添加在 Vue 的 prototype 中,这样,在导航守卫里就能使用 this关键字去访问全局方法了!这真的是比 Google 好用呀!
探索 Mybatis plus我对 Java 也不熟,它的生态中很多组件,我听上去感觉就是拼写错误。昨天在 Mybatis plus 上就栽了跟头。事情是这样的,我和同事们业余做了一个项目(有兴趣一起来玩的同学们欢迎联系哈),目前刚开始,正在做一个 3D 世界里的角色可以选择自己的皮肤颜色的功能。
https://brickverse.vercel.app/
或者这个链接:https://brick.cat
前端部署在 Vercel 上,后端部署在 Okteto 上。后端服务是一个 Java 项目,我在这个项目里添加了 UserPreference 这个数据表,用来保存用户的偏好设置,详细 api 文档见:https://brickverse-user-service-gracewen1.cloud.okteto.net/doc.html#/brick/%E5%BD%93%E5%89%8D%E7%94%A8%E6%88%B7%E5%81%8F%E5%A5%BD%E7%AE%A1%E7%90%86/createOrUpdateUserPreferenceUsingPOST。
用户可以有很多设置,我的设想是每个用户可以有多个 key-value 键值对,但同一个用户,同一个 key,只能有一条记录。为了简单,就提供一个接口给到用户添加或者更新偏好。我的设想是,对于同一个 userId, key,如果没有记录就添加,有的话,就更新 value。我对 Mybatis plus 不熟,但是在写的过程中,点出了一个 saveOrUpdate 方法,就认为这正是我要的,保存或者更新嘛。我在 Flyway 脚本里将 userId 和 key 设置成唯一索引,心想,当我试着保存一个记录时,首先尝试插入,碰到已有记录的错误时,该方法就转而调用 update。
CREATE TABLE `user_preference` (`id` bigint NOT NULL AUTO_INCREMENT,`user_id` varchar(100) NOT NULL,`key` varchar(100) NOT NULL,`value` varchar(10000) NOT NULL,`create_time` datetime DEFAULT NULL,`update_time` datetime DEFAULT NULL,PRIMARY KEY (`id`),UNIQUE KEY `user_id_key` (`user_id`,`key`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
public boolean saveOrUpdatePreference(String userId, UserPreferenceDto dto) {var key = dto.getKey();var value = dto.getValue();UserPreference userPreference = new UserPreference();userPreference.setUserId(userId);userPreference.setKey(key);userPreference.setValue(value);return this.saveOrUpdate(userPreference);}
没想到,实际上,当想要更新这个 value 时,仍然报了唯一索引冲突错误,而没有进行更新。这时,我才知道,这个 saveOrUpdate,在不传入主键时,总是尝试插入。这时我用 Google 搜索如何让 saveOrUpdate 根据自定义查询条件去判断是否已存在呢?发现似乎只有国人在用 Mybatis Plus,找到的链接全是 csdn 对 saveOrUpdate 的泛泛简介,没有一篇文章讲解高级用法。
这时我抱着试一试的想法,去问了一下 ChatGPT,没想到它立刻马上给予了详细的说明,不仅有代码示例,还有温馨提示,主要指出我的代码问题在于调用 saveOrUpdate 时,没有去数据库里查询已有记录。
你看,它给的代码示例,在调用 saveOrUpdate 之前,先使用 QueryWrapper 去查询了数据库里的现有记录,然后再设置值。看到这里我秒懂了,我需要在调用 saveOrUpdate 之前,根据 userId 和 key 来查询一下数据库中的记录。这时,我想,能不能把这个查询做为参数直接扔给 saveOrUpdate 呢?我试着在 saveOrUpdate 的第一个参数后加了一个逗号,这时, Copilot 就自动帮我补全了代码,我一看,还正是我需要的条件呢!
我按了一下 Tab 键,提交了这个改动:
在 cicd 流水线跑完后,我再试了一次,重新选择皮肤颜色,更新成功了!
总结我感觉自己从此可以摆脱面向 Google 和 StackOverflow 编程的习惯了,转而面向 ChatGPT 和 Copilot 编程。ChatGPT 和 Copilot,可以让程序员在尝试新的领域时,变得更加有效率。就像朋友圈有朋友留言说的,ChatGPT 和 Copilot 可以互相结对编程,让 AI 们为我们打工!
标签:
最新文章推荐
- Copilot 与 ChatGPT,让程序员如虎添翼 —— 让 AI 们为我们打工!
- 长城科技董秘回复:公司目前主要原材料是电解铜及铜杆,电解铜及铜杆原材料成本占公司主营业务成本的比例超过90%
- 快讯:泰康国证公共卫生与健康ETF净值下跌3.35% 请保持关注
- 支付宝上线“健康防疫”专区 集合多家互联网医院提供在线问诊等便民服务|热文
- 热推荐:放心借逾期二天延迟还款会上征信吗
- 阿里效应破灭,杭州某盘单价直降三万,有码农计划“借点钱”提前还贷
- 环球今日报丨安逸花网贷逾期七年征信有什么影响
- 世界新动态:温碧霞为11岁养子庆生,穿露背泳衣与儿子贴面吻,被网友批不适合
- 中坚科技股东出让5%股份持股不足一年获益超5000万 天天观焦点
- 炒外汇如何快速入门?
- 世界聚焦:国家发改委:在元旦春节等重要时段加大猪肉储备投放力度
- 买房贷款工行的利率是多少,2019各大银行贷款利率-全球快看点
- 快资讯丨肠癌能活多久,尽量不要和癌症患者密切接触
- 海底捞(06862.HK):就分拆特海股份独立上市宣布进行实物分派 天天新消息
- 诈骗80万可以判刑8年吗
- 全球快报:华润三九董秘回复:公司感冒灵颗粒功能主治:解热镇痛。用于感冒引起的头痛,发热,鼻塞,流涕,咽痛等
- 成飞集成董秘回复:公司应收账款按应回款节点进行收回,年底应收账款余额请您关注公司后续披露的年报_世界观天下
- 关注:中装建设: 东兴证券关于深圳市中装建设集团股份有限公司预计2023年度实际控制人及亲属为公司及控股子公司银行等金融机构授信提供担保暨关联交易的核查意见
- 阳普医疗董秘回复:公司在致力于长期可持续发展,持续优化主营业务,提升上市公司质量的同时_全球快资讯
- 世界视点!11月份中长期贷款景气度较高 市场主体预期持续改善
- 【天天时快讯】小财看房|越秀天恒·怀山府取证近一年 网签只有10套房
- 小米13同规格!moto X40支持IP68防尘防水:总经理亲自潜水测试
- 道恩股份: 监事会关于注销部分股票期权及回购注销部分限制性股票的核查意见
- 大秦铁路: 大秦铁路第六届监事会第十二次会议决议公告 天天快报
- 每日热门:探路者董秘回复:问题回复请参考之前的特殊时期请您做好防护
- 南国置业董秘回复:公司控股股东利用自身资源和资本优势,积极推动南国置业业务的发展 全球快播
- 市值超500亿元 兴发集团二季度净利预增10%-16%
- 提前结募!首单清洁能源公募REITs鹏华深圳能源REIT正式发行
- 郑州:多措并举促消费、扩投资、活出口 全力以赴夺取首季开门红
- 中央一号文件再聚焦乡村振兴:农村物流“最后一公里”要来了
X 关闭
资讯中心

2022-05-20
2021-10-18

2021-10-18

2021-10-18
X 关闭
热点资讯
-
1
杏花绽放催热“赏花经济” 吸引了大量游客前来旅游
-
2
上海籍阳性夫妻内蒙古密接、次密接者出现初筛阳性情况
-
3
内蒙古二连浩特:市民非必要不出小区、不出城
-
4
重庆一名潜逃24年的持枪抢劫嫌犯落网
-
5
销售有毒、有害食品 郭美美获刑二年六个月
-
6
陕西新增6名确诊病例1名无症状感染者 西安全面开展排查管控
-
7
《加强建设中国风湿免疫病慢病管理》倡议书:建立基层医院独立风湿科
-
8
游客因未购物遭导游辱骂?九寨沟:相关部门已介入调查
-
9
郭美美再入狱!销售有毒有害食品获刑2年6个月
-
10
2020年黄河青海流域冰川面积和储量较十年前缩减
-
11
5名“摸金校尉”落网 内蒙古警方破获一起盗掘古墓葬案