使用 ChatGPT 改善 Android 开发效率的 7 个案例~

news2024/9/20 15:03:47

翻译 + 修改自 https://proandroiddev.com/chatgpt-for-android-developers-1c3c1ecc6440,原作者:Rafa Araujo

ChatGPT 是由 OpenAI 公司创造的自然语言处理工具,对那些想要提高技能的软件开发人员来说,它绝对是不容错过的重要利器。

本文将展示使用 ChatGPT 来促进 Android 软件开发的 7 个案例,你会发现凭借其易用性和定制功能,ChatGPT 能够大大提高软件开发人员的绩效表现。

准备工作

访问 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 代码,其他代码和之前保持了一致。

案例 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 人工智能和人类的创造性、技能完美结合,那么未来的软件开发将变得极为高效和超乎想象!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/432331.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

日撸 Java 三百行day32

文章目录 说明day32 图的连通性检测1.思路1.1矩阵表示1.2.矩阵相乘1.3结合矩阵运算思考图的连通性。 2.代码 说明 闵老师的文章链接: 日撸 Java 三百行(总述)_minfanphd的博客-CSDN博客 自己也把手敲的代码放在了github上维护:ht…

Linux下安装navicat

1.在https://www.navicat.com.cn/download/navicat-premium下载navicat安装包 2.在终端执行命令 给navicat16-premium-cs.AppImage赋予可执行的权限 chmod x navicat16-premium-cs.AppImage 启动Navicat16 ./navicat16-premium-cs.AppImage 3.点击连接——mysql——输入连…

java单机秒杀扛1万并发方案和代码

