ChatGPT提效:告别CRUD

前言

随着AIGC的发展以及大语言模型的成熟,各种AI应用眼花缭乱,以至于我们看到各种新奇的应用都会产生焦虑,我有一天会不会被淘汰?且看后文分析。AIGC的发展与逐渐成熟已经是无可逆转的局势,既然我们打不过为何不加入进来,今天这篇文章将带领你掌握使用ChatGPT帮助我们程序员提高工作效率,摆脱焦虑。

本人java CRUD boy一枚,在工作搞了五六年CRUD,实在觉得CRUD没什么技术含量,但是呢,实际业务开发中哪里有那么多高并发、有技术难度的场景,整个产品百分之八十都是CRUD堆积起来的,那么作为一个老鸟实在不想花费太多精力在CRUD上面,于是自己探索了一套关于CRUD的提示词分享给所有苦于CRUD的小伙伴,帮助你们摆脱CRUD噩梦,解放出更多的时间提升自己的技术,多研究技术、算法。自己能力提升了,可以跳槽或者晋升,拿到更多的薪资难道不香吗?

提效成果

相信大家更关心的是看了本篇文章,我究竟能提升多少效率,能够节省多少时间。

维度效率提升
时间成本50%
代码量80%

本人在工作开发中使用了半年多的时间,结合自身的情况,我来讲讲提效成果,保守一点估计可以在做CRUD开发过程中提效50%,可以节省将近一半的时间。前提是你对我下面总结的提示词非常熟悉,应用恰当。从代码量的角度,可以帮我们自动生成80%的代码,剩余20%需要我们自己完善以及优化AIGC提供给我们的代码。从这个角度来看,A现阶段AI大模型根本无法替代我们的工作,剩余20%是非常重要的。

适用人群

所有苦于CRUD的程序员,本提示词适用于所有语言。
本人不建议新手或者连CRUD都写不好的初级程序员去看本篇文章。为什么?AI提效本质上不是替代你,而是你的小弟帮你干活而已,如果你自己的CRUD都没搞明白,让AI写出的代码大概率也是垃圾代码,bug百出,建议这部分人群先写好CRUD代码,夯实基础,而不是想的是投机取巧。

使用模型

首推ChatGPT的GPT4、GPT4o,GPT3.5也是可以的,只是效果差一点,这个是本人使用半年多下来效果比较好的大模型。相比之下,科大讯飞、文心一言、通义千问在我这套提示词下效果不太理想。具体的模型小伙伴可以以实践为准,毕竟大模型在不断发展。

正文开始

需求说明

在我们日常开发中,我相信公告管理这个功能需求还是比较常见的,今天以此为例,来展示一下,这套提示词是如何应用的。具体的需求就不过多阐述,直接看下文的原型图理解。
公告分页查询
新增公告

ChatGPT示例对话

由于对话太长,我将完整对话放在了当前博客对应的资源下,在此博客的顶部查看。也可以通过百度网盘下载本地查看。
下面是关键部分的截图

  • 理解需求
    在这里插入图片描述
  • 数据库建模
    在这里插入图片描述
    如果不对,提出修改意见,让AI修改。数据库建模越准确,生成的数据库建表语句就越准确。
    在这里插入图片描述
  • 数据库建表语句
    在这里插入图片描述
  • 设计restful接口
    这里是AI的分水岭,有一些大模型是无法理解需求给出准确的接口数,建议多试几次,或者直接更换更好的大模型。
    在这里插入图片描述
    在这里插入图片描述
    如果有不对的地方,提出意见,让AI修正。这里修正完能让后续代码生成更准确
    在这里插入图片描述
  • 业务功能设计
    在这里插入图片描述
    给出意见修正业务流程,可以让生成的代码更符合预期
    在这里插入图片描述
  • 功能代码生成
    在这里插入图片描述

