AI 写代码总是乱?吴恩达力推的测试驱动开发(TDD),能帮你兜底

为什么 AI 写代码总是乱?因为它没目标。

测试驱动开发(TDD) 就是给它戴上眼罩还能跑直线的护栏。

你有没有遇到过这种情况,你对 AI 说,「帮我写个登录功能」

结果,它给你加了个验证码功能,但你根本没打算要。或者它只支持密码登录,完全不管手机号、第三方登录。【gzh:和平本记】

更糟糕的是,你改了一个小 bug,却莫名其妙导致其他功能挂掉。

这就是 AI 编程的三大痛点:

1、模糊性

AI 天生就具有创造性和模糊性,你用自然语言描述一个需求,比如:帮我写一个登录功能。

AI 对这句话的理解可能有十几种方式。它可能会添加「记住我」功能,或者选择一个你并不喜欢的验证库,或者仅仅支持密码登录,不支持手机号等其他第三方登录。

这种不确定性是 AI 编程最大的挑战。

2、缺乏全局感知

AI 缺乏对整个代码库的全局理解。

你让它修复一个小 bug,它可能会在修复的同时,无意中破坏了几个其他不相关的功能。

这种「回归」问题在 AI 编程中非常常见,而且极难察觉。

3、调试成本高

传统的编程流程是:写代码 -> 手动测试 -> 发现 bug -> 人工调试。

而调试是整个编程环节中最耗费心智和时间的部分,有的 bug 你在调试过程中甚至能直接把你弄崩溃。

那有没有办法,把这匹野马拉回跑道?

答案是:测试驱动开发(TDD)

测试驱动开发(TDD) 怎么解决这些问题?

TDD 的核心,就是先写测试,再写代码。这一步,彻底改变了你和 AI 的协作模式。

1、把模糊需求变成精确目标:

我们通过编写测试用例,将模糊的自然语言需求,转化为精确、可执行的机器语言规范。

1)没测试时

你想让 AI 帮你写一个用户登录注册功能,AI 随便发挥,最后是不是你想要的?看运气。

2)有测试时

我们先把测试写好:

当输入有效邮箱和密码时,数据库里必须多一条记录,并且函数返回一个包含用户ID的对象。

当密码少于8位时,必须抛出 PasswordTooShortError 异常。

这样 AI 在写代码的时候就能明白他的目标是什么,测试用例可以将 AI 的创造力约束在一个确定的轨道上,迫使它精准地实现你想要的行为,而不是它自己想象的行为。

2、给你一张回归安全网:

一套全面的测试套件,就是一张「回归」安全网。

当你让 AI 进行任何修改(无论是添加新功能还是修复 bug)后,你只需运行一遍完整的测试。

如果某个不相关的测试突然失败了,你就立刻知道 AI 的这次修改产生了副作用。

你可以马上让 AI 撤销修改或用 git reset,并告诉它:你的修改破坏了 test_user_profile_update 这个测试,请在不破坏它的前提下重新修复。

有了这张网,AI 再也不敢牵一发而动全身。【gzh:和平本记】

3、调试从此更轻松:

传统流程:写代码 → 手动测试 → 找 bug → 人工调试。

TDD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值