我们先来看普通的加锁加事务秒杀性能, 说明: 1.这里的秒杀业务执行一次耗时100毫秒 2.电脑配置16g内存 4核8线程 cpu i7 7代,数据库连接池max20 RequestMapping("/purchase2")public ResultJson purchase2( Long productId){int userId new Random().nextInt(10…

2 常见模块库(2)

2.5 复用器与分路器模块 Mux是一种用于将多个信号组合成一个信号的模块。Mux模块的名称来源于多路复用器(Multiplexer)。 使用Mux可以将多个输入信号组合成一个向量或矩阵,以便在模型中传递和处理。Mux模块可以接受任意数量的输入信号&#x…

Visio Studio 2017利用Qt插件开发Qt应用的安装方法

Visio Studio 2017利用Qt插件开发Qt应用的安装方法 1 安装Visio Studio 20172 安装QT3 在Visio Studio 2017中安装Qt插件 本教程介绍如何利用Visio Studio 2017,开发Qt.5.14.2的Qt应用 1 安装Visio Studio 2017 链接:https://pan.baidu.com/s/1t9j1fFj3…

Linux --- 简介、安装

一、Linux简介 1.1、主流操作系统 不同领域的主流操作系统,主要分为以下这么几类: 桌面操作系统、服务器操作系统、移动设备操作 系统、嵌入式操作系统。接下来,这几个领域中,代表性的操作系统是那些? 1、桌面操作系统 2、服务…

2023年农牧行业数字化:7大CRM软件、5大场景盘点

目录 一、5大业务场景能力,解密农牧行业持续增长秘籍 1、营销获客 2、客户管理 3、商机管理 4、生态“互联”能力 5、业财一体化 二、农牧行业企业CRM选型指南 1、SaaS模式或私有部署 2、是否具有行业成功“经验” 3、可扩展性 4、以营销为主题的体系建设…

【MySQL】基础介绍及表操作

目录 1.MySQL是什么? 2.为什么要学习数据库呢? 内存和硬盘的区别 3.数据库基本操作 1.创建数据库 2.使用数据库 3.删除数据库(慎用) 4.查看警告信息 5.查询当前数据可服务使用的编码集 7.表操作 1.创建一个学生成绩表 2…

Spring Cloud微服务网关Zuul过滤链和整合OAuth2+JWT入门实战

一、Spring Cloud Zuul 过滤链 1.1 工作原理 Zuul的核心逻辑是由一系列的Filter来实现的,他们能够在进行HTTP请求或者相应的时候执行相关操作。Zuul Filter的主要特性有一下几点: Filter的类型:Filter的类型决定了它在Filter链中的执行顺序…

解决Ubunt20.04安装Sogou输入法失败进不去桌面 及 中文输入法安装

目录解决Ubunt20.04安装Sogou输入法失败进不去桌面中文输入法安装解决wps无法输入中文解决Ubunt20.04安装Sogou输入法失败进不去桌面 问题: Ubuntu20.04 安装了 fcitx 和 sogou 输入法;键盘输入法系统由 IBus 改成了 fcitx;重启后可以出现登…

文心一言 VS chatgpt (11)-- 算法导论2.3 7题 3.1 4~5题

四、2 ^ (n1)O(2 ^ n)成立吗? 2^(2n)O(2 ^ n)成立吗? 文心一言: chatgpt: 第一个式子不成立,第二个式子成立。 2 ^ (n1) O(2 ^ n) 该式不成立。按照大O符号的定义,如果存在正常数c和n0,使得n>n0时&#xf…

旋转矩阵与欧拉角

其他相关的内容网上很多&#xff0c;这里就简单记录一下不同欧拉角分解顺序时&#xff0c;对应的角度怎么计算 #include <opencv2/opencv.hpp> #include <iostream>using namespace cv; using namespace std; #define PI acos(-1)void getEulerAngles(Mat& ro…

Spring项目整合Minio分布式的对象存储系统

文章目录 安装Docker安装Docker-compose安装 SpringBoot集成引入依赖初始化客户端存储桶的CRUD存储桶的文件操作存储桶生命周期配置 安装 Docker安装 docker run -p 9000:9000 -p 9090:9090 \--nethost \--name minio \-d --restartalways \-e "MINIO_ACCESS_KEYadmin&q…

01-Linux-磁盘分区与目录配置

1. 主引导纪录和磁盘分区表 1.1 MBR分区表 启动引导程序记录区与分区表都放在磁盘的第一个扇区&#xff08;512B&#xff09; 由于分区表仅占 64B&#xff0c;因此最多能有四组记录区&#xff0c;每组记录区记录了该区段的起始与结束的柱面号码。 缺点如下&#xff1a; 操作…

设计模式-创建型模式之工厂方法模式(Factory Method Pattern)

3.工厂方法模式(Factory Method Pattern)3.1. 模式动机现在对该系统进行修改&#xff0c;不再设计一个按钮工厂类来统一负责所有产品的创建&#xff0c;而是将具体按钮的创建过程交给专门的工厂子类去完成&#xff0c;我们先定义一个抽象的按钮工厂类&#xff0c;再定义具体的工…

vue项目导入excel成功后下载导入结果(后端返回的list数组)

需求&#xff1a; 点击批量导入按钮&#xff0c;弹出弹窗。 下载模板如图二 上传后&#xff0c;如果有错误&#xff0c;会弹出提示&#xff0c;如图三 点击查看失败原因&#xff0c;会自动下载失败的excel如图四。 请求参数和返回结果 1. vue项目导出表格功能实现步骤 np…

十七、市场活动明细:添加备注

功能需求 用户在市场活动明细页面,输入备注内容,点击"保存"按钮,完成添加市场活动备注的功能. *备注内容不能为空 *添加成功之后,清空输入框,刷新备注列表 *添加失败,提示信息,输入框不清空,列表也不刷新 功能分析 流程图 代码实现 一、ActivityRemarkMapper 1.Ac…

笔记-Samba服务器的安装与配置

引言 代码编写我们是在Windows系统下的VS Code来编辑&#xff0c;但是代码在虚拟机的Ubuntu系统中&#xff0c;所以我们要先实现如何将在Ubuntu下的项目映射到Windows系统中&#xff0c;这时我们可以使用到samba服务器。 一、安装samba服务器 sudo apt-get install samba我这里…

【瑞吉外卖】003 -- 后台退出功能开发

本文章为对 黑马程序员Java项目实战《瑞吉外卖》的学习记录 目录 一、需求分析 二、代码开发 三、功能测试 四、分析后台页面构成和效果展示 1、Vue & Element 2、iframe 一、需求分析 前端页面分析&#xff1a; 前端页面&#xff0c;点击事件 点击事件 logout()&#x…

使用vscode写UML图

文章目录 环境配置关键字多图注释Title多行title图注头部或尾部添加注释多行header/footer放大率类图接口抽象类枚举 类型关系泛化关系&#xff0c;箭头指向父类实现关系&#xff0c;箭头指向接口依赖关系&#xff0c;箭头指向被依赖关系关联关系&#xff0c;指向被拥有者可以双…