【AI思维空间】ChatGPT纵横编程世界,点亮智慧火花 | 京东云技术团队

news2024/10/6 12:22:26

作者:京东零售 王英杰

概述

该文档记录云交易开发小伙伴儿们在开发过程中的实际应用案例,记录典型案例,以解决开发过程中的实际问题为主,涵盖设计方案、编码、测试、集成、部署等等。

目的:贡献最佳实践,分享心得,共同成长!

1. 怎样构造Prompt

1.1 基本构成

一般情况下,Prompt可以分成以下4个部分:

  • Instruction: 指引,即要解决的问题类型
  • Context: 上下文,即问题的背景
  • Input Data: 输入数据,即具体的问题
  • Output Indicator: 输出指示,即对输出的一些约束

举例:

Instruction: 向我说明前端所需技术栈 Context: 假设你是一个前端面试官,我是一个本科毕业的应届生 InputData: 向我说明现阶段前端行业要求应届生掌握的技能情况 Output Indicator: 用尽量简单易懂的语言

1.2 设计原则

  • 清晰,切忌复杂或歧义,如果有术语,应定义清楚。
  • 具体,描述语言应尽量具体,不要抽象或模棱两可。
  • 聚焦,问题避免太泛或开放。
  • 简洁,避免不必要的描述。
  • 相关,主要指主题相关,而且是整个对话期间,不要东一瓢西一瓤。

举例:

✅有效 Prompt 总结一下《鲁滨逊漂流记》所讲内容? # 聚焦、相关 北京最地道的本土餐厅有哪些? # 具体、相关

❌无效 Prompt 告诉我关于这个世界为什么存在? # 宽泛、开放 可以帮我完成工作吗? # 开放 你好 # 无目的、不聚焦

2. 最佳实践案例集

案例1 开发过程中快速优化代码

(1)提供代码片段,并提出自己的诉求级具体优化方向

(2)进一步提出具体的优化方向

(3)获得优化后的代码根据业务场景进行加工,测试

  • 获取优化后代码整合进工程中
  • 根据业务场景优化代码,将抓取的异常Exception改为NullPointerException(优化场景:此处由于一致性问题,查商品主数据时存在商品主数据写服务数据还未同步到读服务的场景,报空指针,需抓取后做重试)
  • 优化后自测无问题即可

案例2 运用chatGPT对JVM进行优化

案例3 SQL优化及排错

1)帮忙检查下sql有没有问题,这个是要将业务表新增几个字段

它帮忙给识别到一些问题

按照它提示的问题修改;

我让它将三条sql合并到一条,要不然jed会提示让合并,所以让GPT帮忙合并。

还是很智能的,jed的sql检查也都顺利通过了,能帮我们review sql的正确性,降低错误操作的风险。

案例4 GPT按需生成工具类

你是一个程序员,帮忙编写一段程序,要求输入一串字符串,中间“,”分隔,最多有50个片段,然后需要校验这些片段是否有重复的,重复的放在set里面返回;

GPT给我生成的是python代码;

重新提问:你是一个Java程序员,帮忙编写一段程序,要求输入一串字符串,中间“,”分隔,最多有50个片段,然后需要校验这些片段是否有重复的,重复的放在set里面返回

再次进行优化:将50作为一个变量,不要写死,重新生成一个方法;

总结: 在项目中有需要校验一个字符串50个渠道,逗号分割,判断渠道是否重复的需求,所以通过一步步提问,让GPT帮忙生成一个工具类,这样我们在项目中可以直接使用改工具类进行快速的验证。

案例5 云交易加密服务需部署到抖音服务器上,需从零开始搭建部署环境。

背景:由于长时间使用京东Jdos部署代码,对于Linux的一些指令已经忘记。故使用ChatGPT指导我从零搭建JAVA部署环境。

1)下面我给ChatGPT的指令

