我在 ChatGPT 在日常软件开发中的使用

p-38

chatGPT 自己的回答是:技术文档查询、代码问题解决、自动化测试、自动化部署、知识分享和学习

*面向未来需要具备的技能

prompt engineer

伴随 chatGPT 等各 gpt api 的爆发式发展,未来职业所需的技能需求正在发生巨大变化。在这种情况下,未来的工程师(事实上是大多数职业)的职能要求也有了巨大改变,以至于有了 prompt engineeringprompt engineer 一说,

个人觉得在具备一定的专业技能外,未来将更加要求具备良好的领导能力表达能力管理思维,例如遵循 5W2H 和 SMART 原则来编写 prompt。

了解如何写好 prompt 可以从以下网站开始:https://www.promptingguide.ai/https://prompts.chat/https://www.explainthis.io/zh-hant/chatgpt

麦肯锡报告

早在 2021 年,著名管理咨询公司麦肯锡(McKinsey)调查了 18,000 人在 15 个国家/地区的职业技能需求。该研究确定了一套 56 项基本技能,这些技能让所有公民受益。技能类别包括认知、数字、人际关系和自我领导,并确定了属于这些类别的 13 个独立的技能组及共计 56 项技能。麦肯锡使用“DELTAs”来形容这些技能。

这些技能的作用是增加自动化系统和 AI 智能机器无法完成的价值,在数字环境中运作,并不断适应新的工作方式和新的职业。

改报告中,技能类别——认知数字人际关系自我领导——然后确定了属于这些类别的 13 个独立的技能组及共计 56 项技能,本人整理了一个导图:

p-02

报告的统计情况不具体描述,感兴趣可看具体报告:《Defining the skills citizens will need in the future world of work》

另外个人感觉,在“Digital”下,除了这些技能外可能还需要增加两项能力:科学上网、英文。


前端开发的使用

回到主题,

p-total

ChatGPT 可以解答开发中遇到的各种问题,例如技术难题、设计问题、最佳实践等。同时,ChatGPT 还可以提供一些参考资料,例如开发工具、框架选择等,让开发者更快速地做出决策。

设计阶段

需求评审

应用:公共业务知识查询

业务知识的查询这部分其实类似于百度等搜索引擎,不同的是可以通过其上下文机制更方便得进行查询,比如针对其中一个点进行开展说明。

如:
prompt:什么是等额本金和等额本息
prompt: 等额本金款额逐渐递减是怎么计算的
prompt: 如果利率是5%,总贷款额是100万的话,等额本金每月还款情况如何...

p-36

又例如交互稿中出现一些发现有点陌生的专业术语,如:
prompt:什么是贝塞尔曲线,如何绘制

p-04

应用:需求稿评审及文案优化
prompt:这段子标题是否含有歧义:xxx

如:
p-03

开发方案

应用:方案调研

prompt:{它的角色},{需求场景},{面临的问题挑战},{可能存在的方案}

p-37

应用:技术选型

比较典型的就是做框架的对比,比如:
p-05

p-06

p-07

可以不断追问一些细节以供判断,大致确定框架库之后可以借助 chatGPT 进行技术预演:

应用:技术预演

可以用于框架库学习

p-08

可以通过 chatGPT 了解源码和原理,如:
p-09

p-10

如果是没接触的框架库,最好再问一下它的缺点/限制,如:
p-11

开发阶段

初始化

如果是新项目(没有约束脚手架等),可以告知 chatGPT 你的开发需求和设计阶段的选型条件,让它提供 Step by step 项目初始

p-16

应用:依赖安装处理

在引入/使用新库时,可以让 chatGPT 告知所有安装方式及对应优缺点,然后再进行分析决定如何引用,如:

p-12

应用:静态资源处理

这块主要基于 GPT-4 的 Image 相关能力,不过目前此能力的应用产品化程度做得还不够,因此本人还是习惯用已有的工具平台,比如Clipdrop,它提供 text2image、修图、一键去除/替换图片背景、对照片立体打光、文本去除器等功能。

p-15

比如要抠一张图片的背景:

原图:

p-jpg

处理:
p-14

编码

编码这块其实可以用集成产品,比如CursorCopilot

应用:功能方法开发

一些小工具方法特别适用于这类产品,比如想写一个获取 url 参数的方法:
p-17

p-18

但要注意的是,可能由于这类工具本身能力或 prompt 信息不充分,它提供的代码可能存在问题,因此我们不能完全对其放心,需要对代码进行 review 并给出指导建议,如:
p-19

Cursor 的回答:
p-20

根据问题情况指导它改进:
p-21

改进后的代码:
p-22

典型应用场景:写正则。这类工具个人感觉最有用/可信的还是在正则的生成中,因为 prompt 容易描述、代码简单且容易验证。如:

p-23

应用:样式/动画实现

对于复杂动画交互或非前端同学在开发样式中,chatGPT 能帮助解决这部分问题,如:

p-24

p-25

应用:旧方法改造/优化

有些老代码/压缩后的代码如果要改造优化,可以通过 chatGPT,它会尝试理解代码含义并做出对应处理,如:

p-26

p-27

p-28

编码的场景非常多,也可以让它做语言/框架转换之类的事,比如用python实现转为svelte组件等,甚至个人感觉以后可能会被利用到密码破解之类的场景

需要注意的是,无论 Cursor/Copilot/ChatGPT、这类相对黑盒的产品都有泄露代码的风险,因此在其开源透明之前,不要使用它们于业务代码的开发中、比如涉及加解密、账号密码等处理 。Codebase 是公司的重要资产。

注解

应用:生成 API 文档

p-39

p-40

应用:生成代码注释

p-29

p-30

联调自测阶段

自测

应用:单测及生成用例

很好用的场景,但注意看一下它的 case,有时候也不能全面覆盖

p-31

p-32

应用:组件快照测试

p-33

应用:生成 Mock 数据

p-34

联调

应用:生成接口

p-35

发布交付阶段

代码分析

可以给它代码让它进行问题分析并提供建议,注意代码中不要提供敏感信息。

应用:code review

prompt:review这段代码并给出修改建议:...,举个简单的例子:

p-41

应用:安全漏洞分析

prompt:分析一下这段代码,是否存在潜在安全漏洞:...

应用:代码质量分析

prompt:分析一下这段代码质量:...

git 操作

应用:生成 Commit log

可以让它对 diff 代码进行语义分析,提供 commit 信息,也有封装好的插件:https://github.com/zurawiki/gptcommit

其实 chatGPT 也能和 CI/CD 相结合处理,不过这部分涉及不多,日后再看是否能得以使用了。

综合

ChatGPT 是一个强大的自然语言处理工具,在研发过程中能提供参考,解决查询类问题及重复性操作。在日常前端开发中提供帮助和支持,提高开发效率和代码质量,同时还可以激发开发者的创造力和想象力,未来在各个领域都有着广阔的应用前景。


最后,你觉得本文有依赖 chatGPT 或 Notion AI 等工具吗?


相关链接