【笔记】ChatGPT在日常前端开发中的使用
Mar 6, 2023笔记aigpt我在 ChatGPT 在日常软件开发中的使用
chatGPT 自己的回答是:技术文档查询、代码问题解决、自动化测试、自动化部署、知识分享和学习
*面向未来需要具备的技能
prompt engineer
伴随 chatGPT 等各 gpt api 的爆发式发展,未来职业所需的技能需求正在发生巨大变化。在这种情况下,未来的工程师(事实上是大多数职业)的职能要求也有了巨大改变,以至于有了 prompt engineering
和 prompt 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 项技能,本人整理了一个导图:
报告的统计情况不具体描述,感兴趣可看具体报告:《Defining the skills citizens will need in the future world of work》
另外个人感觉,在“Digital”下,除了这些技能外可能还需要增加两项能力:科学上网、英文。
前端开发的使用
回到主题,
ChatGPT 可以解答开发中遇到的各种问题,例如技术难题、设计问题、最佳实践等。同时,ChatGPT 还可以提供一些参考资料,例如开发工具、框架选择等,让开发者更快速地做出决策。
设计阶段
需求评审
应用:公共业务知识查询
业务知识的查询这部分其实类似于百度等搜索引擎,不同的是可以通过其上下文机制更方便得进行查询,比如针对其中一个点进行开展说明。
如:
prompt:什么是等额本金和等额本息
prompt: 等额本金款额逐渐递减是怎么计算的
prompt: 如果利率是5%,总贷款额是100万的话,等额本金每月还款情况如何...
又例如交互稿中出现一些发现有点陌生的专业术语,如:
prompt:什么是贝塞尔曲线,如何绘制
应用:需求稿评审及文案优化
prompt:这段子标题是否含有歧义:xxx
如:
开发方案
应用:方案调研
prompt:{它的角色},{需求场景},{面临的问题挑战},{可能存在的方案}
应用:技术选型
比较典型的就是做框架的对比,比如:
可以不断追问一些细节以供判断,大致确定框架库之后可以借助 chatGPT 进行技术预演:
应用:技术预演
可以用于框架库学习
可以通过 chatGPT 了解源码和原理,如:
如果是没接触的框架库,最好再问一下它的缺点/限制,如:
开发阶段
初始化
如果是新项目(没有约束脚手架等),可以告知 chatGPT 你的开发需求和设计阶段的选型条件,让它提供 Step by step 项目初始
应用:依赖安装处理
在引入/使用新库时,可以让 chatGPT 告知所有安装方式及对应优缺点,然后再进行分析决定如何引用,如:
应用:静态资源处理
这块主要基于 GPT-4 的 Image 相关能力,不过目前此能力的应用产品化程度做得还不够,因此本人还是习惯用已有的工具平台,比如Clipdrop,它提供 text2image、修图、一键去除/替换图片背景、对照片立体打光、文本去除器等功能。
比如要抠一张图片的背景:
原图:
处理:
编码
编码这块其实可以用集成产品,比如Cursor、Copilot
应用:功能方法开发
一些小工具方法特别适用于这类产品,比如想写一个获取 url 参数的方法:
但要注意的是,可能由于这类工具本身能力或 prompt 信息不充分,它提供的代码可能存在问题,因此我们不能完全对其放心,需要对代码进行 review 并给出指导建议,如:
Cursor 的回答:
根据问题情况指导它改进:
改进后的代码:
典型应用场景:写正则
。这类工具个人感觉最有用/可信的还是在正则的生成中,因为 prompt 容易描述、代码简单且容易验证。如:
应用:样式/动画实现
对于复杂动画交互或非前端同学在开发样式中,chatGPT 能帮助解决这部分问题,如:
应用:旧方法改造/优化
有些老代码/压缩后的代码如果要改造优化,可以通过 chatGPT,它会尝试理解代码含义并做出对应处理,如:
编码的场景非常多,也可以让它做语言/框架转换之类的事,比如用python实现
、转为svelte组件
等,甚至个人感觉以后可能会被利用到密码破解之类的场景
需要注意的是,无论 Cursor/Copilot/ChatGPT、这类相对黑盒的产品都有泄露代码的风险,因此在其开源透明之前,不要使用它们于业务代码的开发中、比如涉及加解密、账号密码等处理 。Codebase 是公司的重要资产。
注解
应用:生成 API 文档
应用:生成代码注释
联调自测阶段
自测
应用:单测及生成用例
很好用的场景,但注意看一下它的 case,有时候也不能全面覆盖
应用:组件快照测试
应用:生成 Mock 数据
联调
应用:生成接口
发布交付阶段
代码分析
可以给它代码让它进行问题分析并提供建议,注意代码中不要提供敏感信息。
应用:code review
prompt:review这段代码并给出修改建议:...
,举个简单的例子:
应用:安全漏洞分析
prompt:分析一下这段代码,是否存在潜在安全漏洞:...
应用:代码质量分析
prompt:分析一下这段代码质量:...
git 操作
应用:生成 Commit log
可以让它对 diff 代码进行语义分析,提供 commit 信息,也有封装好的插件:https://github.com/zurawiki/gptcommit
其实 chatGPT 也能和 CI/CD 相结合处理,不过这部分涉及不多,日后再看是否能得以使用了。
综合
ChatGPT 是一个强大的自然语言处理工具,在研发过程中能提供参考,解决查询类问题及重复性操作。在日常前端开发中提供帮助和支持,提高开发效率和代码质量,同时还可以激发开发者的创造力和想象力,未来在各个领域都有着广阔的应用前景。
最后,你觉得本文有依赖 chatGPT 或 Notion AI 等工具吗?
相关链接
- https://prompts.chat/
- https://github.com/dair-ai/Prompt-Engineering-Guide
- https://clipdrop.co/
- 《设计师,除了 ChatGPT,还有哪些 AI 工具会抢你“饭碗”?》
- https://www.cursor.so/
- https://github.com/hua1995116/awesome-ai-painting
- https://medium.com/@chen.reuven/chatgpt-for-front-end-developer-with-samples-series-8077869ff0d3
Author
My name is Micheal Wayne and this is my blog.
I am a front-end software engineer.
Contact: michealwayne@163.com