写点什么

从好玩到好用:程序员用 AI 提效的那些事儿 | 京东云技术团队

  • 2023-09-14
    北京
  • 本文字数:1742 字

    阅读完需:约 6 分钟

从好玩到好用:程序员用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: 行云流水线错误日志分析

已落地平台,针对流水线运行错误日志,选中错误内容右键进行智能分析,输出分析结果,辅助解决错误问题,节省平台运营成本。




作者:京东零售 王英杰

来源:京东云开发者社区 转载请注明来源

发布于: 刚刚阅读数: 5
用户头像

拥抱技术,与开发者携手创造未来! 2018-11-20 加入

我们将持续为人工智能、大数据、云计算、物联网等相关领域的开发者,提供技术干货、行业技术内容、技术落地实践等文章内容。京东云开发者社区官方网站【https://developer.jdcloud.com/】,欢迎大家来玩

评论

发布
暂无评论
从好玩到好用:程序员用AI提效的那些事儿 | 京东云技术团队_AI_京东科技开发者_InfoQ写作社区