我从 2007 年大学毕业参加工作至今,已经在软件开发这个岗位上工作 16 年了。这十六年来我也算阅历过一些新的技能浪潮的洗礼吧。我工作的 SAP 是欧洲最大也是最成功的软件公司之一,首要的深耕范畴是企业管理软件。我阅历了从本地布置软件(On-Premises)到云原生应用这种开发思维和理念的转变,也亲身体会到了 Docker 和 Kubernetes 等虚拟化技能给开发人员带来的切切实实的便捷和工作功率的提高。但这些,都远远没有今年年初以 ChatGPT 为代表的一系列 AI 技能让我感到震慑。

一个程序员使用 ChatGPT 提高程序员生产力的一些小技巧分享

SAP 其实也早已发布了面向企业级用户的与某一细分范畴和事务紧耦合的 AI 服务,这些 AI 服务布置在 SAP 自己的 BTP 云平台上,因为目标用户不是 2C 的个人集体,所以不像 ChatGPT 这样为普通群众所知。

虽然有业界不少大佬也发出了诸如 三年之后 AI 将完结编程 这种言论,但我这个人生性比较达观,就算有一天 AI 真的会完结绝大多数程序员,只剩下极少数的算法工程师,那我也要尽可能在 AI 完结我之前,充分使用 AI 让自己变得更强大。

我之所以会有这种相对达观的主意,是因为运用 ChatGPT 等一系列 AI 产品这几个月,我发现自己的工作和学习功率都比以前有进一步的提高。

关于程序员来说,大家想必都习惯了通过 ChatGPT 来生成代码,然后自己手动稍加调整,这样能在极短的时间内得到可以运行的代码。除了这种最常规的操作之外,本文想共享一些笔者在日常工作中是怎么运用 ChatGPT 等 AI 东西提高自己工作功率的比如。

为代码生成对应的单元测试代码

运用的 ChatGPT prompt:为下面这个<言语>实现的代码,编写对应的单元测试代码,然后将要生成单元测试的代码喂给 ChatGPT:

一个程序员使用 ChatGPT 提高程序员生产力的一些小技巧分享

ChatGPT 会主动生成单元测试代码,咱们可以在这些根底上,进行人工检查然后修正。

!](upload-images.jianshu.io/upload_imag…)

使用 ChatGPT 协助自己研读经典结构的源代码

比如我是一个 Angular 开发人员,简直每天都要和其标准库里的 HttpClient 东西库打交道。

假设我对其 request 办法感兴趣,想阅览其源代码,可是关于里边单个语句不甚理解:

一个程序员使用 ChatGPT 提高程序员生产力的一些小技巧分享

那么我首先让 ChatGPT 给我介绍整个 request 办法大致完结一件什么事情,运用 prompt:逐行介绍一下下面这个办法的用途。这个办法来自 Angular common 开发包的 HttpClient 实现 http.mjs.

一个程序员使用 ChatGPT 提高程序员生产力的一些小技巧分享

ChatGPT 给出的答复,我目下十行,很快就了解了这个办法的大致意图。

一个程序员使用 ChatGPT 提高程序员生产力的一些小技巧分享

然后再给 ChatGPT 发出指令,提示它要逐行介绍:我让你逐行介绍,你的介绍太简略了。

一个程序员使用 ChatGPT 提高程序员生产力的一些小技巧分享

于是得到了我希望中的答案。

代码重构和功能优化

我首先成心写了一段存在功能问题的 ABAP 代码。这段代码首先从数据库表 tadir 里读取 200 条 Class 界说,然后循环这 200 条记录,在循环体内再次依据界说里的 Class 称号字段,到另一张数据库表 seoclasstx 里读取 Class 的描绘信息。

一个程序员使用 ChatGPT 提高程序员生产力的一些小技巧分享

这样应用服务器总共会对数据库服务器形成 1 + 200 = 201 次读取操作。

我问询 ChatGPT 以上代码是否存在可以优化的地方,ChatGPT 的回复一语中的,排在第一点的主张就非常切中要害:将第二个 SELECT 语句放在循环体之外:

一个程序员使用 ChatGPT 提高程序员生产力的一些小技巧分享

我再对 ChatGPT 发出了指令:请给我一份功能优化,重构后的代码。

ChatGPT 也完美的完结了任务:

将第二个 SELECT 语句提至循环体外,现在数据库服务器总共的读取次数从 201 次降低到了 2 次。

一个程序员使用 ChatGPT 提高程序员生产力的一些小技巧分享

阅览正则表达式觉得头疼?让 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 之后,我可以直接让它告诉我这些正则表达式的规划思路:

一个程序员使用 ChatGPT 提高程序员生产力的一些小技巧分享

使用 ChatGPT 协助自己入门一个相对比较陌生的技能范畴

我运用 Angular 开发已经有一段时间了,现在我想学习 React,因此向 ChatGPT 咨询,让它给我主张一些 React 的学习关键:

一个程序员使用 ChatGPT 提高程序员生产力的一些小技巧分享

作为一个已经有 Angular 根底的前端开发人员,我最感兴趣的是 Angular 和 React 二者最大的区别是什么?从 ChatGPT 那里我得到了一些答复。

虽然我理解 ChatGPT 的答复只能作为参考,但至少它可以给我很多启示和创意,作为我进一步到 React 官网开始精读和深化学习的指引。

一个程序员使用 ChatGPT 提高程序员生产力的一些小技巧分享

以上就是我日常工作中一些运用 ChatGPT 提高开发功率的小心得。虽然 Google 查找也能某种程度上满足我的需求,可是 Google 查找需求我精心选择关键字,然后从查找成果列表里手动筛选出需求持续阅览的网页。而且上面几个比如里正则表达式的解读,单元测试代码的主动生成,代码重构和功能优化的主张,现阶段 Google 还无法像 ChatGPT 这样可以以交互式的方式完结我发出的指令。

即便 AI 将来某一天终究会干掉程序员,可是在这一天到来之前,我仍然会始终保持积极的心态,使用 AI 不断提高自己的开发功率。

大家平常有什么运用 ChatGPT 辅助工作的小技巧呢?欢迎在评论区留言共享。