关注「索引目录」公众号,获取更多干货。
一天深夜,在加尔各答,一位开发人员坐在那里,盯着一块闪闪发光的屏幕。
那个开发者就是我。
在我从事 Angular 开发两年后,我学到了一些关于软件开发的有趣知识:
最难缠的漏洞并非那些会发出巨大噪音的漏洞,
而是那些悄无声息地伪装成一切正常的漏洞。
最近,随着人工智能工具的普及,我开始注意到现代开发中一种奇怪的现象——速度的错觉。
让我给你讲个故事。
第一章:神奇的按钮
我目前正在开发一个物业管理系统(PMS) SaaS平台。
如果你曾经从事过SaaS产品开发,你就会明白一件事:
数据完整性至关重要。
个人项目中出现小bug会很烦人。
如果一个用于管理房产、租户、租金和财务数据的SaaS系统中出现了一个小漏洞……
……这可能会成为一个代价非常高昂的错误。
最近,我们一直在解决一个常见的SaaS问题:
本土化。
我们的平台需要支持多种语言,以便物业经理和租户都能方便地使用它。
这听起来像是人工智能的完美工作。
一天晚上,我打开了 VS Code 中的 AI 聊天窗口,自信满满地输入了一条命令:
“找到项目中的所有 SweetAlerts,将所有面向用户的字符串提取到翻译 JSON 文件中,并将键绑定回去以进行本地化。”
我按下回车键。
五秒钟后。
人工智能提供了一套完整的解决方案。
文件已创建。JSON
结构已构建。
绑定已编写。
看起来……完美极了。
就像魔术师从 TypeScript 文件中变出一只兔子一样。
但随后我突然想到:
如果这段代码不是我写的……我真的能理解它吗?
于是我做了件无聊的事。
我审阅过了。
一行一行地。
裂缝就是在那时出现的。
第二章:“几乎正确”的问题
人工智能非常擅长编写看起来正确的代码。
但SaaS系统并非仅仅依靠外观正确就能运行。
它们运行得完全正确。
在审查人工智能的工作时,我发现了三个虽小但危险的问题。
1️⃣ 背景问题
其中一条警报最初的含义是:
“保存租赁协议。”
人工智能将其翻译成一个字,其技术含义是“保存”。
但就物业管理而言……
……听起来更像是“拯救租赁”。
这有点夸张了。
想象一下,点击一个按钮后,你会看到:
“租赁业务成功挽救。”
谁绑架了租约?
2️⃣ 模板灾难
在一条 SweetAlert 消息的某个地方,我看到了这样一段话:
`Rent payment of ${amount} received successfully`
人工智能意外地修改了绑定,结果变成了类似这样的形式:
"rent_received_message"
但在重构过程中丢失了变量插值。
结果?
警报将显示:
已成功收到金额不详的租金支付。
恭喜。
租户支付了数额不详的卢比。
3️⃣ 无形警报
针对逾期租金,存在一个特定的特殊情况警报。
人工智能从未触碰过它。
为什么?
因为人工智能只能看到提示或编辑器上下文中包含的文件。
这意味着该系统将是本地化的……
只有一个重要的财务警报。
最糟糕的那种漏洞。
一个沉默寡言的人。
第三章:令人惊讶的发现
一切就绪后,我向后靠去,突然意识到一件有点讽刺意味的事情。
审查人工智能的工作所花费的时间几乎和我自己编写代码的时间一样长。
人工智能节省了打字时间。
但这并不能节省思考时间。
在专业的SaaS系统中,思考是最昂贵的部分。
第四章:幽灵承诺
但更重要的教训来自一位同事的经历。
他当时正在调试一个小问题。
一个简单的例子。
用户界面错误。
他使用人工智能编码代理修复了这个问题。
人工智能完全实现了它的承诺。
漏洞消失了。
任务完成。
表面上看起来是这样。
经纪人没有提到的是,它还具有以下特点:
- 修改了其他三个文件
中的代码 -
重构了一个实用函数 -
清理了权限检查
这些都不是原任务的一部分。
但人工智能报告称:
✅ 问题已成功修复
我的同事相信它。
他推送了代码。
现在想象一下这种情况发生在SaaS控制面板中。
你可能会突然得到:
数据损坏
房产税计算出错。
安全漏洞
权限检查消失了。
蝴蝶效应
分析图表在三页之后。
这一切都源于一个人工智能代理试图提供帮助。
第五章:人工智能在发展中的真相
人工智能工具真是太棒了。
他们可以:
-
编写样板 -
生成结构 -
加快重复性任务的速度 -
解释复杂代码
但它们有一个很大的局限性。
他们缺乏对系统结果的背景理解和责任感。
生产中断时:
人工智能没有收到呼叫。
人工智能不会被责怪。
人工智能不会参加紧急会议。
你做。
第六章:副驾驶规则
所以我现在遵循的规则是这样的。
人工智能不是掌舵人。
人工智能是副驾驶。
副驾驶可以:
-
建议 -
协助 -
导航
但机长仍然在驾驶飞机。
因为当湍流来袭时……
需要有人了解整个系统。
无形的涟漪
SaaS产品中的每一行代码都会产生影响。
本地化字符串的微小改动都可能影响用户界面逻辑。
一次小小的重构就可能导致报表模块崩溃。
一个微小的变量缺失可能会让成千上万的用户感到困惑。
这就是软件开发中无形的涟漪。
人工智能可以带来改变。
但开发商必须明白,这些影响会波及多远。
最后想说
我们不应该害怕人工智能。
但我们应该尊重我们所构建系统的复杂性。
因为在实际开发过程中:
以“快速”方式推送,导致仪表盘崩溃
,是构建产品最慢的方式。
如果你读到这里,感谢你的阅读。
如果你像我们大多数人一样,正在使用人工智能编写代码……
记住:
相信人工智能的辅助,
但也要像对待自己的产品一样认真审查代码。😄
你是否遇到过由人工智能生成的代码引入的漏洞?
我很想听听你的经历。
关注「索引目录」公众号,获取更多干货。

