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又来了,程序员会失业吗?程序员本来就焦虑,最近似乎越来越焦虑了。在Copilot问世时,我感觉自己退化2022-12-19
网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天后上报给征信机构,因为有些借贷机构可2022-12-19
受害人或其近亲属遭受精神损害,造成严重后果的,可以要求加害人给予精神损害赔偿。因侵权致人精神损害,但未造成严重后果,受害人请求赔偿精2022-12-18
美国CPI超预期下行,美联储抗通胀成功了?别急,这个核心指标说不!2022-12-17
截至2022年12月16日收盘,华夏银行(600015)报收于5 3元,上涨1 15%,换手率0 17%,成交量22 02万手,成交额1 16亿元。2022-12-17
公司动态公司近况我们最近完成了公司现场跟踪调研,对于公司近期运营情况、渠道规划策略、产能投放及资本开支情况进行了梳理更新。罗莱生活在22022-12-16
2022年12月15日19时30分,联想moto召开了以“心无畏,赴山海”为主题的新品发布会,正式发布了motoX40、motoG53和motoS30Pro潘通限量版(非凡2022-12-16
没有什么意外的话,你的朋友应该会被判个三年左右哦,而且还要被罚款!团伙盗窃量刑标准:一、盗窃数额较大,法定刑在三年有期徒刑以下的量刑2022-12-16
1、看外观。一般好的优质阿胶颜色是琥珀色或棕黑色、有角质样物质,颜色透亮、外表平滑、没有气孔或油孔、边角无缺损、厚薄均匀;假冒劣质的阿2022-12-15
西部矿业(601168)12月15日在投资者关系平台上答复了投资者关心的问题。2022-12-15
12月14日,广发沪港深新起点股票A最新单位净值为1 2821元,累计净值为1 3671元,较前一交易日上涨0 38%。历史数据显示该基金近1个月上涨3 81%2022-12-15
近日,镇平县召开培育壮大市场主体工作推进会。镇平县政府副县长王培庆参加会议并讲话。会议传达了11月15日全县优化营商环境调度会议精神,通2022-12-14
12月14日盘中消息,10点3分鸣志电器(603728)触及涨停板。目前价格32 26,上涨9 99%。其所属行业电机目前上涨。领涨股为鸣志电器。该股为LED,2022-12-14
一层屏障镀层,能有效防止腐蚀因素的渗透。这是。千克每吨。如果可以,决定价格的因素有很多。当锌的含量上升到一定程度时,铝是铝合金的主要2022-12-13
翰宇药业(300199)12月11日在投资者关系平台上答复了投资者关心的问题。2022-12-13
12月12日江苏自贸区板块较上一交易日下跌1 48%,栖霞建设领跌。当日上证指数报收于3179 04,下跌0 87%。深证成指报收于11399 14,下跌0 89%。2022-12-13
格隆汇12月12日丨中欣氟材公布,公司近日收到特定股东中玮投资、董事及高管袁少岚、高管施正军、袁其亮出具的《股份减持计划告知函》,中玮投2022-12-12
(原标题:独家资金:早盘主力买入前10股)12月12日大单金额流入前十名个股如下(以下数据取自10点50分):股票简称DDE大单金额(元)DDE大单净量DDE散2022-12-12
截至2022年12月9日收盘,平高电气(600312)报收于8 25元,较上周的8 5元下跌2 94%。本周,平高电气12月5日盘中最高价报8 65元。12月92022-12-09
截至2022年12月8日收盘,恒实科技(300513)报收于12 06元,下跌4 06%,换手率5 86%,成交量15 82万手,成交额1 92亿元。12月8日2022-12-08
国药控股(01099 HK)继续回升,早盘升约8%,创去年10月下旬以来新高。日前,机构股东BlackRock再度增持,下半年以来其累计增仓近2个百分点。瑞信指2022-12-07
今年5月19日,中国旅游日主会场设在平遥古城。活动当天,我省推出古建有画说公益数字文创藏品计划,面向社会免费发行5款共计5万份的山西古2022-05-20
早春时节,行走张垣大地,空气清爽,河面解冻,绿意萌发。一幅优美的生态画卷徐徐铺展,既是大自然的馈赠,更是张家口对生态环境潜心保护的2022-03-21
3月19日,由省卫生健康委组织开展的冀康周末大讲堂系列活动举行开班仪式和第一季度培训。活动采取视频会的形式举行,共有250余家机构、26002022-03-21
2500元拿下‘碳排放管理师’证书!考个家庭教育指导师,不仅可以科学育娃,还可改变婚姻家庭状况!收纳整理师不限学历门槛,考证月2022-03-21