软件工程师如何利用生成式AI工具
在过去的几年里,我见证了软件工程的变化——不仅仅是语言、框架或工具的变化,还包括我们实际编写代码的思维方式。这个领域最大的变革力量之一就是生成式AI,比如GitHub Copilot和ChatGPT,更不用说其他众多工具了。
这些工具并不是要取代软件工程师,而是要提升你的能力,解放你在繁琐事务上的时间,并促进创造力。我将带你了解如何将这些工具无缝集成到你的开发工作流程中,以便生成项目骨架、改进用户体验并生成自动化文档。
你可以把这看作是一位开发者给另一位正在尝试上述所有功能的开发者的建议。
为什么使用生成式AI工具?
说实话,编码有时很繁琐,特别是在为新项目创建仓库、设置框架或编写文档时。生成式AI工具可以帮助减轻你的认知负担,让你更多地专注于解决当前的问题、架构或用户体验问题。
你是否曾经陷入困境,无法开始一个新项目?或者不得不向其他开发者解释你为什么要写某些代码?在这两种情况下,你的生成式AI工具就像你的编码伙伴——总是可用,总是友好,而且通常很有帮助。
入门:项目骨架
开发新项目可能令人生畏,特别是在确定依赖关系、文件结构或环境时。这正是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。但它会成为我们所做一切的力量倍增器。
让我们一起拥抱这个编码的新阶段,祝构建愉快!