AI热点 1天前 120 浏览次数 0 评论

80%功能靠AI搞定,但剩下80%时间全在修Bug——灵魂拷问:“到底要不要用 AI”?

CSDN
CSDN

发布了 182 文章

【CSDN 编者按】当下,「AI 全程辅助开发」成为了新风口。但它真的能像宣传中那样,让程序员轻松高效完成所有任务吗?本文作者用两周时间做了一个实验——用 AI 从定义问题到写代码再到部署,全流程尝试。结果既有亮点,也有不少问题:AI 在加速部分任务的同时,也暴露了上下文缺失、可维护性差、幻觉频发等问题。

原文链接:
https://antropia.studio/blog/to-ai-or-not-to-ai/

翻译 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

显然,如今大模型(LLM)已经成为开发圈里新的“明星”。作为一名市场负责人,我当时提出:如果我们再不写点相关的内容,就会被时代甩在后面。于是我们决定搞一场实验:用 AI 从头到尾开发一个应用,尽可能“硬核”地依赖它。

结果呢?简单总结就是——我们觉得 AI 还不太行。

也许这个开头就劝退了你,但细节才是真正的关键。如果你想知道为什么我们没有“无条件跳上 AI 的快车”,请耐心看完这篇文章。

实验起点:从 Facebook Ads 的痛点开始

我们和朋友 Bernardo 一起折腾了几个月,最初的动机其实很简单——帮我妻子管理她店铺的 Facebook Ads。

说实话,那体验糟透了。广告平台本身就复杂,而 Facebook Ads 的界面又极度臃肿:报表、过滤器、广告创建、数据追踪……功能全都挤在一起,结果就是“纯混乱”。

于是我们想自己做一个简化版的 Facebook Ads 管理工具,基于官方 API,只为解决我们自身的场景需求,我们给它起名为 adbrew。

这看起来是一个绝佳的机会——用生成式 AI 来解锁生产力。

方法论:AI 驱动的开发流程

我们先关注了一些 AI 编程相关的账号,学习他们的工作流,然后选了技术栈:Remix(React Router v7).同时,我们订阅了 Claude Code,用它来作为主要的 AI 编程助手。

我们的开发流程大致是这样的:

● 定义一个 issue(待办问题/任务);

● 让 AI 来实现;

● 不断和 AI 来回沟通,补充或细化需求;

● 仔细 review 生成的代码;

● 提交、推送并部署;

● 循环往复。

同时,我们还维护了一个 Guidelines 文件,并且逐步加上 MCP、自动化检查等工具,希望能提升 AI 的表现。

问题逐渐浮现:两周的失望

整个实验持续了两周,随着时间推移,我们的挫败感越来越强烈。

最初我们安慰自己:这可是全新的 “Vibe coding”,只是我们还用不习惯。但就算不断优化流程、调整预期等等,结果还是不如人意。

以下是我们总结出的几个核心问题:

(1)永远缺少上下文

给 AI 的上下文越多、问题切分得越小,结果确实越好。但无论给多少信息,AI 总会擅自做假设,然后搞砸。它不会主动问我们,而是“自信满满”地填补空白。

(2)完全没有可维护性

我们无法让 AI 抽象出复用的逻辑。它经常把一段功能写成多个重复的实现。最后我们项目里出现了三种几乎相同的卡片组件。即使我们在 Guidelines 文件里强调已有组件定义,AI 依然视而不见。

(3)流程中断,没有开发节奏

当 AI 在写代码时,我们只能盯着屏幕,生怕它的思路偏离太远。试过“一边 YOLO 写 issue、一边让 AI 干活”,但根本没法找到完整的 30 分钟去专心做一件事,开发节奏被彻底打乱。

(4)幻觉频发

Facebook API 本来就复杂,文档也并不完整,SDK 类型系统薄弱。结果 AI 还经常“自编自导”:虚构参数、编造接口。再加上 Tailwind、React Router、dayjs、pino 等库,直接就成了灾难现场。

(5)80/20 定律显得更为残酷

AI 确实能帮我们快速完成 80% 的功能,但剩下的 20% 的边角场景、跨模块交互、异常处理,反而让我们花掉 80% 的精力。最终的结果是:表面能跑,但处处 Bug 和不一致。

结果:决定停下来

两周后,我们决定放弃。

代码库变得越来越大、越来越乱,我们逐渐无法掌控它。更重要的是,整个过程毫无乐趣,产出也不值得。于是我们换回了传统工作流,又花了两周时间清理烂摊子。

回头复盘时,甚至发现一些问题是我们自己在 review 时漏掉的,而不是 AI 的锅。

我们的结论:AI 有用,但远没到“全权代理”

不过,这并不意味着我们全盘否定 AI。在日常工作中,我们仍在大量使用它:

● 搜索引擎升级版:有时它能快速给出正确答案,并结合上下文定制化解决方案,效果非常惊艳。

● 代码片段生成器:写第 5 次 chunkify、clamp 或 mapValues 时真的很烦,AI 可以帮忙节省体力。

● 测试辅助:我们决定范围和框架,AI 补充测试用例,还能提醒我们忽略的边界情况。

● 语言相关任务:commit message、PR 描述、issue 内容的润色,全交给 AI 来审校。

换句话说,我们已经把 AI 从“写代码的主角”降级为“工具箱里的助手”,也更倾向于用本地 LLM,而不是云端模型,以保证数据可控。

至少就现阶段来说,我们不会把 AI 纳入核心开发流程。它确实能解决一些问题,但不足以支撑完整的工程实践。未来如果AI技术有质变,那我们会重新评估。

CSDN

CSDN

182 文章 26442 浏览次数 0 粉丝

评论 (0)

睡觉动画