提示词汇总

  • 假如你是一位Java架构师,现在我正在开发大数据项目中的数据服务相关功能,我希望你能协助我去开发数据服务相关功能,接下来我会给你一份需求文档,你先充分分析与理解需求文档内容,为我们后续开发做准备,我再介绍一下我的开发环境,我的电脑操作系统是windows 10,也安装好了MySQL 5.7数据库、JDK 11、redis6.0和IDEA。我已经做好研发准备了,你准备好了吗?(可选加上当前项目的技术栈)

确保需求文档完整,条理清晰,否则可能会有很大误差

  • 根据上文给的业务需求,我希望你按照业内数据库建模规范和最佳实践给我写一份数据库建模表格文档,包含表名、列名、数据类型、约束条件、描述、枚举值(用数字代替、用大写英文替代,保持简洁,所有枚举项列举完全),ID是自增的,针对是否判断字段使用bit类型,标准字段:create_time、update_time、creator、modifier、version,针对从属表无需加上标准字段。

  • 如果ChatGPT给出的数据库建模文档不符合要求,可以通过提示词让它修正,例如:上文中数据建模文档中有几个问题,第一个问题,XXX。第二个问题,XXX。请求按照我的要求修正。

  • 第一步工作我们已经完成了,我在电脑上已经安装好了MySQL 5.7,请按照前面生成的数据库文档进行表结构设计,在进行表结构设计时,需要考虑到查询性能以及数据的规模和增长趋势,以确保系统能够承受未来的数据访问负载,并且相关的字段comment注释、表comment注释、需要建立索引的也需要加上。然后建表语句和索引语句告诉我。要求:不要采用外键关联、表加上存储引擎和字符集。

  • (可选) 我需要每张表5条左右的测试数据,覆盖了每个字段的情况,特殊字段符合中文风格要求。每条SQL语句都可以直接执行,以插入测试数据。

  • 按照前面业务需求和生成的表结构来分析,如果需要你设计一份标准的基于RESTful接口文档,每一个接口都需要进行分析和论证必要性和设计合理性。预计你会出多少个接口?

  • 将你设计的完整的接口文档发给我,每个接口包括接口描述、HTTP 方法、请求路径、请求参数、响应参数等

  • 上面你给出的接口文档有几个问题需要更正一下,第一个问题,XXX。第二个问题,XXX。

  • (可选)接下来我们就进入开发环节,我希望的技术栈是Java17+SpringBoot+MyBatisPlus+Lombok的方式进行开发,你可以一步一步教我如何搭建一个项目吗?

  • (可选)基于前面你生成的4张数据库表结构,接下来我们建实体类,我要求:import语句、lombok、字段注释、类注释都需要

  • (可选)基于前面你生成的4个实体类,接下来我们建Mapper层接口,要求继承MyBatisPlus的BaseMapper类,但是不需要写任何接口

  • 接下来我们就进入开发环节,我现在项目使用的技术栈是Java11+SpringBoot2.3.12.RELEASE+MyBatis Plus3.5.0+Lombok+swagger的方式进行开发,项目开发过程中所有返回给前端的数据都需要定义vo视图对象。基于你提供表设计,我已经通过idea的MybatisX插件生成了基本的entity、mapper、service。基于前面的需求文档和插件生成的基础代码以及设计的接口文档,接下来我们开始进行业务功能设计,要求:包含业务处理流程,先不用告诉我代码实现(备选如果业务比较复杂用到设计模式可以使用这段:基于前面的需求文档和插件生成的基础代码,接下来我们开始进行业务功能设计,要求:利用面向对象的设计原则和设计模式,确保业务功能的实现既健壮又易于维护,先不用告诉我代码实现)

  • 根据上面的业务功能设计,先给出新增公告功能的完整实现代码,要求:关键代码加上注释。

  • (可选)基于前面实现的EmployeeService,接下来我们要为所有方法进行单元测试用例的编写,要求:核心代码需要加上适当的中文注释,结合spring-boot-starter-test实现。我需要EmployeeService类中所有的方法写出可测试的单例,并不是一个Demo

