如何让chatgpt十分正确的帮咱们编写代码文档和单元测试

  有多少次你专注于编程而忘记了写函数、方法、类的非常简单的代码文档?我不是在问单元测试. 直到我发现ChatGPT可以做到这一点:

除了代码文档,它在编写单元测试方面也做得很好。此外,在最后,我可以要求他为其他想使用我的代码的贡献者生成一个用户友好的文档。在这篇文章中,我将告诉你如何使用ChatGPT来写:

写代码文档
写单元测试
生成你的代码的用户文档

让机器学习使软件开发和我们的软件开发人员的生活更容易。

ChatGPT如何帮助编写代码文档
听起来很简单,问问他就知道了。为了说明这一点,我们实际上需要一个代码例子,要求ChatGPT为我们写。

下面是它写的javascript代码:

// This code generates a random number between 1 and 10
function getRandomNumber() {return Math.floor(Math.random() * 10) + 1;
}// This function checks if a number is even
function isEven(number) {return number % 2 === 0;
}// This function doubles a number
function doubleNumber(number) {return number * 2;
}// This function logs the result of doubling a random even number
function logDoubleOfRandomEven() {const randomNumber = getRandomNumber();if (isEven(randomNumber)) {const doubledNumber = doubleNumber(randomNumber);console.log(`The double of ${randomNumber} is ${doubledNumber}`);} else {console.log(`${randomNumber} is not even. Cannot double it.`);}
}// Call the function to log the result of doubling a random even number
logDoubleOfRandomEven();

一些非常简单的函数,没有什么代码文档让我们了解发生了什么事。,困难的部分已经完成了! 让我们来看看有趣的部分! 我们可以打开ChatGPT的聊天记录,很好地命令他:

为这段代码添加jsDoc,并确保包含代码标签,包括你想要的代码,如下面的截图所示,并在下面留下一些空间来做:

我使用了确保你包括代码标签,因为它有时会在段落中返回代码,所以这告诉他要在代码块中包括代码。你试过了吗?这是我的结果:

/*** Generates a random number between 1 and 10.** @returns {number} A random number between 1 and 10.*/
function getRandomNumber() {return Math.floor(Math.random() * 10) + 1;
}/*** Checks if a number is even.** @param {number} number - The number to check.* @returns {boolean} true if the number is even, false otherwise.*/
function isEven(number) {return number % 2 === 0;
}/*** Doubles a number.** @param {number} number - The number to double.* @returns {number} The double of the input number.*/
function doubleNumber(number) {return number * 2;
}/*** Logs the result of doubling a random even number.*/
function logDoubleOfRandomEven() {const randomNumber = getRandomNumber();if (isEven(randomNumber)) {const doubledNumber = doubleNumber(randomNumber);console.log(`The double of ${randomNumber} is ${doubledNumber}`);} else {console.log(`${randomNumber} is not even. Cannot double it.`);}
}// Call the function to log the result of doubling a random even number
logDoubleOfRandomEven();


现在你没有借口不把你的代码写成大师的样子了很好,是吧?

用ChatGPT编写更好的单元测试
现在,一旦我们记录了我们的代码,是时候进一步提高代码质量并添加一些单元测试了。我们再次去聊天,并要求chatgpt:

使用jest编写单元测试
你不需要再包含代码了,它很聪明,明白自己必须为以前的代码写单元测试。只要确保你一直在同一个聊天室里问它,一直如此

这里是我们令人敬畏的单元测试:

