对于程序员来说,大家想必都习惯了通过 ChatGPT 来生成代码,然后自己手动稍加调整,这样能在极短的时间内得到可以运行的代码。除了这种最常规的操作之外,本文想分享一些笔者在日常工作中是如何使用 ChatGPT 等 AI 工具提高自己工作效率的例子。
为代码生成对应的单元测试代码
使用的 ChatGPT prompt:为下面这个<语言>实现的代码,编写对应的单元测试代码
,然后将要生成单元测试的代码喂给 ChatGPT:
ChatGPT 会自动生成单元测试代码,我们可以在这些基础上,进行人工审查然后修改。
!](upload-images.jianshu.io/upload_imag…)
利用 ChatGPT 帮助自己研读经典框架的源代码
比如我是一个 Angular 开发人员,几乎每天都要和其标准库里的 HttpClient 工具库打交道。
假设我对其 request 方法感兴趣,想阅读其源代码,但是对于里面个别语句不甚理解:
那么我首先让 ChatGPT 给我介绍整个 request 方法大致完成一件什么事情,使用 prompt:逐行介绍一下下面这个方法的用途。这个方法来自 Angular common 开发包的 HttpClient 实现 http.mjs.
ChatGPT 给出的答复,我一目十行,很快就了解了这个方法的大致目的。
然后再给 ChatGPT 发出指令,提醒它要逐行介绍:我让你逐行介绍,你的介绍太简略了。
于是得到了我期望中的答案。
代码重构和性能优化
我首先故意写了一段存在性能问题的 ABAP 代码。这段代码首先从数据库表 tadir 里读取 200 条 Class 定义,然后循环这 200 条记录,在循环体内再次根据定义里的 Class 名称字段,到另一张数据库表 seoclasstx 里读取 Class 的描述信息。
这样应用服务器总共会对数据库服务器造成 1 + 200 = 201 次读取操作。
我询问 ChatGPT 以上代码是否存在可以优化的地方,ChatGPT 的回复一语中的,排在第一点的建议就非常切中要害:将第二个 SELECT 语句放在循环体之外:
我再对 ChatGPT 发出了指令:请给我一份性能优化,重构后的代码。
ChatGPT 也完美的完成了任务:
将第二个 SELECT 语句提至循环体外,现在数据库服务器总共的读取次数从 201 次降低到了 2 次。
阅读正则表达式觉得头疼?让 ChatGPT 来替我们阅读
下列这两段正则表达式是我负责的 SAP 电商云前台登录页面里,用户名和 password 两个字段验证值合法性的正则表达式:
export const EMAIL_PATTERN =
/^(([^<>()[]\.,;:\s@"]+(.[^<>()[]\.,;:\s@"]+)*)|(".+"))@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])|(([a-zA-Z-0-9]+.)+[a-zA-Z]{2,}))$/; // eslint-disable-line
export const PASSWORD_PATTERN =
/^(?=.?[A-Z])(?=.?[0-9])(?=.*?[!@#%^*()_\-+{};:.,]).{6,}/;
说实话这些晦涩的正则表达式语法,我从来就记不住,每一次都是要用的时候,才临时去翻语法文档。
有了 ChatGPT 之后,我可以直接让它告诉我这些正则表达式的设计思路:
利用 ChatGPT 帮助自己入门一个相对比较陌生的技术领域
我使用 Angular 开发已经有一段时间了,现在我想学习 React,因此向 ChatGPT 咨询,让它给我建议一些 React 的学习要点:
作为一个已经有 Angular 基础的前端开发人员,我最感兴趣的是 Angular 和 React 二者最大的区别是什么?从 ChatGPT 那里我得到了一些解答。
虽然我明白 ChatGPT 的回答只能作为参考,但至少它能够给我很多启发和灵感,作为我进一步到 React 官网开始精读和深入学习的指引。
作者:JerryWang_sap(侵删)
链接:https://juejin.cn/post/72437268