指令1:CentOS7安装JAVA环境,然后通过nohub命令后台启动java jar包并把日志输出到 douyin.txt文件中

ChatGPT回答如下:

指令2:到官网下载再安装JDK太麻烦了,帮我将上述安装jdk的步骤换成yum方式安装

ChatGPT回答如下:

2)下面参考它给的指令安装JDK8,然后检测JDK版本,成功安装了。

3)接下来我把jar包上传到一个指定的目录,创建目录命令我都忘了。。。问问ChatGPT吧。

4)把开发好的jar包上传到已经创建好的目录中

5)执行nohup命令

6)浏览器访问swagger成功了

6)使用感受,几分钟就解决了我的问题。避免了我一步步百度,去翻CSDN还容易找到错误的答案。极大地节省了我的时间。因为后续还有几台机器要部署,已经把命令和步骤整理成文档沉淀下来。

案例6 jar包停止进程Linux命令咨询

上次用chatgpt帮我查询linux搭建java环境,后台部署jar包的命令,这次jar包更新需要替换jar包。我又咨询了如何停止jar包所在的进程。

1)执行第一个命令, ps -ef | grep jar 命令查找所有正在运行的jar包进程

2)执行第二个命令,kill -9 PID,这里我的jar包的进程PID是32723

3)重新部署jar包服务,这个命令之前已经问过ChatGPT并沉淀下来了,直接拷贝过来使用。

4)检查是否部署成功

案例7 假如图灵奖得主、软件工程圣经《人月神话》作者还活着,他会如何看待ChatGPT提升研发效能?

今天思考ChatGPT如何提升研发效能这个问题。正当我为这个问题绞尽脑汁的时候。突然灵光一现,为什么不问ChatGPT帮我思考用ChatGPT如何提升研发效能这个问题呢?

就像武侠电视剧和电影中的那样,剧中武侠高手左脚踩右脚就能腾空而起一样。那我问ChatGPT如何用ChatGPT提升研发效能肯定也是可行的。理论是可行的,那么OK让我们开始实践。

首先我们给ChatGPT设置一个角色。在软件工程提效领域非常资深的大师有谁呢?我第一时间就想到了人月神话的作者——布鲁克斯 FrederickP.Brooks.Jr

1)下面我们给它一个指令:假如你是《人月神话》作者FrederickP.Brooks.Jr.,你需要以它的思维和角度思考我想你提问的问题。如果你理解了,请回复好的。

我们可以看到它回复了好的。

2)接下来我们给它第二个指令:现在ChatGPT非常厉害,你认为如何用它来提升研发效能?

它以软件工程师的角度回答了ChatGPT技术可以从自动化测试、语言翻译、代码优化、自动文档化这几个角度来提升研发效能。

1和3这两个已经想到了,2目前不需要,第四个自动文档化确实没有想到。接下来我们继续结合第4条自动文档化继续深入追问。

3)接下来是第三个指令:针对第四条自动文档化,请你编写一个Java的查询学生姓名和年龄的Controller接口,然后为这个接口生成提供给前端的API文档。

下面它直接编写了一个API接口,并直接用swagger来生成api文档了。

swagger接口

结果不是很理想,我们再问问它是否还有其他用ChatGPT提升研发效能的建议

4)接下来是第四个指令:请你以《人月神话》作者FrederickP.Brooks.Jr.的角度提出10条用ChatGPT提升研发效能的建议。

最后它帮我们生成了10条建议

下面把建议附赠给大家:

1.通过提供自然语言处理的能力,Chat GPT可以帮助团队成员更高效地进行沟通和协作,减少误解和沟通不畅的情况。

2.ChatGPT可以被用来智能化项目管理。例如,在团队中使用Chat GPT聊天机器人来跟踪进度、分配任务和协调团队成员的工作。

3.通过了解开发者的意图和需求,Chat GPT可以提供更加智能化和个性化的开发辅助工具,如代码提示、错误检查等。