const {getRandomNumber,isEven,doubleNumber,logDoubleOfRandomEven,
} = require('./example');describe('getRandomNumber', () => {test('should generate a number between 1 and 10', () => {const randomNumber = getRandomNumber();expect(randomNumber).toBeGreaterThanOrEqual(1);expect(randomNumber).toBeLessThanOrEqual(10);});
});describe('isEven', () => {test('should return true for an even number', () => {const evenNumber = 2;expect(isEven(evenNumber)).toBe(true);});test('should return false for an odd number', () => {const oddNumber = 3;expect(isEven(oddNumber)).toBe(false);});
});describe('doubleNumber', () => {test('should double a number', () => {const number = 3;expect(doubleNumber(number)).toBe(6);});
});describe('logDoubleOfRandomEven', () => {test('should log the double of a random even number', () => {const consoleSpy = jest.spyOn(console, 'log');const mockedRandomNumber = 4;const expectedOutput = `The double of ${mockedRandomNumber} is ${doubleNumber(mockedRandomNumber)}`;jest.spyOn(global.Math, 'random').mockReturnValueOnce(mockedRandomNumber / 10);logDoubleOfRandomEven();expect(consoleSpy).toHaveBeenCalledWith(expectedOutput);consoleSpy.mockRestore();});test('should log an error message if the random number generated is not even', () => {const consoleSpy = jest.spyOn(console, 'log');const mockedRandomNumber = 3;const expectedOutput = `${mockedRandomNumber} is not even. Cannot double it.`;jest.spyOn(global.Math, 'random').mockReturnValueOnce(mockedRandomNumber / 10);logDoubleOfRandomEven();expect(consoleSpy).toHaveBeenCalledWith(expectedOutput);consoleSpy.mockRestore();});
});

不要完全依赖它,这段代码有时会被破坏,只要拿着它,运行它,如果没有问题就是好的,如果没有问题就重构它,甚至再问他:

这些单元测试是不对的,重新检查它们
这将提供你需要的单元测试,肯定的

用ChatGPT创建用户友好的文档
是时候与我们的伙伴们分享我们的代码了!我们回到聊天室,要求它:写一份用户友好的文档,并提供一些如何使用代码的例子
如果你在同一个聊天室里一直问它,它已经知道你需要什么代码的文档了。生成的文档太长了,不能在这里写,所以我把它分成几个小部分。我非常喜欢chatgpt,因为它是如何组织头文件和代码例子的。

这是它开始的方式,有一个小的介绍:

后来,它进入了使用阶段:

当然,它不知道你将如何导出它以及文件的名称,所以它只是猜测。如果你想要一个更精确的文件,你需要为它提供更多的信息。

正如你所猜测的,它认为这个javascript代码将在nodejs环境中运行,并提供了输入和输出:

标明描述有多好,它能解释你的代码是怎么回事。

最后是代码实例:

例1:生成并加倍一个随机偶数:

例2:生成一个随机数

例3:检查一个数字是否为偶数

例子4:一个数字的两倍

令人印象深刻,对吗?想想看,我们节省了多少时间?不到10分钟,我们就有了代码和用户文档以及单元测试。如果没有ChatGPT的帮助,这需要更多的时间。

使用ChatGPT进行代码文档和测试的好处
简而言之,让我们总结一下这些好处,这些好处可以提高我们的代码质量,节省我们的时间,使我们的工作更容易被别人接受:

ChatGPT有助于自动化编写代码文档的过程,从而形成清晰简洁的文档,易于阅读和理解。这为开发人员节省了宝贵的时间和精力。
ChatGPT可以协助进行单元测试,确保我们的代码经过全面测试,没有错误,并符合行业标准。这有助于提高代码质量。
ChatGPT生成用户友好的文档,使其他贡献者能够轻松理解和使用我们的代码。这确保了文档的一致性,增加了所有用户的可及性。
所有这些好处都促进了团队合作,确保了代码文档的一致性和准确性。

     结论: 拥抱AI辅助的文档和测试以获得更好的结果.总的来说,通过使用ChatGPT,我们可以只专注于编写优秀的代码而不牺牲文档和测试。ChatGPT似乎是一个强大的工具,适用于各种水平和背景的开发人员。无论你是前端开发者还是全栈开发者,它都能帮助你写出符合行业标准的高质量代码,并让所有人都能使用。觉得对您有帮助,请赞一下。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励,也方便你下次能够快速查找,感谢。

如果你想获取该文章配套的视频视频教程以及练手的接口。请狠狠点击下方链接,

