当前位置: 首页 > news >正文

AI 编程时代,为什么脚手架依然不可替代?

AI 能写代码了,为什么我还是建议你用脚手架?

“AI 给我生成了一个用户注册接口,上线第一天就被 SQL 注入了。”

这是一位真实开发者在技术社群里的吐槽。

一、AI 编程的"暗面":那些没人告诉你的坑

2025-2026 年,AI 编程工具全面爆发。Cursor、Claude Code、GitHub Copilot、通义灵码、WindSurf……你随便拉一个开发者,他都在用 AI 写代码。

但冷静下来看看真实情况:

1.1 AI 生成的代码,安全漏洞遍地

AI 训练数据来自开源社区,而开源社区里有大量不安全的代码。AI 会毫不犹豫地"学习"这些坏习惯:

// AI 可能给你生成这样的代码(真实案例)@GetMapping("/user/{name}")publicUsergetUser(@PathVariableStringname){Stringsql="SELECT * FROM user WHERE name = '"+name+"'";returnjdbcTemplate.queryForObject(sql,newUserRowMapper());}// ↑ SQL 注入,一行搞定
// AI 可能这样处理密码user.setPassword(request.getPassword());// 明文存储,nice
// AI 可能这样处理权限@DeleteMapping("/admin/user/{id}")publicvoiddeleteUser(@PathVariableLongid){userService.deleteById(id);// 没有权限校验,任何人调接口就能删用户}

你让 AI 写 100 个接口,可能 30 个有安全问题。而你一个都看不出来——因为 AI 生成的代码"看起来很专业"。

1.2 AI 不懂你的架构,每次都在"重新发明轮子"

假设你的项目已经有一套异常处理体系:

// 你们项目的标准写法@PostMapping("/order")publicResult<OrderVO>createOrder(@RequestBody@ValidOrderCreateDTOdto){returnResult.success(orderService.create(dto));}// 异常由 GlobalExceptionHandler 统一捕获// 业务异常抛 BizException,框架自动包装成标准响应

但 AI 不知道。它会给你生成这样的代码:

// AI 生成的写法——完全无视你项目的规范@PostMapping("/order")publicMap<String,Object>createOrder(@RequestBodyMap<String,Object>params){Map<String,Object>result=newHashMap<>();try{// 业务逻辑混在 Controller 里Orderorder=newOrder();order.setProductName((String)params.get("productName"));order.setPrice(newBigDecimal((String)params.get("price")));orderMapper.insert(order);result.put("code",200);result.put("msg","success");result.put("data",order);}catch(Exceptione){result.put("code",500);result.put("msg",e.getMessage());// 异常信息直接暴露给前端}returnresult;}

每一个新对话,AI 都在从零开始"设计"你的系统。它不知道你项目有统一的Result封装、有统一的异常处理、有 DTO 校验规范。它只知道「你要一个创建订单的接口」。

1.3 AI 生成的代码无法维护

这是最致命的问题。想象一下:

第一天:让 AI 写了用户模块 → Result<T> 返回格式 第二天:让 AI 写了订单模块 → Map<String, Object> 返回格式 第三天:让 AI 写了支付模块 → ResponseEntity 返回格式 第四天:让 AI 写了商品模块 → 自定义 ResponseVO 返回格式

同一个项目,4 种返回格式。后面接手的人(可能是三个月后的你自己)看着这堆代码,只能默默关掉 IDE。

更别提:

  • 有的接口用@Valid校验参数,有的手动 if-else
  • 有的模块用 MyBatis-Plus,有的直接写 JdbcTemplate
  • 有的地方用了缓存,有的地方查询没走缓存
  • 有的接口有权限校验,有的完全没有
  • 异常处理方式五花八门:有的 try-catch,有的抛异常,有的返回 null

1.4 多租户?数据权限?AI 根本想不到

如果你做的是 SaaS 系统,需要多租户隔离:

// AI 完全不会考虑租户隔离@GetMapping("/orders")publicList<Order></
http://www.jsqmd.com/news/986491/

相关文章:

  • 2026年上海搬家公司大盘解析 传统搬家套路梳理与日式一站式服务全面对比 - 信息热点
  • 智谱清言怎么转 PDF?借助 AI 导出鸭实现格式高效转换
  • 以正道致长远:重塑教培行业良性竞争生态 - 速递信息
  • 2026贵阳中考高考志愿填报机构怎么选?体制内就业破局指南 - 年度推荐企业名录
  • 珠海香洲区黄金回收行情与六家正规机构深度对比 - 上门黄金回收
  • 2026重庆名表回收战力TOP榜单:欧米茄积家横评,收的顶断层登顶 - 奢侈品回收测评
  • 2026年待办清单软件推荐:哪款日程管理工具真正好用?
  • 2026申请专利选哪种?自己申请还是找代理?广州专利代理机构优选TOP3测评|发明/实用新型/外观申报方式对比|成本明细、授权差距、适用场景、避坑决策全套指南 - 速递信息
  • GraphQL服务性能深度解析:Mercurius的3大优化策略与架构思考
  • IMO是谁?凭什么管全球航运?一篇读懂航运“总舵主”
  • 如何参考广东PCBA工厂排名选厂?FIRES方法论给出标准方案 - 资讯纵览
  • 2026 灵宝厨卫屋面地下室漏水瓷砖空鼓测评:吉修匠 99.8 分五星榜首 - 吉修匠
  • 成都西装定制权威指南:5 家顶级店铺深度测评 - 西装爱好者
  • 2026安徽中考分数不够普高怎么办?有什么出路? - 小张zc
  • 2026年上海酒店家具回收处理完全指南——找官方一站式回收商这样做最稳 - 年度推荐企业名录
  • Nx 构建系统与类型缓存:提升 TypeScript 开发效率的利器
  • 2026年室内淘气堡厂家推荐榜单:商场/儿童乐园/幼儿园/亲子主题乐园淘气堡品牌实力与性价比深度测评 - 品牌发掘
  • 新中国建成的最大运河,很多人还没听过
  • 住宅代理 vs 链式代理:区别、原理与应用场景全解析
  • 吃透Transformer:结合翻译实例逐步拆解
  • 2026年合肥汽车贴膜门店合规资质横向深度测评 - GrowthUME
  • PS5 NOR Modifier终极指南:修复PS5 NOR文件与UART通信的完整解决方案
  • 台球连锁加盟:万亿休闲经济下的新赛道与品牌格局 - 商业观察
  • MinerU技术架构深度解析:构建企业级文档智能处理引擎
  • 2025_NIPS_Prediction and Control in Continual Reinforcement Learning
  • 一轮复习——E.位运算模型总结
  • 2026年贵阳高考志愿填报机构避坑指南|如何找到真正懂体制内就业的咨询师 - 年度推荐企业名录
  • 2026 无锡滨湖区黄金回收指南!小白避坑 + 5 家放心店排名 - 禹竞
  • 第223期方班学术研讨厅成功举办
  • 船上这5个小众岗位,能认出的都是老航运人!