测验开发的项目

项目功用

用 ChatGPT 开发了一个视频播映器。需求它编写的功用包含:

☆ 本地文件,在线 URL 播映,暂停
☆ 点击空白区域弹出操作菜单,再点击消失
☆ 手动反正屏切换
☆ 播映速度调整,限定 0.5, 1.0, 2.0 倍速
☆ 进展条拖动
☆ 其它一些下载,缓冲区管理等功用

最后由 ChatGPT 帮我完结多个类代码的编写,其中最主要的对外接口类是 VideoPlayerView

方针渠道和言语

☆ 体系 iOS 环境 Xcode

没别的,选熟悉的来。

另一方面,刚好需求写一个播映器嵌入到开发的产品中,正好拿 ChatGPT 练手。

☆ 言语 Objective C

这么做是想给 ChatGPT 降降难度,也是给我自己降降难度,Swift 的言语版本兼容性是个灾祸。假如呈现许多由于不兼容导致的编译过错,到时分担任清扫的仍是我。

而 OC 这样一门老练的言语,我信任 AI 能很好担任。

可是,由于有时分会用到 iOS 的 C SDK,所以 ChatGPT 也需求写一些调用 C API 的代码。

以下就是我经过测验这个项目,实践出来的对 ChatGPT 的看法。

开发中遇到的问题

交流问题

☆ 需求陈说是一个大问题

和 ChatGPT 描绘清楚自己的需求是比较费心的,在部分场合很容易让人发生“干脆自己写了算了”的想法。

例如如下的需求,需求仔细跟 AI 说明白。

  • 播映器不依赖手机的方向感应,它应该是固定竖屏为基准。
  • 播映器能够手动旋转方向,可是这个旋转不是“真旋转”,也就是说,旋转的是视图本身,而手机屏幕的显现方向事实上不变。

假定我是产品司理,我搭档是个程序员,一般来说关于说起来费劲的事,咱们会经过给图片,或者现场展现一些实体来交流。

这也是为什么人和人“当面交流”关于处理复杂问题更高效。

可是面临 ChatGPT 这一点是做不到的。

AI 不懂装懂

☆ ChatGPT 会说谎

ChatGPT 会说谎,并且由于它不是人,所以脸不红心不跳,你甚至不知道它在说谎(或许它自己也不知道)。

例如,有时分我让 ChatGPT 写一段代码出来,它会写出来,大部分时分都能正常工作,可是偶然会假造根本不存在的 API 。

☆ AI 无法正视过错

假如 AI 的代码里有 bug,我测验向它指出来,它一般会这么回答。

抱歉,我犯了过错。以下是我的修正计划……

可是,许多时分 AI 给出的修正计划并不能处理问题,可是它会“装得”如同现已处理了相同。

例如,我测验让 ChatGPT 来写播映器的进展条控件,并且该控件要带一个进展条显现球来展现播映进展,并能便利用户拖拽进展。

为了测验它的才干,我不自己写,尽量重复和它交流让它完结。可是,它写的进展条确实存在显现上的问题,以下是我和它的交流简略进程。


我:UIProgressView 的 duration 小于 0.1 时进展条没有显现。
它:为了修正这个 bug,你能够经过设置 minTimeInterval 特点。

progressView.minTimeInterval = 0.1

……此处省掉……
我:我:UIProgressView 并没有 minTimeInterval 这个特点。
它:抱歉,我犯了个过错。………此处省掉………


以上这类会话我现已见怪不怪,这只是无数次例子中的小小一个,从以上会话能够看出,AI 遇到自己不太了解的问题时,会测验假造一个处理计划来,并且听起来像模像样。

这关于许多容错率很低,或者出错就酿成大祸的工业级产品来说,很或许会发生灾祸。

AI 的知识是死的

AI 知识是死的,而开发遇到的问题是活生生的,脱离了文档知识的。

例如,假如 iOS 某个 SDK 现阶段有 bug,以至于用标准代码不能处理时,那么程序员就需求另辟蹊径,重新创始解法。

而 ChatGPT 只能依赖于现已知道的知识去创造代码(当然了,除非它提前吃了stackoverflow的帖子,这也是为什么stackoverflow在控诉内容隐私的原因),它不但没有才干调试,并且也没有才干去了解更细碎的现实问题(除非你去告知他)。