并把所需的资料的文章链接发给我即可领取

如果你想获取简历模板+面试技术宝典+求职视频+上千份测试真题,也请狠狠点击下方链接,

并把所需的资料的文章链接发给我即可领取

 

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

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

相关文章

chatGPT如何开启 Browsing 功能,实现即时联网查询?

Openai 为每一个 chatGPT Plus 用户都开放了 Browsing 和 plugins 功能。 前者可以在 ChatGPT 觉得有必要的时候(比如你问它今天的新闻),自动联网查询,后者是第三方开发者开发的插件,数量繁多,可以解决各种…

雷军:小米 13 暂无做半代升级版本计划;微软放宽 Bing 搜索引擎使用限制;.NET 8 发布首个预览版本|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

三星被曝因ChatGPT泄露芯片机密!韩媒惊呼数据「原封不动」直传美国,软银已禁止员工使用......

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—>【计算机视觉】微信技术交流群 明敏 萧箫 发自 凹非寺转载自:量子位(QbitAI) 三星引入ChatGPT不到20天,就发生3起数据外泄事件…

垂直大模型渐入佳境,解码国内首个智能校对领域大模型“蜜度文修”

一枝独秀不是春,百花齐放春满园。 ChatGPT的兴起,引发了全球性的大模型竞赛热潮。走过开始的混沌期,大模型竞技场当前越来越呈现出两条清晰的路线:一是以云服务厂商为代表的巨头们逐鹿的基础通用大模型赛道;二是在基础…

目标检测算法——YOLOv5/YOLOv7改进之结合GAMAttention

>>>深度学习Tricks&#xff0c;第一时间送达<<< 目录 超越CBAM&#xff0c;全新注意力GAM&#xff1a;不计成本提高精度&#xff01; &#xff08;一&#xff09;前沿介绍 1.GAM结构图 2.相关实验结果 &#xff08;二&#xff09;YOLOv5/YOLOv7改进之结…

chatgpt赋能python:Wi-FiPython拦截抓包基础知识

Wi-Fi Python拦截抓包基础知识 Wi-Fi Python拦截抓包的技术可以用于网络安全研究、漏洞挖掘和应用开发等领域中。本文将基于Python语言介绍Wi-Fi Python拦截抓包的基础知识。 前置条件 在学习Wi-Fi Python拦截抓包之前&#xff0c;需要掌握以下知识&#xff1a; Python编程…

WireShark提取特定软件的网络包

WireShark的下载安装以及简单的使用方法这里就不赘述&#xff0c;可以参考&#xff1a; 网络抓包分析工具Wireshark的下载、安装和使用_wireshark下载教程_初见未晚的博客-CSDN博客https://blog.csdn.net/weixin_45054982/article/details/123257808?ops_request_misc%257B%2…

chatgpt赋能python:抓包是什么?

抓包是什么&#xff1f; 当我们在浏览器中访问一个网站时&#xff0c;我们的电脑会向网络服务器发送请求并接收响应。这个过程中&#xff0c;有一些工具可以让我们查看和分析这些请求和响应&#xff0c;其中最常用的就是“抓包”。 抓包就是指截获网络通信过程中的数据包并分…

chatgpt赋能python:Python抓取数据包:如何从网络中提取有用数据

Python抓取数据包&#xff1a;如何从网络中提取有用数据 在数据分析和网络安全中&#xff0c;使用Python抓取数据包是一种常见的技术。Python拥有强大的网络编程能力&#xff0c;可以用于捕获、分析和保存从网络流中提取出的数据。本文将介绍如何使用Python进行数据包捕获&…

【考研复试】某985考研复试英语面试问题汇总(综合面试+英语口语面试)

写在前面的话&#xff1a; 本科是某985Top10&#xff0c;研究生考的是自己院。笔试成绩中等&#xff0c;专业面试倒数第一&#xff0c;机试与英语面试第一。总分在录取的人员名单中倒数第一&#xff0c;稳稳压线上岸。 在准备复试时&#xff0c;我花了1个小时准备机试&#xff…

