中国科大在拓扑相变量子模拟上取得重要进展
中新社合肥12月18日电(记者吴兰)面包圈和茶杯拓扑等价,这是由于他们都有一个穿透的洞,而洞的个数是一个拓扑性质。拓扑物态是当前物理研究的
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 们为我们打工!
关键词:
中新社合肥12月18日电(记者吴兰)面包圈和茶杯拓扑等价,这是由于他们都有一个穿透的洞,而洞的个数是一个拓扑性质。拓扑物态是当前物理研究的
生活小妙招,学点总javascript是好。据@中国消防,近日在山东潍坊,一老人被蓝宝石大戒指卡住手指,无奈到消防站求助。原以为需要剪断戒指才能
《仙剑奇侠传一》可谓是仙侠剧的鼻祖,和难以复制的经典之作。自从这部剧播完之后,才有了更多仙侠影视剧。当年这部剧是根据同名网游改编的影
假药是违法行为,是否判刑视案情而定,可以取保候审。《刑法》第141条规定,个人犯生产、销售假药罪的,生产、销售假药足以危害人体健康的。处
商业秘密是一种技术信息与经营信息。技术信息与经营信息,既可能以文字、图象为载体,也可能以实物为载体,还可能存在于人的大脑或操作方式中
12月15日C2M板块较上一交易日下跌0 69%,嘉欣丝绸领跌。当日上证指数报收于3168 65,下跌0 25%。深证成指报收于11358 11,上涨0 32%。C2M板块
【大河财立方消息】12月15日消息,农民日报社发起2022中国农业企业500强评价活动,经信息汇集、严格审核、专家评议等程序,形成了《2022中国农
可转债市场持续扩容,沪深两市可转债存量规模已超8000亿元。同时,在可转债市场连续三年表现优异后,年内迎来震荡,中证转债指数下跌7 35%。不
是中成药的名字。麝香可活血开窍,蛇胆,各种炎症引起的无名肿毒,疼痛发热等。,片仔癀黄灿用于急性病放心。扁桃体发炎。清热,有的用胶囊或
格隆汇12月14日丨奥精医疗(688613 SH)公布,公司于2022年12月13日收到嘉兴华控出具的《关于减持奥精医疗股票的结果告知函》,截至2022年12月
油炸小吃的品种可分为油炸水果、油炸蔬菜和油炸肉类。油炸水果包括:油炸香蕉、油炸苹果、油炸橙子、油炸芒果、油炸梨、油炸菠萝等。炒蔬菜有:
)为防止药品和医疗器械价格异常波动,黑龙江省鸡西市市场监管局近日组织各县(市、区)上下联动,在做好日常监管监测的同时,在全市范围内开
1、小孩抚养费的计算标准:支付抚养费的一方有固定收入的,抚育费一般可按其月总收入的20%至30%的比例给付。负担两个以上子女抚育费的,比例可
12月12日,景顺长城核心招景混合A最新单位净值为0 6946元,累计净值为0 6946元,较前一交易日下跌1 27%。历史数据显示该基金近1个月上涨1 34%
同花顺F10数据显示,2022年12月12日明冠新材(688560)新增“POE胶膜”概念。 入选理由是:2022年7月15日互动易回复:截止2021年末,公
一年是2,利率比如信用贷款,还不如货币基金。元首付款:通过财务公司贷款2万元。给你按7分算,这是基准利率上调5,含5年。贷款期限36个月,三
2022年12月10日公告发布
证券代码:688237 证券简称:超卓航科 公告编号:2022-025 湖北超卓航空科技
通化金马(000766)12月07日在投资者关系平台上答复了投资者关心的问题。投资者:英国剑桥大学研究显示,熊去氧胆酸(UDCA)可以关闭ACE2受体,阻止
盐湖股份(000792)12月06日在投资者关系平台上答复了投资者关心的问题。投资者:董秘您好,请问公司使用的吸附法提锂,采购的吸附材料,是如何
11月30日盘中消息,10点11分S*ST佳通(600182)触及跌停板。目前价格13 49,下跌5 0%。其所属行业汽车零部件目前下跌。领涨股为浙江世宝。该股
无线充电正在使电动汽车(EV)超越运输的定义。如果能够解决复杂的电缆和布线问题,未来的电动车将提供更多的功能和用途。Solace Power 公
近两年的显示行业,Mini LED的火爆程度大家有目共睹,从平板、到笔记本再到电视,各大行业头部品牌纷纷加入了Mini LED阵营。
3月15日晚,央视315晚会报道了软件下载平台“高速下载”陷阱的问题。记者在PC6下载站、桔梗下载站、腾牛网、ZOL软件下载等平台下载软件时都出现类似的问题。
AMD近日正式发布了3D V-Cache缓存堆叠版的锐龙7 5800X3D,拥有4MB二级缓存、32MB三级缓存、64MB外置缓存,合计达100MB,号称可击败i9-12900K,重夺最强游戏处理器称号。