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