人工智能已成为现代软件开发中不可或缺的一部分。
诸如 ChatGPT、GitHub Copilot、Claude、Cursor 等工具可以在几秒钟内生成代码,而手动编写这些代码可能需要几分钟甚至几小时。
但在最近完成一个 JavaScript 项目后,我吸取了一个重要的教训:
人工智能生成的代码并不等同于可用于生产环境的代码。
项目背景
该任务涉及使用来自公共应用程序编程接口(API)的数据构建一个超级英雄目录应用。
该应用需要实现以下功能:
- 数据获取
- 表格渲染
- 分页
- 实时搜索
- 列排序
- 模态详情视图
- 统一资源定位符(URL)状态持久化
- 性能优化考量
乍一看,这似乎是使用人工智能辅助的完美场景。
因此,我开始严重依赖人工智能生成的解决方案。
陷阱
每次遇到错误时,我都要求完全替换受影响的代码。
示例包括:
- 分页问题
- 搜索行为异常
- 排序问题
- 模态框错误
- 表格数据缺失
人工智能经常提供看起来正确的代码。
有时它甚至显得非常自信。
不幸的是,自信并不等于正确。
几个生成的解决方案在试图解决现有问题的同时,引入了新的问题。
示例包括:
1. HTML 与 JavaScript 不匹配
表格渲染函数生成了十五列数据,而 HTML 中只包含八个表头。
结果导致:
- 数据错位
- 排序功能失效
- 用户界面行为令人困惑
代码在技术上可以执行,但应用程序运行结果不正确。
2. 数值排序错误
类似于以下的字符串:
- 78 kg
- 100 kg
是按字母顺序而不是数值大小进行比较的。
这导致:
100 kg
出现在
78 kg
之前,因为字符串比较时,“1”排在“7”之前。
正确的解决方案需要在排序前提取数值。
3. 回归问题
出现了一种常见的模式:
- 发现错误。
- 人工智能生成修复方案。
- 原始错误消失。
- 出现两个新错误。
这造成了一种循环,让人感觉进展不断,但实际完成却遥遥无期。
最终有效的做法
我不再要求另一次完整的重写,而是开始手动审查应用程序。
我检查了:
- 文档对象模型(DOM)结构
- 事件监听器
- 渲染函数
- 数据映射
- 排序实现
- 应用程序编程接口(API)响应结构
在短时间内,我发现了几个隐藏在层层生成代码之下的根本原因。
教训很简单:
理解系统比反复替换系统更快。
人工智能的优势领域
尽管面临挑战,人工智能仍然很有用。
它在以下方面提供了帮助:
样板代码
快速生成重复性代码。
文档说明
解释应用程序编程接口(API)和概念。
头脑风暴
建议我可能未曾考虑过的方法。
学习辅助
帮助理解不熟悉的设计模式。
如果使用得当,人工智能能显著提高生产力。
不应盲目信任人工智能的领域
生产环境逻辑
务必进行验证。
架构设
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。