4.ChatGPT可以利用机器学习和数据挖掘技术,从已有的代码库中提取最佳实践、代码片段和模板,并向开发者推荐最佳实践和代码重用。

5.ChatGPT可以作为一个知识库,帮助开发者更快地获取所需信息。例如,ChatGPT可以回答关于某项技术或库的问题,或提供代码样例等。

6.在开发过程中,Chat GPT可以自动进行代码评审和测试,及时提供反馈和纠正错误,帮助开发者更早地发现和解决问题。

7.ChatGPT可以自动分析代码库中的重复代码、遗留代码和低效代码,提供优化建议,并减少代码维护负担。

8.ChatGPT可以帮助开发者进行数据分析和可视化,提供交互式探索和信息呈现功能,从而更好地理解数据和模型。

9.通过使用Chat GPT生成自然语言描述的方式,可以将机器学习模型的结果更加易读易懂地呈现给非技术人员,并提高沟通效率。

10.最后,Chat GPT可以被用来开发智能化的应用程序,如聊天机器人、智能客服等,从而更好地服务用户。

案例8 使用ChatGPT帮忙查找bug

使用mybatis判断String字符串为空的条件表达式,我一开始写成 || 了。自己看了半天也没看出问题。询问ChatGPT一眼帮我找出来了。

案例9 重构代码AI插件探索

idea安装插件【NexChatGpt】

1、在实际的开发中,对代码里面相识的两个类,进行抽象重构。

可以直接生成两个类的抽象父类,可以供参考

目前这个插件,有时候会出现问题,还需要重启idea。

有时候提示让贴上自己的代码。。。

免费提问30次。。。

还有些不稳定。。。

案例10 生成一个随机获取ip的算法

小试牛刀,成功搞定

使用随机算法获取一个ip

以ip作为入参,成功搞定我的需求

案例11 帮忙写一个简单的spring的ioc框架

太复杂了,尽然无法支持,就来一个简单的

再完善下,并帮忙写一个测试案例测试下看

亲自验证测试是否正确,能否跑起来

虽然能够跑起来,但是测试结果和其预期不一致,分析错误产生的原因是注解inject使用错误,正确使用时需要对注解添加元注解@Retention,其作用可以简单理解为设置注解的生命周期。

@Retention 注解传入的是 RetentionPolicy 枚举,该枚举有三个常量,分别是 SOURCE、CLASS 和 RUNTIME

三者区别如下:

SOURCE 代表着注解仅保留在源级别中,编译器将Java文件编译成class文件时将之遗弃。

CLASS 代表着注解被保留在class文件中,JVM加载class文件时将之遗弃。

RUNTIME 代表着标记的注解会由JVM保留,因此运行时环境可以使用它。

总结:chat-gpt对于技术细节可能无法把控,但是总体的程序框架及逻辑验证还是没有问题的。

案例12 生成 linux 常用命令思维导图,使用markdown语法输出

(该案例可以用于任何思维导图的使用中,提高写思维导图的效率,提示: 思维支持markdown文件导入)

案例13 给项目结构/模块/类命名,命名简单了。

Martin Fowler 提出了一个经典的关于命名的语言:“一个好的命名就像是好的魔法,它可以让事情变得清晰易懂。”这个语言表达了好的命名在代码中的重要性,良好的命名可以帮助读者更快地理解代码的意图和功能,提高代码的可读性和可维护性。同时,精确的命名也可以减少代码中的歧义和错误,使代码更加健壮。

以电商商品系统为例,给提供一个 DDD项目模块命名样例

案例14 字符处理、文本格式化

JOSN 串的格式化与压缩:

案例15 添加代码注释/代码评审/询问代码设计思路

ChatGPT生成代码注释,以提高代码的可读性和可维护性。

代码的可读性很重要,因为代码是由人编写和维护的。当代码可读性差时,它

将很难理解和修改,这将导致代码的可维护性和可扩展性受到影响。特别是大

