”本文正在参加proandroiddev.com/chatgpt-for…,原作者:Rafa Araujo
ChatGPT 是由 OpenAI 公司创造的自然语言处理工具,对那些想要提高技能的软件开发人员来说,它绝对是不容错过的重要利器。
本文将展示使用 ChatGPT 来促进 Android 软件开发的 7 个案例,你会发现凭借其易用性和定制功能,ChatGPT 能够大大提高软件开发人员的绩效表现。
准备工作
访问 ChatGPT
首先访问官方的链接 chat.openai.com/chat,并创建一个账号。可以选择直接注册或是使用 Google、Microsoft 的现有账号。
整体的界面如下:
ChatGPT 账号默认会保留你和它的对话历史,方便你在其他会话里再次访问这些记录。当然,如有需要,你也可以直接删除某个或多个对话历史。
使用前须知
想要有效使用 ChatGPT,有一点非常重要:应当使用编程领域的专业术语,制定出清晰的、客观的提问内容。
在得到它的回答之后,也建议大家去评估这个回答与所提问题的关联程度以及否适用,这对于我们检查和优化提问内容非常重要。
另外,请记住 ChatGPT 可以支持多种语言,如果你还不太熟悉英语,可以选择其他语言。
提问十分关键
与在搜索引擎里输入关键字有所不同,在 ChatGPT 这里,你可以像和人交谈一样提出问题。只不过要确保问题内容尽可能多地包含详细信息。
尽量去避免提出那些主观的、模糊不清的、宽泛的问题。
举个例子,如果你问它 “在 Android 上如何实现注册界面”,那它的回答结果很有可能是如何启动 Android 项目并创建 XML 格式的组件,而这些回答其实也同样含糊不清和宽泛。
因此,更好的做法是针对你想要的东西、必要的细节去提出更加具体的问题。也不用担心问得太啰嗦,涵盖的细节信息越多,ChatGPT 的回答将越准确。
如下的例子里,我补充了技术细节和期待的具体东西。
可以看到,这次它给出的结果是按照提问要求提供了 Jetpack Compose 技术代码,而且是几乎可以在 Android 项目中直接使用的程度。
既然大家已经学会了如何恰当地提出问题,那么下一关就是去理解、评估这个答案。
评估回答是否有用
搜索引擎提供的结果里,通常你会在顶部看到一支广告,然后可能是赞助商提供的帖子以及你搜索的第一个结果。我们打开第一个链接,往往会发现这不是自己想要的结果,这时候会有点担心又不担心,因为还有几十万页的结果等着去一一确认。。。
ChatGPT 则不同于上面的情况,它永远不会说不知道,它总会给你一个答案。而这个答案可能是对的、也可能是错的。我们面对这个唯一的答案,如何正确地理解和辨别,就显得至关重要。
运用上下文信息
如果 ChatGPT 没能正确地、完整地作出回答,你可以针对目标答案提供更多信息、随时再问一遍。ChatGPT 本身会维护问题之间的上下文信息,所以它能够明白你在讨论什么。
举个例子,让 ChatGPT 改写上面的代码:将变量 firstName 改为 completeName。
如下的图可以看到:它确实只改写了 firstName 代码,其他代码和之前保持了一致。
案例 1. 代码生成
如上所述,ChatGPT 是全能型工具,可以帮助你处理很多领域,包括软件开发者很关心的代码生成。
尽管无法创建完整架构或是一个 App 的所有代码,但我们可以将一个大的问题拆解成更小的问题。这样的话,ChatGPT 便能给你提供有用的帮助。
除了提供代码,ChatGPT 也能解释代码能够奏效的原因,这可以帮助你更好地理解代码的具体逻辑。
一定要去仔细评估这些回答内容,如有必要,你可以继续请求它改写、优化,以满足你的需要。
案例 2. 修改 Bug
你可以拷贝一个代码片段并询问 ChatGPT 是否包含任何 Bug 或错误,它可以针对代码质量进行反馈,进而帮你定位出潜在的问题。这些反馈包括:修改代码的建议、提高代码效率以及如何避免一般的错误。
这将节省开发者在调试、测试代码上耗费的时间和精力,帮助我们构建更加可靠、高效的软件。
如果提供的代码确实需要改善,那么 ChatGPT 会向你解释可能会发生什么错误以及建议的解决办法。
⚠️分享代码的注意⚠️
代码属于公司的知识产权,而非员工个人。如果没有获得更高级别的许可,就将其分享给 ChatGPT 可能会产生违规。
除此之外,AI 能够访问和存储敏感信息。如果员工们访问了这些工具,他们可能在不经意间将信息传递给了 AI,造成安全违约和其他严重后果。
再恶劣一点的,如果黑客们入侵了这些工具,那么公司信息必将发生泄露。
所以,在给 ChatGPT 或其他 AI 工具分享敏感信息前,务必谨慎考虑这些风险。
案例 3. 写单元测试
当然你也可以在拷贝代码后问 ChatGPT 是否可以生成 Unit test 来检验该函数功能。ChatGPT 可以指引你完成 Unit test 的最佳实践,以及建议你如何重构代码去更加容易地进行测试。
和上述过程一样,它将返回 Unit test 代码并解释这些测试代码如何运行的。
案例 4. 写文档说明
ChatGPT 也能够为现有的代码生成文档说明。
如下图所示,我们可以指定代码语言和规则。
案例 5. 解释代码逻辑
通过前面的章节,我们知道 ChatGPT 在生成代码的同时会进行解释。自然而然地,你也可以直接让他解释某段代码,帮你理清其逻辑。
案例 6. 解释概念
概念类、架构类、工具类以及日常工作中可能遇到的问题,ChatGPT 都可以解答,可以放心大胆地提问。
如下图,我们让它解释 Android 平台上 Activity 和 Fragment 的区别。
其实,我们可以问它任何问题,只不过本篇文章侧重于阐述 ChatGPT 对于 Android 软件开发的帮助。
案例 7. 帮助你求职
很多人没想到 ChatGPT 甚至能帮助你找工作:比如你可以问它如何准备面试中的常见问题。
尽可能开动你的脑筋、好好利用它,让你更加充分地准备面试。
再次提醒:时刻留意 ChatGPT 回答的可靠性、准确性。
比如上面的例子,我们问它“我要面试初级 Android 开发者职位,有哪些需要准备的常见问题?”,它在回答中提到的部分组件(比如 AsyncTask、LinearLayout 和 RelativeLayout)现在已经不怎么考察了,有些过时了。
所以保持评估它给出的结果,不可尽信。
结语
确实,ChatGPT 有助于提高开发者的生产力,但必须认识到它存在一些局限性,这很重要。
1. 卡顿、不稳定
如果很多人同时访问,免费版的 ChatGPT 会变得很卡、甚至完全用不了,这时候你得手动刷新页面、碰碰运气。
2. 存在付费版本
ChatGPT 提供了每月 20$ 的付费版本,让你能够获得更快的响应、并且即便很多人同时访问也不会影响你的使用。毕竟你要知道:官方可没保证未来会持续提供免费版本。
3. 缺乏可靠性
如前面章节所述,ChatGPT 会回答任何提问,答案可能是正确的、也可能是错误的。所以,关键在于评估这些回答。可是即便结合你的经验,你也可能忽视掉 ChatGPT 回答中的错误。所以最佳做法是把它当作你的助手,灵活地控制解决方案,如何决策在于你自己。
4. 缺乏最新数据
ChatGPT 是基于海量信息训练的聊天机器人,并且训练不是即时的。举个例子,它可能不知道 Kotlin、Android 最新的更新内容,亦或最新的 Google IO 大会发生了什么。
免费版的 ChatGPT 最新训练数据截止到 2021 年 9 月。
5. 只能输入纯文本
当前 ChatGPT 还不支持上传文件,所以想让它 review 代码的话,你得拷贝代码片段,毕竟单个提问的文字长度被限制在 1000 个以内。
另外,它也不能像 Markdown、Slack 那样,可以通过引号来格式化代码,开发者只能用纯文本格式向 ChatGPT 提问。
6. 缺乏安全性
ChatGPT 是 OpenAI 公司推出的工具,它利用网络信息投喂其数据库,这也包括你在对话中发送的内容。
所以,切勿发送机密信息。
最后的最后
综上可以看到,ChatGPT 极有可能彻底改变开发者们的工作方式。尽管存在可靠性、响应速度、最新数据等局限性,ChatGPT 仍旧可以大大提高我们的生产力、改善我们的开发时间。
倒也不必担心 ChatGPT 会窃取咱们的工作,因为从别的角度来说,这个工具确实可以给开发者提供非常有价值的支持、促使日常工作更加高效、帮助大家摆脱重复繁琐的任务。。。
倘若能将 AI 人工智能和人类的创造性、技能完美结合,那么未来的软件开发将变得极为高效和超乎想象!