信息收集(二)

目录 DNS服务器的类型 DNS解析流程 ping / nslookup PING nslookup IP归属查询 如何获取CDN背后的真实IP 什么是CDN CDN的优势 几种访问方式的不同 CDN的配置 常见的CDN服务商 获取CDN背后的真实IP 超级ping 查询子域名 国外访问 DNS服务器的类型 DNS解析流程 pi…

外网信息收集

拿到一个目标&#xff0c;不考虑钓鱼的情况下。如果正常从web入手&#xff0c;至少需要收集以下的信息。 1、公司的域名 2、公司的子域名 3、全资子公司&#xff08;可能从下级单位打上去&#xff09; 4、公司的ip信息&#xff08;大公司可以直接跑C段&#xff09; 一般经过上面…

信息收集------总

前言 前段时间&#xff0c;看了一本书名为《Kali Linux 渗透测试的艺术》&#xff0c;我发现书中第四章信息搜集那部分有些内容不能适应有些内容不能适用国内&#xff0c;这勾起了我想总结一下国内信息搜集的欲望&#xff0c;于是就有了这篇文章。 什么是信息搜集 信息搜集也称…

内网信息收集

目录 域或工作组环境判断 判断当前登录账户为本地账户还是域账户 本机信息收集 获取本机⽹络配置信息 查询操作系统和版本信息 查看系统体系结构 查看安装的软件及版本、路径 查询本机服务信息 查询进程列表 查看本机端口开放情况 查看主机开机时间 查看当前在线⽤…

信息收集工具使用详解

要求&#xff1a;熟练掌握域名收集、子域名、IP地址收集的各种工具的使用&#xff0c;结果写入实验报告 警示&#xff1a;遵纪守法 工具&#xff1a;kail 信息收集 信息收集又称 网络踩点(footprinting)&#xff0c;攻击者通过各种途径对要攻击的目标进行有计划和有步骤的信息…

章节1:信息收集

章节1:信息收集 1 信息收集概览 01 为什么要做信息收集&#xff1f; 渗透测试的流程 确定目标 信息收集 漏洞扫描 漏洞利用 形成报告 信息收集包括的内容 域名信息、IP段、开放的端口、网站架构、文件目录结构、软件版本、WAF、旁站、C段… 分类 域名相关信息IP相关…

03、主动信息收集

第四章 主动信息收集 本篇文章所讲内容&#xff1a; 4.1 主动信息收集的原理 4.2 基于 ping 命令的探测 4.3 基于 Nmap 的扫描方式 4.4 实战 1-使用 scapy 定制数据包进行高级扫描 4.5 实战 2-僵尸扫描 4.1 主动信息收集的原理 4.1.1 主动信息收集的特点 1.直接与目标…

信息收集总结

目录 1.信息收集内容回顾 域名信息收集 ip信息收集 端口服务信息 CMS指纹识别 CDN指纹识别 WAF指纹识别 搜索引擎收集信息 网络空间搜索引擎 目录扫描 Git信息收集 2.kali信息收集工具概览 存活主机识别&#xff1a; DNS分析 IDS/IPS识别&#xff1a; wafw00f:WAF…

2.信息收集概述

1 为什么要做信息收集&#xff1f; 也可以叫做资产收集 或者 踩点。如果没有信息收集&#xff0c;后面渗透测试的范围就很盲目。有可能遗漏很多重要的安全隐患。 信息收集可以帮我们建立一个信息的数据库&#xff0c;明确攻击的范围。精准地做好后面攻击的工作。 比如&#x…

信息收集与运用

目录 一.实验目的 二.实验原理 三.实验内容 一.收集信息 二.猜解密码 三.密码强度检测 源码 测试用例 程序输出结果​编辑 ​四.小结与讨论 1.举出保护个人敏感信息的方法&#xff08;最少三点&#xff09;。 2.如何提高你的密码强壮性&#xff0c;以避免黑客利用密…