一个月没有人工智能
几个月前,我决定在我正在构建和维护的 FOSS 项目 LibreWeddingPlanner 中不再欢迎 AI 的贡献。并不是因为它获得了很多 AI 的贡献——实际上我收到的所有贡献都是翻译和功能请求——但我想要避免未来的麻烦并对 AI 采取立场。然而,虽然我没有在我的 FOSS 贡献中使用 AI,但我在工作中一直在使用它。在我的工作场所,以及在我许多开发者朋友的工作场所,使用 AI 工作是非常非常普遍的。带着一丝羞愧,我想告诉你这个经历以及它如何让我变得愚蠢、懒惰,并且成为一个更糟糕的开发者。甜蜜的开始 一位朋友告诉我,嘿,你应该试试,你会感觉非常强大。一旦你开始使用它,就无法停止。那些花了你几天的任务,你可以在几小时内完成。不是的,我们不是在谈论可卡因,虽然在某种程度上我认为使用 AI 是一种上瘾。我开始启用 vscode 中的增强自动完成功能(或者说它是自动启用的?),接着下载并使用其他代码生成模型是自然而然的事。当我还是个孩子时,我记得我的父母在学校门口说要小心那些给你糖果的坏人,那些不是糖果,那是毒品。当我二十多岁时,我开玩笑说,是啊,就像他们现在免费给毒品一样,嗯?可是,在三十多岁时,我觉得他们可能真的这样做。一旦你开始使用 AI 编码代理,事情就会迅速失控。在开始时,你请求 AI 为你实现一个函数,或者为某段代码编写测试。如果你很久以来一直是个 TDD 人,通常会倾向于先让它为你做测试,这样你就可以写代码了。除了你不再自己写代码,你只是让 AI 去做,而 TDD 的一半目的(不通过你的实现方式来影响测试)就消失了。但是你觉得你进展很快以至于你开始不在乎。有一天,我发现那个代理在我提交的提交中共同签署,我急忙去取消这个设置。就像,我想假装代码是我自己的。天啊。失去控制 如果事情就停在那里那就还好,但大多数人脑子可不是这样工作的。如果你喜欢某样东西,而你可以拥有两倍的效果,你就会去追求它。我开始复制整个 Jira 票证的描述,然后让 AI 为我实现它。太棒了!!如此强大!!在一个对我来说相对较新的代码库上工作,我开始失去对哪些更改是真正需要完成任务的控制。我想,如果 AI,它读过项目中的每一行代码,认为这是需要的,那就这样吧。控制是一种幻觉。我讨论过的其他人也同意,他们并不完全知道他们推送到生产的代码到底做了什么。我敢打赌,我们甚至不知道 20% 的代码。真是吓人。但事情并没有就此停止。当我有一个小任务时,我把它交给 AI,大约 30 分钟我得到了一个 PR。在那 30 分钟里我在做什么?改变焦点。很快我意识到我可以有一个以上的代理同时在多个 git 工作区上处理不同的任务。完全的力量!Tokenmaxxing!我通过 ACLI(命令行界面)将代理连接到 Jira,只需告诉他们“在一个单独的工作树中处理这个 jira 票证”。它就开始工作。我感到非常兴奋。当任务不那么小的时候,你会觉得我是自己在做对吧?当然不是。我当然会让 AI 将其分解为更小的任务,然后进行处理。然后 AI 会给我一个超级有说服力的 PR,里面有我不太理解的一堆更改。我究竟怎么能请求对这些更改进行代码审查?我的同事会怎么说?当他们(特别是在那个代码库中更有经验的人)问我为什么要做这个或那个时,我要怎么说?我又该如何承认这一切都是 AI 的功劳,而我不过是一个 AI 的牧羊人?因此,我逼迫自己去理解代码。并不是说我想理解这个代码库的架构,我只是想避免由于不知道自己在做什么而感到羞愧。在某个时刻,我有太多的 AI 代理在工作,焦点的变化对我来说太过沉重。有些我本可以很轻松在 20 分钟内完成的任务,却花了 AI 代理 5 分钟,然后我花了 2 天去审查。因为还有那么多其他事情。而也许 AI 和电脑擅长上下文切换,但我并不擅长。我感到筋疲力尽。因为如果仅仅是审批写得完美的 PR,那也不错。但对于每一个 PR,我都必须审查代码、测试、样式,给出反馈,切换到其他任务,再回过来,推送,看看是否有 PR 评论,CI是否通过,等等,现在 linter 抱怨了。你花了两天时间去交付一个本可以在一小时内集中精力完成的任务。在我个人的经验中,乘以 AI 的表现只是一个幻觉。不过,乘以愤怒和疲惫是有保证的。我想我没有给 AI 分配过一个单一的任务。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