提示词核心思想

整体上围绕我们日常开发功能的思路一步步的引导AI去理解我们用的技术栈、需求、数据库设计、接口文档、功能处理流程、代码规范、单元测试等等。上面给出的提示词只是抛砖引玉,理解如何引导AI后,你可以写出自己的提示词。

结尾

从上面的示例以及提示词可以看出,通过AIGC可以帮我们生成大部分CRUD代码,但是项目有一些细节是不太好很方便的告诉大模型的,我们需要自己完善,毕竟我们想要所有功能都交给大模型处理是不现实的。
感谢大家看完这篇文章,希望这篇文章能够帮助拥抱AI,帮助大家提高工作效率,节省时间提升自己能,人人都能成为百万架构师,共勉。

友情提醒:针对使用频率不高的小伙伴,可以国内免费的大模型、GPT3.5做替代,没必要花那么多钱开GPT4的会员。

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

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

相关文章

在 macOS 上安装 Docker

在 macOS 上安装 Docker 可以通过以下步骤完成: 1. 检查系统要求 确保你的 macOS 版本符合 Docker 的系统要求。Docker Desktop for Mac 需要 macOS 10.15 或更高版本。 2. 下载 Docker Desktop 打开你的浏览器,访问 Docker 官方网站。点击“Downloa…

java的有参构造方法

