关于chatgpt:AI思维空间ChatGPT纵横编程世界点亮智慧火花-京东云技术团队

35次阅读

共计 4865 个字符,预计需要花费 13 分钟才能阅读完成。

作者:京东批发 王英杰

概述

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

目标:奉献最佳实际,分享心得,独特成长!

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 的命名能力真的是无可挑剔,自然语言的解决解决能力、理解能力太强大了!

作者:京东批发 王英杰

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

正文完
 0