AI不是替代你写代码,是替代你做重复劳动
先说结论:AI让我把一个平台的开发周期从6周缩短到5天。
但这不是因为我让AI「自动写代码」,而是因为我找到了一套人机协作的最佳实践。
我的工作流
第一步:需求分析(AI辅助,人决策)
我的提示词:
「我要做一个同城美食探店平台,核心功能:
- 商家列表(按距离排序)
- 探店报告发布
- 用户点评
- 优惠券
请帮我拆解技术方案和数据库设计。」
AI输出:
- 数据库表结构
- API接口列表
- 前端页面拆分
- 技术选型建议
关键点:AI给方案,你做决策。 AI会给你多个选项,你选最适合的。
第二步:数据库设计(AI生成,人审核)
AI可以快速生成表结构,但你必须审核。特别是:
- 索引是否合理
- 外键关系是否正确
- 是否有性能隐患
// AI生成的表结构,我审核后做了修改
// AI原版没有加 spatial index,我补上了
CREATE INDEX idx_restaurants_location
ON restaurants USING GIST(location);
第三步:后端API(AI生成骨架,人填业务逻辑)
// AI生成的骨架代码
router.get('/restaurants', async (ctx) => {
const { lat, lng, page = 1 } = ctx.query;
// TODO: 实现按距离排序的查询
ctx.body = { data: [], total: 0 };
});
// 我填充业务逻辑
router.get('/restaurants', async (ctx) => {
const { lat, lng, page = 1, pageSize = 20 } = ctx.query;
const offset = (Number(page) - 1) * pageSize;
const result = await db.query(`
SELECT *, ST_Distance(location, ST_MakePoint($1, $2)::geography) as distance
FROM restaurants
WHERE ST_DWithin(location, ST_MakePoint($1, $2)::geography, 5000)
ORDER BY distance
LIMIT $3 OFFSET $4
`, [lng, lat, pageSize, offset]);
ctx.body = {
data: result.rows,
total: result.rows.length,
page: Number(page),
};
});
第四步:前端页面(AI生成组件,人组装)
这是AI最擅长的部分。我通常这样用:
- 描述页面布局和交互
- AI生成完整的 React 组件
- 我做微调(样式、交互细节)
第五步:测试用例(AI生成,人补充边界情况)
// AI生成的测试用例
describe('RestaurantService', () => {
it('should list restaurants by distance', async () => {
const result = await service.listNearby(116.4, 39.9, 5000);
expect(result.data).toBeDefined();
});
// 我补充的边界情况
it('should return empty when no restaurants nearby', async () => {
const result = await service.listNearby(0, 0, 5000);
expect(result.data).toHaveLength(0);
});
it('should handle invalid coordinates', async () => {
await expect(service.listNearby(NaN, NaN, 5000))
.rejects.toThrow();
});
});
时间分配
| 步骤 | 传统方式 | AI辅助 | 节省 |
|---|---|---|---|
| 需求分析 | 1天 | 2小时 | 75% |
| 数据库设计 | 1天 | 2小时 | 75% |
| 后端API | 7天 | 1.5天 | 78% |
| 前端页面 | 7天 | 2天 | 71% |
| 测试 | 3天 | 1天 | 67% |
| 部署配置 | 1天 | 0.5天 | 50% |
| 总计 | 20天 | 5天 | 75% |
什么AI做不好
经过大量实践,我发现AI在以下方面需要更多人工介入:
- 复杂的业务逻辑:涉及多表关联、事务处理的场景
- 性能优化:AI写的SQL经常缺少必要的索引
- 异常处理:边界情况的考虑不够全面
- UI设计感:AI能写出功能正常的UI,但缺乏设计感
- 架构决策:该用缓存还是用队列,AI给不出最优解
AI辅助开发的最佳实践
1. 模块化提示
不要一次性让AI写一个大功能。拆成小模块,逐个生成。
2. 先给上下文
每次让AI生成代码前,先给它看已有的代码结构和约定:
「这是我的项目结构:
src/
services/
controllers/
models/
routes/
数据库用的是 PostgreSQL,
ORM 用的是 TypeORM。
请按这个结构生成代码。」
3. 生成后必审
AI生成的代码必须人工审核。重点检查:
- 安全漏洞(SQL注入、XSS)
- 性能问题(N+1查询、缺少索引)
- 错误处理是否完善
- 类型是否正确
4. 建立代码模板库
把验证过的代码模式存起来,下次直接复用:
// 我的模板库结构
templates/
api-crud/ // 增删改查模板
auth-module/ // 认证模块
upload-module/ // 文件上传模块
payment-module/ // 支付模块
效率工具链
我每天使用的AI工具组合:
- 代码生成:Claude / GPT-4
- 代码审查:AI Code Review
- 文档生成:AI 自动生成 API 文档
- 测试生成:AI 自动生成单元测试
- Bug修复:贴上报错信息,AI分析原因
写在最后
AI不会让程序员失业,但会用AI的程序员会让不会用的失业。
一个人做50个平台,不是因为我有多厉害,而是因为AI把开发效率提升了10倍,把门槛降低了10倍。
这可能是独立开发者最好的时代。