家都是团队合作,如果代码的可读性很差,必然影响到团队里的其他人,也非

常不便于扩展。

ChatGPT进行代码评审,以提高代码的质量和可靠性。

你还可以通过使用ChatGPT来进行代码评审。代码评审是指通过检查代码来发现和

修复错误、缺陷和不良实践的过程。ChatGPT进行代码评审可以帮助开发人员发现

代码中的潜在问题,并提出改进建议,从而提高代码的可靠性。

ChatGPT辅助进行代码逻辑重构

复杂代码可以按需进行重构,结合设计模式,可以给ChatGPT下达按设计模式重构代码的指令。

ChatGPT辅助源代码阅读 ,以提高源码阅读功底。

案例16 对于新概念的学习,可以层层递进,举例子。

案例17 本文诗意命名的由来

ChatGPT的命名能力真的是无可挑剔,自然语言的处理处理能力、理解能力太强大了!

作者:京东零售 王英杰

内容来源:京东云开发者社区

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/531716.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

案例6:Java社区志愿者服务系统设计与实现开题报告

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

全面升级:知否AI问答场景导航功能震撼登场

今日,知否AI问答平台推出全新的场景功能,为用户提供更全面、高效的智能问答服务,再也不用担心找不到适合自己的场景入口了。 此次升级涵盖了50多个场景,包括论文助手、公司文案、营销文案、多语言翻译、行政公文、科研课题、招投…

bat脚本、dos命令

bat脚本 bat脚本就是DOS批处理脚本,就是将一系列DOS命令按照一定顺序排列而形成的集合,运行在windows命令行环境上。这个文件的每一行都是一条DOS命令 在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.…

服务器信息收集

#Version:1.2 #Modify Date:2013-05-21 #说明: #该脚本可以获取计算机名,域名,IP地址,操作系统版本,CPU名称单颗CPU内核数量*CPU个数,内存大小(GB),单块磁盘大小,计算机序列号,制造商,计算机型号 #该脚本先将计算机信息输出到txt文件中&…

浅谈Gradle构建工具

一、序言 常见的项目构建工具有Ant、Maven、Gradle,以往项目常见采用Maven进构建,但随着技术的发展,越来越多的项目采用Gradle进行构建,例如 Spring-boot。Gradle站在了Ant和Maven构建工具的肩膀上,使用强大的表达式语…

千万不要乱操作了!医院机房这么做真高级

各类中心数据机房广泛分布于银行、库房、交通、电信、医院、教育等行业。系统故障和人为操作不当可能导致各种业务中断或数据丢失,进而影响企业业务的停滞和运行。 医院管理3大难题和挑战 01.缺乏预警、告警机制 医院在使用自动化监控系统之前,主要靠人…

springboot足球赛事安排球队管理系统

系统主要有球队赛程安排,包括比赛数据,球员信息,球员实时数据,球队纪念品售卖 Spring Boot 是 Spring 家族中的一个全新的框架,它用来简化Spring应用程序的创建和开发过程。也可以说 Spring Boot 能简化我们之前采用SS…

09——path的使用

一、path 是 svg 中最强大的图形 用于定义一个 路径所有命令均允许小写字母。大写 表示绝对定位,小写 表示 相对定位 (相对于上一个结束的坐标)d 属性中包含所有路径的点,可根据命令缩写 自由组合 命令 名称 …

Windows 11 反转鼠标和触摸板滚动方向

如果在使用 Windows 10 设备时不喜欢鼠标或触摸板的「下滚上移,上滚下移」方式,可以通过调整「Windows 设备」或更改注册表 2 种方式来反转滚动方向。 下面就为大家介绍详细步骤。 Windows 11反转触摸板滚动方向 要通过调整「Windows 设置」反转触摸板…

企业为什么需要一套CRM系统进行销售管理

