我连续30天使用人工智能编写代码。以下是实际发生的情况。
我整整一个月都用人工智能助手代替了以往的编码工作流程。结果令人震惊,说实话,也让我大开眼界。以下是我的真实分析。
设置:全面采用人工智能优先
三周前,我和同事拉米娅打了个赌。她声称人工智能永远无法取代“真正的开发者”,它只不过是功能更强大的自动补全工具而已。我不同意。于是我们打赌,赌注是一个月的咖啡钱,赌我能只用人工智能代码助手就开发出可用于生产环境的功能。
规则:
- ✅ 仅限人工智能助手(GitHub Copilot、ChatGPT、Claude 等)
- ✅ 允许使用 Stack Overflow 和文档进行研究
- ❌ 无需从零开始手动编写代码
- ❌ 禁止复制现有代码库
- ❌ Ramya 可以审阅所有内容
项目:一个使用 React、Node.js 和 PostgreSQL 构建的全栈任务管理应用程序。
剧透预警:我输了赌局。但原因并非你所想。
第一周:蜜月期
第1-3天:“我的天哪,这太神奇了!”
// I literally typed: "Create a React component for a task card with drag and drop"
// And got this:
import React from 'react';
import { useDrag } from 'react-dnd';
const TaskCard = ({ task, onUpdate }) => {
const [{ isDragging }, drag] = useDrag({
type: 'task',
item: { id: task.id },
collect: (monitor) => ({
isDragging: monitor.isDragging(),
}),
});
return (
<div
ref={drag}
className={`task-card ${isDragging ? 'dragging' : ''}`}
style={{ opacity: isDragging ? 0.5 : 1 }}
>
{/* Perfect task card implementation */}
</div>
);
};
我的第一反应是:“等等,它甚至包含了那些我没要求的 TypeScript 类型?”
优点:
- 安装时间从2小时缩短到15分钟
- 样板代码生成简直完美。
- API 端点自行编写
怪事:
- AI不断为一个简单的待办事项应用程序推荐企业级模式
- 生成了 47 行代码,而 12 行就足够了。
- 痴迷于到处添加错误边界。
第二周:现实检验
第 8 天:第一个重大漏洞
// AI generated this authentication middleware:
const authMiddleware = (req, res, next) => {
const token = req.headers.authorization;
if (token) {
jwt.verify(token, process.env.JWT_SECRET, (err, decoded) => {
if (err) {
return res.status(401).json({ message: 'Invalid token' });
}
req.user = decoded;
next();
});
} else {
res.status(401).json({ message: 'No token provided' });
}
};
看起来不错,对吧?错! AI 忘记处理“Bearer”前缀了。所有请求都失败了。因为我完全信任 AI,所以我花了 3 个小时才调试好。
终于:
接下来事情变得有趣起来。拉米娅开始观察我的创作过程,她说的一句话改变了一切:
“你不再是写代码了,你是在做响应式工程。”
她说得对。我的确非常擅长:
- 撰写精准的提示
- 分解复杂问题
- 代码审查和调试
但我已经与以下人员失去了联系:
- 低层次问题解决
- 性能优化本能
- 建筑决策
最终结果:谁赢了?🏆
拉米娅赢了这场赌局。但并非因为人工智能做不出这款应用(它完全可以)。她赢是因为我变成了另一种类型的开发者。
我在30天内完成了以下作品:
- ✅ 功能齐全的任务管理应用程序
- ✅ 用户身份验证和授权
- ✅ 通过 WebSocket 实现实时更新
- ✅ 响应式设计(最终实现)
- ✅ 94% 的测试覆盖率(人工智能非常重视测试)
我学到了什么:
好评👍
- CRUD 操作效率提升:速度提升 3 倍
- 样板代码生成:再也不用编写 Express 配置了
- 文档:人工智能生成的文档确实不错。
坏的👎
- 性能盲点:人工智能优化的是可读性,而不是速度
- 过度设计:一切都变得企业级
- 调试依赖项:当 AI 代码出错时,你会束手无策。
丑陋的😱
- 安全漏洞:人工智能有时会暗示存在漏洞的模式
- 依赖地狱:为所有东西添加软件包
- 黑箱问题:理解事物运作的原理
真心话:人工智能会取代开发人员吗?
简而言之:否。
详细回答:情况很复杂。
人工智能不会取代开发者,它只是改变了开发的形式。我们正在变成:
- 人工智能编排器而非语法编写器
- 架构设计师而非实施专家
- 问题定义者而非解决方案实施者
我的新混合工作流程🔄
30天后,我保留了以下内容:
1. Use AI for: Boilerplate, initial implementations, documentation
2. Use brain for: Architecture, optimization, debugging, business logic
3. Use both for: Code review, refactoring, learning new concepts
AI编码助手就像一位非常聪明的初级开发人员,他/她:
- 永不疲倦
- 了解所有框架
- 犯一些愚蠢的错误
- 需要持续指导
- 慢慢地学习你的行为模式
他们不是要取代我们,而是要让我们在编程中真正重要的部分——思考、设计和解决实际问题——做得更好。
接下来是什么?
我会将人工智能保留在我的工作流程中,但它只是一种工具,而不是拐杖。未来不是人类对抗人工智能,而是人类与人工智能的融合。
你自己试试这个实验:
- 选择一个小型项目
- 制定明确的人工智能使用规则
- 追踪哪些方法有效,哪些无效
- 分享你的结果
你使用AI编码助手有什么经验?你是“AI代表未来”阵营,还是“没有什么能超越人类直觉”阵营?欢迎在评论区畅所欲言👇
如果这篇文章对你有帮助(或者让你生气),请点赞❤️并关注,以便了解更多现代开发方面的实验。
文章来源:https://dev.to/shiva_shanker_k/i-used-ai-to-write-code-for-30-days-straight-heres-what-actually-happened-11c4