(2023) Verwenden Sie AIGC, um eine Zusammenfassung der iOS-Projekteinheit zu schreiben

Projekte, die es zu entwickeln gilt

Projektfunktion

Entwickelte einen Videoplayer mit ChatGPT. Zu den Funktionen, die das Schreiben erfordern, gehören:

☆ Lokale Dateien, Online-URL-Wiedergabe, Pause ☆ Klicken Sie auf den leeren Bereich, um das Bedienmenü aufzurufen, und klicken Sie dann zum Verschwinden ☆ Manuelle horizontale und vertikale Bildschirmumschaltung ☆ Anpassung der Wiedergabegeschwindigkeit, begrenzt auf das 0,5-, 1,0- oder 2,0-fache der Geschwindigkeit ☆ Fortschrittsbalken Ziehen ☆ Weitere Downloads, Pufferverwaltung und andere Funktionen

Schließlich hat mir ChatGPT geholfen, das Schreiben mehrerer Klassencodes abzuschließen, von denen der wichtigste die externe Schnittstellenklasse ist VideoPlayerView.

Zielplattformen und Sprachen

☆ System iOS-Umgebung Xcode

Nichts anderes, wählen Sie das, mit dem Sie vertraut sind.

Andererseits muss ich nur einen Player schreiben, der in das entwickelte Produkt eingebettet werden soll, und zum Üben einfach ChatGPT verwenden.

☆ Sprachziel C

Dies geschieht, um ChatGPT weniger schwierig zu machen, aber auch um es mir weniger schwer zu machen, ist die Kompatibilität mit der Swift-Sprachversion eine Katastrophe. Wenn aufgrund von Inkompatibilität viele Kompilierungsfehler auftreten, bin ich für deren Bereinigung verantwortlich.

Und für eine ausgereifte Sprache wie OC glaube ich, dass KI das gut kann.

Da jedoch manchmal das C-SDK von iOS verwendet wird, muss ChatGPT auch einige Codes schreiben, um die C-API aufzurufen.

Das Folgende ist meine Meinung zu ChatGPT durch das Testen dieses Projekts.

Bei der Entwicklung aufgetretene Probleme

Kommunikationsproblem

☆ Anforderungserklärung ist ein großes Problem

Mit ChatGPT ist es schwieriger, Ihre Bedürfnisse klar zu beschreiben, und bei manchen Gelegenheiten kommen die Leute leicht auf die Idee, es einfach selbst zu schreiben.

Beispielsweise müssen die folgenden Anforderungen der KI sorgfältig erklärt werden.

  • Der Player ist nicht auf die Ausrichtung des Mobiltelefons angewiesen, sondern sollte sich am festen vertikalen Bildschirm orientieren.
  • Der Spieler kann die Richtung manuell drehen, aber diese Drehung ist keine „echte Drehung“, das heißt, was gedreht wird, ist die Ansicht selbst, und die Anzeigerichtung des Mobiltelefonbildschirms bleibt tatsächlich unverändert.

Angenommen, ich bin Produktmanager und mein Partner ist Programmierer. Im Allgemeinen kommunizieren wir bei Dingen, die schwer zu sagen sind, indem wir Bilder bereitstellen oder einige Entitäten vor Ort zeigen.

Aus diesem Grund ist die „persönliche Kommunikation“ zwischen Menschen effizienter für die Lösung komplexer Probleme.

Dies ist jedoch angesichts von ChatGPT nicht möglich.

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 能帮开发者上架做什么

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

移动开发者联盟加入指引

Guess you like

Origin juejin.im/post/7226632657152278588