随着市场竞争的日益激烈和消费者的日益挑剔,企业要想在市场中取得优势地位,就需要通过有效的销售管理来提高销售业绩。而CRM系统作为企业实现销售管理的最佳选择,越来越受到企业的重视和关注。 一、CRM系统的优势 1. 提高销售流程管理效率 C…

车载AUTOSAR和OSEK关系及网络管理的异同(NM)

AUTOSAR和OSEK关系及网络管理比较 AUTOSAR和OSEK关系及网络管理比较 AUTOSAR和OSEK关系及网络管理比较AUTOSAR与OSEK的关系AUTOSARAUTOSAR架构和标准的目标是:AUTOSAR架构的主要特点是:AUTOSAR标准有四个核心内容: OSEK其特点主要有以下几个方…

基于SSM+JSP的高校学生健康档案管理系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

【ChatGPT】ChatGPT-5 到底有多强?

目录 1、ChatGPT-5 到底有多强2、技术方向3、系统特点4、系统应用5、ChatGPT-5为什么停止训练? 1、ChatGPT-5 到底有多强 OpenAI 最新的自然语言处理技术 ChatGPT-5 近期发布,拥有过去版本的一系列升级和改进。那么,在 ChatGPT-4 强大的基础…

STM32 调试TM7711驱动原理图驱动代码

本文使用工程代码如下 (1条消息) STM32调试TM7711驱动原理图驱动源代码,参考如下博客,有原理图设计资源-CSDN文库 背景 项目选用TM7711,还是很令人吃惊的,主要是有如下几个理由 第一就是便宜 第二精度高 STM32的ADC精度不够…

STM32 学习笔记_8 定时器中断:输入捕获

输入捕获 输入引脚发生跳变时,cnt的值会被记录到ccr中,可以用于测量pwm信号等。配置成pwmi模式还可以同时测量频率和占空比。主从触发模式可以实现硬件全自动测量。 高级定时器和通用定时器才有的功能。 这个功能只能测数字信号,对于a信号…

【k8s概念】一文搞懂k8s核心概念,吐血整理~两万字~!!!

文章目录 1. k8s简介1.1 k8s概念1.2 作用/功能 2. k8s集群搭建方式3. k8s核心组件3.1 Master Node(控制平面组件)3.2 Worker Node 4. k8s核心概念4.1 容器4.2 工作负载——Pod4.3 Pod控制器4.3.1 ReplicationController(RC)4.3.2 ReplicaSet(RS)4.3.3 De…

四大关键举措高效管控企业税务风险

税务风险是指企业在税务管理中,由于涉税行为因未能正确有效地遵守税法规定,而导致企业出现经济损失以及企业形象受损。企业税务风险的来源主要有两方面:第一,企业的纳税行为不符合税收法律法规的规定或对相关的税务政策未能全面理…

隐私计算论文合集「多方安全计算系列」第一期

当前,隐私计算领域正处于快速发展的阶段,涌现出了许多前沿的SOTA算法和备受关注的顶会论文。为了方便社区小伙伴学习最新算法、了解隐私计算行业最新进展和应用,隐语开源社区在GitHub创建了Paper推荐项目awesome-PETs(PETs即Priva…

生态伙伴 | 硬创大赛新起航!携手华强科创广场,助力硬科技创业者

01 大赛介绍 中国硬件创新创客大赛始于2015年,由深圳华秋电子有限公司主办,至今已经成功举办八届,赛事范围覆盖华南、华东、华北三大地区,超10个省市区域。 大赛影响了超过45万工程师群体,吸引了35000多名硬创先锋报…

markdown神器 -Typora使用教程笔记2023最新版

文章目录 前言一、下载安装包和魔法工具二、第一步 选择为所有人安装三、第二步 创建桌面快捷方式四、第四步 安装五、第五步 完成安装六、第六步 取消勾选自动更新七、第七步 将魔法文件放在安装路径的根目录八、第八步 恭喜你,激活完成总结魔法工具获取方式 前言 …