如何让 ChatGPT 充当细致入微的 Java 代码优化工? | 得物技术
2023-06-13 09:18:21 时间
让他扮演一个 Java 软件开发者
第一步:我们让 ChatGPT 扮演一个 Java 软件开发者的角色
- 提示词插件:地址:ChatGPT BingChat GPT3 Prompt Generator App (Streamlit) - a Hugging Face Space by Kaludi
Java Software Developer Java 软件开发者
I want you to act as a Java software developer. I will provide you with a list of commands and you will implement them. My first request is "I need help creating a Java application."
准备一个不太好的 Java 代码示例
第二步:我们准备一个写得不太好的 Java 代码示例
- Bad Java Example:
public int calculateUsingIfElse(int a, int b, String operator) { int result = 0; if (operator.equals("add")) { result = a + b; } else if (operator.equals("subtract")) { result = a - b; } else if (operator.equals("multiply")) { result = a * b; } else if (operator.equals("divide")) { if (b == 0) { throw new IllegalArgumentException("Cannot divide by zero"); } result = a / b; } else if (operator.equals("modulus")) { if (b == 0) { throw new IllegalArgumentException("Cannot divide by zero"); } result = a % b; } else if (operator.equals("power")) { result = (int) Math.pow(a, b); } else if (operator.equals("square root")) { if (a < 0) { throw new IllegalArgumentException("Cannot take square root of negative number"); } result = (int) Math.sqrt(a); } else if (operator.equals("absolute value")) { result = Math.abs(a); } else if (operator.equals("negate")) { result = -a; } else { throw new IllegalArgumentException("Invalid operator"); } return result;}
让他优化这段代码
第三步:让 newBing(ChatGPT)优化这段代码
- 并且要求「整理成比较优雅的代码结构,比如自动拆分子函数、降低 if 和循环嵌套,甚至实现部分设计模式。」
// 定义一个接口,表示不同的运算策略public interface OperationStrategy { int apply(int a, int b);}
让他写个单测
第四步:我们最后让他收下尾——写个单测吧
import org.junit.Test;import static org.junit.Assert.*;
最后,数据安全是最大的问题,不要乱贴数据到 ChatGPT,尤其是涉及后端核心存储账户密码、公司核心业务数据、部门核心战略规划等。因为首先,ChatGPT 会使用你的问答语料进行训练;其次,你无法预料在什么 Prompt 提示词下,LLM 模型会讲你无意中泄露的信息回答出去。
瑕不掩瑜,ChatGPT 为代表的 LLM 模型,在充当我们无所不知的老师、充当不知疲倦的通用 Util 代码编写者这些角色时能极大的提高我们的开发效率,尤其在数据分析、前端、单测、重构等领域。
就像文章第一步写的一样,ChatGPT 就像是一个百变身份,你可以让他扮演任何角色,而每一个角色都能在这个角色范围内帮助我们获得更美好的生活。
更有意思的用法期待大家的发掘。
相关文章
- java除零异常_JAVA异常处理
- 一篇文章搞定java中的垃圾回收机制面试题[通俗易懂]
- Java私活300元,完成JavaWeb志愿者管理系统(四)
- java图书馆新地址_值得你关注的16个顶级 Java 开源项目!小白必看
- java标识符是什么_Java 标识符「建议收藏」
- java无法获取服务器上路径,JAVA获取服务器路径的步骤
- 【说站】java switch语句是什么?
- javah 详解_java entity
- native2ascii java_Native2Ascii和Ascii2Native的Java实现
- Java项目分享-适合 Spring Boot 初学者的 OA 开源项目
- Java—java.util.calendar类详解「建议收藏」
- java webservice接口开发教程_JAVA入门教程
- java使用xquery_如何使用Java XQuery
- 国内“谁”能实现chatgpt,短期穷出的类ChatGPT简评(算法侧角度为主),以及对MOSS、ChatYuan给出简评,一文带你深入了解宏观技术路线。
- ChatGPT测评:它是一个好用的翻译工具吗?(Chatgpt哪里可以下载)
- Java 连接 MySQL 数据库简易实现(java连mysql)
- Java异步MySQL:开启数据处理新时代(java异步mysql)
- 技术的融合突破极限:Java与Redis的技术融合(java与redis)
- Java编程操作Oracle数据库(java操作oracle)
- 持久化Java持久化技术与Redis高级应用(redis高级之java)
- 失效 Redis Java过期失效:实现有效数据管理(redisjava过期)
- 清理Redis Java过期数据的自动清理实现(redisjava过期)
- Java编程实现MySQL表备份(java备份mysql表)
- 实现Java实现Redis锁的研究与应用(redis锁java)
- Oracle全面支持Java链技术构建数据库应用(java链oracle)
- Java编程与Oracle技术创造技术价值的奥秘(java编程oracle)
- 构建基于Java和Oracle的强大技术栈(java架构oracle)