paint-brush
我的新初级开发人员有点糟透了经过@michaelsalim
1,193 讀數
1,193 讀數

我的新初级开发人员有点糟透了

经过 Michael Salim6m2023/05/12
Read on Terminal Reader

太長; 讀書

使用 ChatGPT 编写代码就像在您手下拥有初级开发人员一样。它可以在那里获得 80% 的代码,但你几乎需要检查每一行。在 UI 和交互之间,使用起来相当繁琐。我最成功的重复次数是 3 次。
featured image - 我的新初级开发人员有点糟透了
Michael Salim HackerNoon profile picture
0-item

那个开发者就是 ChatGPT,我对它又爱又恨。


现在关于 AI 的文章太多了,所以我会尽量缩短这篇文章。

长话短说:

使用 ChatGPT 编写代码就像在您手下拥有初级开发人员一样。他们可以在那里获得 80% 的代码,但您几乎需要检查每一行。

场景

我不得不承认,您可以通过多种方式使用 ChatGPT 来帮助编写代码。它可能在其中一些方面更好,而在其他方面可能更差。


例如,我听说很多人将它用作搜索引擎。我个人觉得这有点值得怀疑。通过搜索找到文档甚至答案并不难。我使用有助于减少绒毛的Kagi


相反,使用 ChatGPT,您应该如何知道答案是否正确?


另一方面,有很多人将其用作美化的自动完成功能。像Github Copilot这样的东西。我可以看到这很有用。


我选择的场景是:

将我的代码从chakra-ui转换为tailwindcss


为什么?


  • 这两种技术都有大量资源,尤其是 Tailwind(当然还有 HTML)。它应该有大量数据可供使用。


  • 很有可能创建一个程序来执行此操作。虽然可能有很多边缘情况,但功能本身很简单。 chakra-ui 的灵感来自 tailwind,因此它继承了一堆可以轻松转移的东西。


  • 这是我需要做的事情。所以这是其他人可能遇到的真实用例。

及时工程是一件苦差事

环顾这个领域,似乎提示得好是获得好结果或平庸结果之间的区别。我不是最擅长的,但我做了一些研究并尽力而为。


我确保使用多个提示使其达到良好状态。只有在它似乎知道它应该只转换我的代码时才粘贴我的代码。


老实说,这部分可以改进。在 UI 和交互之间,使用起来相当繁琐:


  • 它可能需要一些时间才能达到所需的状态

    在我思考要写什么,然后等待它回应并完成写作之间,做这项工作变得非常烦人。


  • 这是不一致的

    您不能总是重复使用相同的提示也无济于事。 ChatGPT 有一些随机性,所以我每次都必须调整提示。复制粘贴以前有效的提示没有帮助。


  • 很容易脱离理想状态

    如果是一次性的事情,上面的内容很好。但是我发现在第一次代码转换之后,AI 很容易忘记一切。我相信我重复最多的成功次数是 3 次。除此之外,它还返回了完全不相关的内容,例如解释我的代码的作用。


  • 令牌是一个相当大的限制因素

    由于其令牌限制,它只能生成这么多代码。您可以在此处查看分词器以了解它如何计算分词。对代码不是很友好。以下是其输出之一的示例。每种不同的颜色代表一个令牌。


    代币化代码

    因此,我必须将转换分成多个步骤。否则生成会中途停止。大多数时候告诉它继续是行不通的。结合以上几点,这很快就会变成一件苦差事。


    ChatGPT 在被要求完成其代码生成时抛出错误


总而言之,我得到的感觉是我不想写英文。如果我已经不得不写一些东西,我宁愿直接编写可以工作的代码。


我认为及时工程是未来必须具备的一项关键技能。类似于知道如何搜索是当今世界的一项关键技能。

输出还不错

对于它所做的所有工作,ChatGPT 确实输出了一些非常令人印象深刻的代码。下面是原始和结果之间的一些比较:


如您所见,它做得很好。


好的

  • 结构很好地带来了

    除了细节之外,HTML 结构与原始文件非常相似。间距关闭了,但整体布局仍然存在。


  • 文字内容不变

    内容本身处理得很好。尽管我不得不仔细检查所有这些,但都没有改变。唯一的例外是那些从 JS 派生的。


坏人

  • 它有随机课程

    有很多类什么都不做。有些被改变了,还有一些是无效的顺风类。


  • 有很多微小的差异

    UI 看起来就像一个库刚刚升级,有人忘记迁移代码。在这种情况下,这是因为 ChatGPT 随机更改了类的值。例如,3 到 4 的padding ,或将font-weight从粗体更改为正常。细节全错了。


  • 它有一半时间不起作用

    上面的截图是我可以直接比较的。实际上,结果要么不完整,要么就是错误到足以让我不得不做很多改变才能让它发挥作用。因此,我无法将其并排比较。由于代码无法运行,因此我无法与之相比。

这就像审查 PR 而不是编写代码

这有什么好处是我有一些工作要做。值得庆幸的是,这项工作本身非常简单。很容易发现错误。来自 chakra-ui 和 tailwind 的类之间的映射几乎是一对一的。这很乏味,因为语法不同。


但这种方法更类似于审查 PR。我必须扫描整个代码以确保一切都正确完成。


乍一看还不错。但是一旦你使用它并密切注意,就会有很多陷阱。它带来了这种虚假的安全感,一旦我发现了所有缺陷,这让我有点沮丧。


其中很大一部分是从其他代码库中插入的代码。它看起来并不可怕,但这不是我想要的。


甚至还有一些令人担忧的变化,例如将标题从 h2 更改为 h1。我只能假设它是因为内容而这样做的。


感觉就像一个初级开发人员把一些东西拼凑在一起,却没有测试他们的代码。现在我必须检查并修复它,而不能告诉他们自己修复它。


这太可怕了。我已经在工作中解决了审查 PR 的问题。现在我也必须为自己的项目做这件事吗?不,谢谢!

充满希望的未来

虽然我认为它还远未实现,但我确实认为 AI 会在未来的某个时刻对发展有所帮助。答案是否是法学硕士,谁知道呢?


令牌限制在不断增加

我已经拖延了足够长的时间来完成这篇文章。在那段时间里,有很多关于提高代币限额的公告。虽然我不确定它是公开的、付费的还是其他什么,但很高兴看到它。


提示用户体验应该随着时间的推移变得更容易

使用 ChatGPT 插件和更好的集成,应该改善记忆状态和一致性等问题。希望这会减少从 ChatGPT 获得有用输出所需的工作量。


同时,我手动完成了另一半的迁移。它更快吗?好吧,谁知道呢。感觉差不多。但是手动编写确实感觉好多了。