从好玩到好用:程序员用AI提效的那些事儿 | 京东云技术团队
本片内容是【AI思维空间】ChatGPT纵横编程世界,点亮智慧火花的续作,主要记录组内开发小伙伴儿们在开发过程中的实际应用案例,记录典型案例,尽量不要和其他人重复,以解决开发过程中的实际问题为主,设计、方案、编码、测试、集成、部署等等;
目的:贡献最佳实践,分享心得,共同成长!
Prompt提问万能公式
案例1 基于ChatGPT进行资源排期
1、首先进行拆分,分为周一到周五和周六周日
2、引导chatGPT进行排班
案例2 让chatGpt帮忙看下正则表达式的含义
在看代码的过程中,发现有个地方使用了正则表达式进行规则匹配,但是没有注释标明规则含义,所以使用chatGpt帮忙看下规则含义。
chatGpt不仅返回的了匹配的规则含义,还详细介绍了每个字符具体含义,very nice。
案例3 基于chatGpt写分段写入csv文件的程序
给chatgpt提要求,要求10000行数据放在一个csv文件中,并将文件名称进行编号处理。
变更条件,事先不知道总行数有多少条,让chatGpt重新写一段程序实现。
案例4:基于ChatGPT辅助开发
告诉ChatGPT,我想开发一个JavaBean转JSON的IDEA插件,让ChatGPT给出详细的步骤和代码。
案例5: 提问者需要具备鉴别能力
狼牙山五壮士的姓名
chatgpt可以一本正经的胡说八道,提问者不能全信。
案例6: spring ioc框架学习
太复杂了,尽然无法支持,就来一个简单的
再完善下,并帮忙写一个测试案例测试下看
亲自验证测试是否正确,能否跑起来
虽然能够跑起来,但是测试结果和其预期不一致,分析错误产生的原因是注解inject使用错误,正确使用时需要对注解添加元注解@Retention,其作用可以简单理解为设置注解的生命周期。
@Retention 注解传入的是 RetentionPolicy 枚举,该枚举有三个常量,分别是 SOURCE、CLASS 和 RUNTIME
三者区别如下:
SOURCE 代表着注解仅保留在源级别中,编译器将Java文件编译成class文件时将之遗弃。
CLASS 代表着注解被保留在class文件中,JVM加载class文件时将之遗弃。
RUNTIME 代表着标记的注解会由JVM保留,因此运行时环境可以使用它。
总结:chat-gpt对于技术细节可能无法把控,但是总体的程序框架及逻辑验证还是没有问题的。
案例7:字符处理、文本格式化
JOSN 串的格式化与压缩:
案例8:JSON串转JAVA Bean 集成lombok
提示词迭代过程如下:
以下Json串给生成 JAVA实体类,要求使用lombok 简化代码,并添加明确的代码注释,以Markdown语法出 {
“migrateTime”: 1689609010640, //迁移时间
“sourceProductId”: 1000000000, //迁移源productId
“targetProductIdAndSkuIdsMap”: {//迁移目标productId与skuId的关系
“2000000”: [//目标product1, skuIds
1,
2,
3
],
“3000000”: [//目标product2, skuIds
4,
5
]
}
“venderId”:100, //商家ID
“categoryId”:123 //三级类目ID
}
结果输出如下(对尾行注释并不满意,继续优化试试):
去除尾行注释输出结果:
案例9:JAVA8 流语法扁平化处理流
以下提示词目的是收集map的所有value里面对应的 long 类型的值集合。
**提示词:**在JAVA8 中如何通过流,将Map<Long, Set<Long>> targetProductIdAndSkuIdsMap 中的 value 收集到一个 set 集合里面,JAVA代码请以Markdown输出
结果输出如下: 在Java 8中,不能直接使用`flatmap`将集合的元素合并到一个集合中,因为`flatMap`操作是将多个流合并成一个流,而不是将元素合并到一个集合中。实际上,我们需要使用`flatMap`将每个集合的元素映射到单独的流,然后再使用`collect`操作将这些流合并到一个集合中。
以下是修正后的Java代码示例:
import java.util.Map; import java.util.Set; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { Map<Long, Set<Long>> targetProductIdAndSkuIdsMap = ...; // 初始化 targetProductIdAndSkuIdsMap Set<Long> skuIds = targetProductIdAndSkuIdsMap.values() .stream() .flatMap(Set::stream) .collect(Collectors.toSet()); System.out.println(skuIds); } }
这个代码可还行?^_^
案例10: 行云流水线错误日志分析
已落地平台,针对流水线运行错误日志,选中错误内容右键进行智能分析,输出分析结果,辅助解决错误问题,节省平台运营成本。
作者:京东零售 王英杰
来源:京东云开发者社区 转载请注明来源

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
一文了解袋鼠云在实时数据湖上的探索与实践
近日,袋鼠云大数据引擎专家郝卫亮,为大家带来了《袋鼠云在实时数据湖上的探索与实践》主题分享,帮助大家能了解到什么是实时数据湖、如何进行数据湖选型及数据平台建设数据湖的经验。 如今,大规模、高时效、智能化数据处理已是“刚需”,企业需要更强大的数据处理能力,来应对数据查询、数据处理、数据挖掘、数据展示以及多种计算模型并行的挑战。 因此,袋鼠云基于自研的一站式大数据基础软件——数栈提出相应的实时数据湖解决方案,能够兼容Iceberg、Hudi等数据湖平台。实时数据湖提供了多样化的分析能力,而不限于批处理、流处理、交互式查询和机器学习;提供了ACID事物能力,可以更好的保障数据质量;提供了完善的数据管理能力,包括数据格式、数据schema等;此外,实时数据湖还提供了存储介质可扩展的能力,支持HDFS、对象存储等。从而大大节省了数据存储成本、提升了开发效率,能够更快更好地挖掘数据价值。 该方案特点在于CDC数据实时入湖,能够保障技术自主可控、全增量一体化、分钟级时延、链路短、对业务稳定性无影响。 • 实时性高:CDC数据对实时性要求高,数据新鲜度越高,往往业务价值越高 • 历史数据量大:数据库的...
- 下一篇
基于Spring事务的可靠异步调用实践 | 京东物流技术团队
SpringTxAsync组件是仓储平台组(WMS6)自主研发的一个专门用于解决可靠异步调用问题的组件。 通过使用SpringTxAsync组件,我们成功地解决了在仓储平台(WMS6)中的异步调用需求。经过近二年多的实践并经历了两次618活动以及两次双11活动,该组件已经在我们的所有应用中稳定运行并成功应用于各种业务场景。 该组件的主要功能是实现可靠的异步调用。在异步任务的执行过程中,我们能够确保任务的可靠性,即使在出现异常情况或重要机器重启等不确定因素时,仍能保证任务的正常执行,并且能够满足我们的业务需求。 SpringTxAsync组件的成功应用为我们的仓储平台(WMS6)提供了稳定可靠的异步调用支持。在接下来的内容中,我们将详细介绍该组件的设计原理和技术特点,以帮助读者更好地理解和应用该组件。 异步调用的场景 异步的本质就是一种Fire-And-Forget模式,它在编程中常用于两种场景的应用: 提升请求的响应速度,减少不必要的同步等待时间。通过将某些操作以异步方式执行,可以避免在请求处理过程中发生长时间的阻塞等待,从而提高系统的吞吐量和响应性能。 实现逻辑的解耦,将纯实时逻辑...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS关闭SELinux安全模块
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7,8上快速安装Gitea,搭建Git服务器