为什么使用生成式AI工具?
过去几年间,我亲眼见证了软件工程的演变——不仅仅是编程语言、框架或工具的更新,更是我们实际编写代码的思维方式的转变。在这个领域,最大的变革力量之一就是生成式AI,比如GitHub Copilot和ChatGPT,更不用说其他众多工具。
这些工具并非要取代软件工程师,而是旨在提升你的能力,将你从繁琐工作中解放出来,并激发创造力。我将带你了解如何将这些工具无缝集成到开发工作流中,从而生成项目骨架、改进用户体验并自动生成文档。
你可以把这看作是一位开发者向另一位正在尝试上述工具的开发者提供的建议。
入门:项目骨架生成
开发新项目可能令人望而生畏,尤其是在确定依赖关系、文件结构或环境时。这正是Copilot和ChatGPT等工具大显身手的地方。
步骤1:明确问题
在向AI求助之前,先整理项目大纲。例如:
- 项目是API(如REST API)还是前端Web应用?
- 你使用什么编程语言或框架?
- 是否需要数据库、身份验证或测试设置?
确定以上问题后,你就可以开始与AI交流。
向ChatGPT提问的示例:
|
|
响应将提供目录、文件结构、默认配置文件和文件起始内容。这比通过谷歌搜索、从5篇不同博客中拼凑以及使用随机模板要快得多。
步骤2:审查和修改
所有由AI生成的骨架都应进行审查。需要自问的问题:
- 这个文件结构是否符合我所选框架的最佳实践?
- 是否包含多余的文件?
- 配置是否针对我部署的环境进行了优化?
你可以进一步优化AI生成的内容,但拥有一个可用的模板总比花费10小时从头开始要好。
利用AI建议改进用户体验
用户体验远不止绿色或橙色按钮,它关乎直观的系统、可访问性和反馈。以下是AI可以助力的两个示例。
示例1:编写表单验证
假设你正在使用React编写一个表单。你可以询问ChatGPT,而不是自己编写验证规则和逻辑:
|
|
生成的输出将包括邮箱验证(可能包含正则表达式验证)、错误处理,甚至可能提供用于修改错误消息的状态建议,然后你可以根据选择的UI库或状态管理方法进行编辑。
示例2:创建UI组件
使用Copilot的自动补全功能开始编写,你可以输入组件名称、组件属性或函数名称,Copilot将建议完整的代码片段。例如:
|
|
在编写几个组件后,Copilot可能会添加错误处理、输入过滤(邮箱格式)或方法状态的建议。现在,你无需编写所有内容,Copilot处理大部分样板代码,而你则可以专注于设计。
利用生成式AI自动化文档编写
文档编写往往被搁置,因为人们觉得它无趣而忽略它……但它是入职、维护和协作的重要组成部分。
步骤1:生成内联注释
写完函数后,选中它并询问ChatGPT:“用简单的术语解释这个函数。”它将根据函数的目的、输入参数和返回值生成注释。
- 项目描述
- 安装步骤
- 使用步骤
- 配置步骤
你可以根据项目上下文的需要进行编辑或补充。
步骤3:记录API
对于REST或GraphQL API,你可以要求ChatGPT生成示例请求和响应模式,并且除了请求体(例如Post请求)的文档外,你还可以要求错误处理。
提示示例:“编写接受姓名、邮箱和密码的用户注册API文档。”
这将以Markdown格式输出。然后,你可以将这些结构化的响应复制粘贴到Swagger、Postman或任何你希望推送这些细节的文档工具中。
利用生成式AI工具的最佳实践
虽然这些工具功能强大,但请记住,它们并不完美。我学到了什么?
- 始终验证输出 - AI生成的代码可能使用了已弃用的库或不良实践。
- 用它增强你的知识 - AI可以并且应该提供帮助,但它不能也不应替代你的理性思考。可以将其视为一个头脑风暴伙伴。
- 迭代和重复 - 使用多个提示,评估代码,并根据你参与的原始项目的逻辑进行编辑。
- 保持警惕 - AI工具发展迅速!关注更新和社区,阅读它们的文档,并谨慎地将它们集成到开发领域。
常见问题解答
问:AI工具能生成生产就绪的代码吗?
答:不能,AI所能做的只是提供模板或提示。在投入生产之前,请确保进行审查、测试和安全审计。
问:作为编码初学者,如何在使用它们时不感到不知所措?
问:这是否意味着使用AI会让我变懒?
答:如果你有意识地使用它,就不会。你应该将AI视为与你一起工作的兼职程序员,帮助你专注于解决真正独特的问题,而它只处理重复性工作。
问:向AI提供我正在进行的项目细节安全吗?
答:不安全!不要向AI提供任何包含API密钥或密码的代码细节,但你可以使用泛化的提示,然后审查它的回应。
结束语
当我刚开始使用Copilot和ChatGPT等工具时,我有些怀疑。但一旦我开始定期使用这些工具并将它们融入工作流,我评估了节省的时间以及快速原型制作的能力。我相信这些工具拥有未来,它们最终将改变我们构建、文档编写和协作解决问题的方式。
你怎么看?你是否有机会探索创造性编码如何提供帮助,发现了哪些特定任务可以利用这些能力,以及哪些任务存在风险?重要的是,我们不能不加质疑地依赖AI。但它将成为我们所有工作的力量倍增器。
让我们一起拥抱这个编码的新阶段,祝构建愉快!