java的有参构造方法和无参构造方法类似,区别是构造方法名称里后面跟着一个括号,括号里是参数的定义 示例代码如下 class student4{private String name;private int age;public student4(String n,int a) {namen;agea;System.out.println("调用了…

软件构造 | Equality in ADT and OOP

软件构造 | Equality in ADT and OOP 🧇1 Three ways to regard equality 1.1 Using AF to define the equality ADT是对数据的抽象, 体现为一组对数据的操作 抽象函数AF:内部表示→抽象表示 基于抽象函数AF定义ADT的等价操作&#xff0…

vscode结合GitHub Copilot编码

已集成工具 Azure Data StudioJetBrains IDEsVim/NeovimVisual StudioVisual Studio Code 目录 GitHub Copilot & Visual Studio Code 前提条件 Getting code suggestions Showing alternative suggestions Showing multiple suggestions in a new tab Accepting pa…

海南聚广众达电子商务咨询有限公司可信吗?

在数字化浪潮席卷全球的今天,电商行业已成为推动经济增长的重要力量。而在这个领域中,海南聚广众达电子商务咨询有限公司凭借其专业、精准的服务,在抖音电商领域独树一帜,成为行业的佼佼者。 海南聚广众达电子商务咨询有限公司自…

07-appium常用操作

一、press_keycode 1)方法说明 press_keycode方法是appium的键盘相关函数,可以实现键盘的相关操作,比如返回、按键、音量调节等等。也可以使用keyevent方法,功能与press_keycode方法类似。 # KeyCode:各种操作对应的…

【fastapi】定时任务管理

在FastApi框架搭建的WBE系统中如何实现定时任务的管理? Python中常见的定时任务框架包括Celery、APScheduler和Huey。以下是每个框架的简单对比和示例代码。 1.Celery: 分布式任务队列,适合处理长时间运行的任务。 # 安装celery # pip install celery# …

【Axure教程】移动端多选图片上传

在移动端应用中,提供多选图片上传功能对于用户体验和功能性具有重要意义,尤其是在像微信、微博等社交媒体平台上。 例如用户可以快速上传多张图片进行分享,发布相册或创建图文并茂的动态;卖家可以一次性上传多个产品图片&#xf…

劲爆!Kimi月之暗面可以接入微信,智能升级, 打造个性多Agent(二)

前言 在当今这个快速发展的AI时代,抖音推出了一个名为“扣子Coze”的工具,帮助用户快速、低门槛地搭建属于自己的AI机器人。本文将详细介绍如何使用扣子Coze配置自己的AI Agent,并展示其在多个平台上的应用。 如何使用多个Agent 搭建更加智…

chatgpt: linux 下用纯c 编写一按钮,当按钮按下在一新窗口显示hello world

用这个程序模板,就可以告别只能在黑框框的终端中编程了。 在 Linux 环境下使用纯 C 语言编写一个按钮,当按钮按下时,在一个新窗口显示 "Hello World"。我们可以使用 GTK 库来实现这个功能。GTK 是一个用于创建图形用户界面的跨平台…

鸿蒙开发组件:【FA模型的Context】

FA模型的Context FA模型下只有一个Context。Context中的所有功能都是通过方法来提供的,它提供了一些featureAbility中不存在的方法,相当于featureAbility的一个扩展和补全。 接口说明 FA模型下使用Context,需要通过featureAbility下的接口…

大模型日报|4 篇必读的大模型论文

大家好,今日必读的大模型论文来啦! 1.ChatGLM 技术报告:从 GLM-130B 到 GLM-4 AII Tools GLM 技术团队介绍了 ChatGLM,这是一个不断发展的大语言模型系列。本报告主要关注 GLM-4 语言系列,包括 GLM-4、GLM-4-Air 和 …

r2frida:基于Frida的远程进程安全检测和通信工具

关于r2frida r2frida是一款能够将Radare2和Frida的功能合二为一的强大工具,该工具本质上是一个Radare2的自包含插件,可以帮助广大研究人员利用Frida的功能实现对目标进程的远程安全检测和通信管理。 Radare2项目提供了针对逆向工程分析的完整工具链&…

好用的抖音短视频矩阵系统推荐:筷子剪辑,超级编导。抖去推

目前短视频矩阵行业如火如荼,为大家推荐几款比较好用的短视频矩阵系统。 第一款叫做筷子剪辑,由筷子科技开发,网页版应用工具,无需下载安装 主打视频剪辑,支持一键成片,视频发布等,&#xff0…

为什么要把ip和mac地址绑定

IP地址和MAC地址绑定是一种网络安全措施,主要用于以下几个方面: 1. **防止IP地址冲突**:在局域网中,如果两个设备被分配了相同的IP地址,将会导致IP地址冲突,影响网络的正常使用。通过将IP地址与MAC地址绑定…

RS-232协议详解:深入理解与实际应用

RS-232协议详解 RS-232协议,也称为推荐标准232,是一种用于串行通信的标准协议。它在计算机和外围设备之间的通信中广泛应用。本文将详细介绍RS-232协议的各个方面,包括其历史、工作原理、信号类型、连接方式、应用场景等。希望通过这篇文章&a…

Linux 远程使用 Nvidia 显卡加速桌面

(首发地址:学习日记 https://www.learndiary.com/2024/06/nvidia-remote-desktop/) 朋友们,大家好!我是来自淘宝网学习日记小店的 learndiary,专注于 Linux 服务领域。今天,我想和大家分享一些…

靠这套车载测试面试题系列成功哪些20k!

HFP测试内容与测试方法 2.3 接听来电:测试手机来电时,能否从车载蓝牙设备和手机侧正常接听】拒接、通话是否正常。 1、预置条件:待测手机与车载车载设备处于连接状态 2、测试步骤: 1)用辅助测试机拨打待测手机&…

24年计算机等级考试22个常见问题解答❗

24年9月计算机等级考试即将开始,整理了报名中容易遇到的22个问题,大家对照入座,避免遇到了不知道怎么办? 1、报名条件 2、报名入口 3、考生报名之后后悔了,不想考了,能否退费? 4、最多能够报多少…

计网课设-发送TCP数据包

一、效果展示 二、代码实现 import nmap import socket import tkinter as tk from tkinter import messagebox,Listbox from threading import Thread#获取自身IP,从而确定当前局域网范围 def get_ip_address():#创建了一个socket对象,socket.AF_INET表…