当然了,现在还有 AutoGPT 这些更厉害的 AI 出来了,能够自动查资料,调试编译代码,可是我还没测验过,不发表看法。

AI 代码的安全隐患

ChatGPT 写出来的代码十分规整,可是假如是写 C/C++ 言语的代码,那么就要小心了。

由于它真的会写出许多缝隙来。

例如,ChatGPT 会在某些缓冲区偏移量计算时犯错,导致内存写入时的溢出。

AI 没有感知才干

没有感知才干的 AI,是无法担任许多任务的,例如关于音视频的播映,人用“耳朵”去听,“眼睛”去看。经过这种方法来发觉播映器是否存在跳帧、卡顿、破音等现象。

而 ChapGPT 无法协助你,并且即使你发现了问题,将问题告知它,由于它无法感知问题的细节(由于它不会陪你“看”和“听”)所以设计不出处理计划来。

这也是为什么,这个测验项目尽管最后跑起来了,可是耗费的心力(指的是完全让AI写代码)让我觉得不太值得的缘故。

项目完毕后的总结

ChatGPT 是 API 活字典

ChatGPT 对所有公开的技能文档都十分熟悉,能够说是手到拈来。关于 iOS SDK 自然是不在话下。

所以,关于“某个实现用什么体系 API 来完结”,ChatGPT 能够完结的十分漂亮。

假如不让它写代码,而是把它当成 SDK 顾问,然后让它供给示例代码,对开发者来说等于多了一个高级帮工。

模版大师

ChatGPT 太擅长写模板了。所以开发者完全能够在设计一个类的时分,让 AI 帮忙写模板,自己去填细节。这比纯粹让 AI 写全部代码要靠谱的多。

要让 AI 独立处理问题,除非它变成“人”

假如 AI 没有作为人的行动才干,那么它就注定只能是个吃数据,吐结果的终端。

它无法经过声音判别音频数据播映出来的作用,也无法经过眼睛判别画面是否契合预期,更无法自动去外界测验设备,调试每一个设备上发生的问题。

当然了,你大能够说未来 AI 外接了各种设备被赋能之后怎么怎么厉害。但我仅就现在最老练的 AI 产品的体会得出结论。

☆ “喜爱说谎”的AI永远靠不住

ChatGPT 会胡编乱造,这早就不是新闻了,它会在不了解情况的前提下试图整合出一个像模像样的处理计划来。

从职业伦理视点讲,这几乎是不行容忍的。

所以,我以为只要 AI “喜爱说谎”,那么就要尽量防止让它独立完结任务(何况现在让它独立完结也确实够呛)

AIGC 用的作用好不好,取决于你强不强

AIGC 要求使用者本身有更高维度的水平。

技能人要求能区分 AIGC 发生的过错。

画师要求能区分和修正 AIGC 画作中的过错。

更要害的,AIGC 需求发问者提出问题,更优异的人才干提出更优异的问题,就这么简略。

请拉黑身边贩卖焦虑的号估客

不是说 AIGC 不强,也不是说开设 AIGC 课程有问题。

就现在来说,AIGC 真的很好用。

☆ 别的,ChatGPT 独立完结老练的代码框架,尤其是安全性要求低的小模型才干仍是很强的。

主要是想说,现在 “AI 黄牛”太众多了。一个个处处贩卖焦虑,大肆宣扬 AI 未来会让什么什么职业消失。

就算 AI 未来会让这么多职业消失,我信任处理计划也不是去找人买号,或者买什么midjourney课程。这种行为和房地产泡沫时期宣扬房价的中介没有差异。

未来的变数许多,AI 会发展成什么样谁也没稀有,假如它会对职业造成要挟,焦虑也没用,假如它不会造成要挟,焦虑也仍然没用。所以中止焦虑,也应该立刻屏蔽贪财短视的焦虑贩卖者。

假如想体会 AIGC,用一些免费的国内镜像即可,然后亲自体会,逐步领会,大可不必求新求大。

记住上一条结论:“AIGC 用的作用好不好,取决于你强不强”。

更多阅览

ChatGPT 能帮开发者上架做什么

生成式人工智能服务管理办法(征求意见稿)

移动开发者联盟参加指引