AI生成代码与软件工程矛盾:从模型房到宜居城的距离
临近当下时局,越来越不是技术领域的这一部分从业者,带着好像完整的演示版本,寻上文来,问出这样的问题:“能够帮我把这一堆人工智能生成的代码,转变成产品吗?”举例来说,律师想要依赖人工智能去打造合同审查的工具,咖啡店的老板想要搭建库存管理的系统,他们通过在周末借助人工智能拼凑出能够在本地运行的界面,然而却在“上线”这一最后的步骤上遭遇阻碍。这一现象正好揭示了当下人工智能与软件工程的核心矛盾之处:人工智能擅长编写代码,但是却不懂得怎样去构建软件系统,而构建软件系统这一方面才是程序员真正所具备的价值的体现之处。
代码≠软件:AI造的是“模型房”,人建的是“宜居城”
由AI所生成的代码,好似那经过精心渲染的别墅模型,其界面十分亮眼,交互极为流畅,在相应环境里点两下,简直可称得上是完美无缺,然而距离“能够住人”的产品,却还差得犹如隔着十万八千里之遥。有人曾经晒出了利用AI制作的库存管理demo,它依赖着本地数据库,API密钥被直接进行硬编码,错误信息完全依靠.log打印,看起来似乎能够查询库存、生成采购单,可是一旦将其放置到线上,诸如数据安全、并发访问、错误恢复等种种问题都必将立刻使得它陷入瘫痪状态。
软件绝非代码的单纯堆砌,而是一套对功能、安全以及可持续性予以兼顾的繁杂系统。倘若将软件比作 ,AI虽能够绘制出美观的建筑外观,然而却不晓得设计 sewer (错误处理)、power of (部署扩容)、fire (安全合规)。用户上传头像这一简单功能,AI 能写出完美的图片上传函数,然而它却不考虑图片压缩策略,也不考虑存储成本控制,更不考虑违规内容审核,甚至猜想不到要去适配 iOS 18 的新特性,这些存在于代码背后的“系统问题”,分布在产品、运维、法务这类多个维度,恰恰是软件得以稳定运行的关键所在。
软件工程的核心:不是“写”,而是“管”

真实的软件工程,其本质是“复杂度管理” 。一个面向线上的产品,它有可能涵盖用户登录、订单支付、消息推送等诸多模块,数量可达上百个 。单独去看每一个模块,均显得平淡无奇 。然而,要使得它们一同达成99.99%可用性、10万峰值QPS、数据达到最终一致,并且还要支持多地区部署以及平滑升级,那就需要在数百个约束条件里寻觅到最优解 。这恰恰构成了AI的短板 。
人工智能有欠缺“整体观”,可解决单个模块之问题,然难以察觉模块间关联风险。比如说,它有可能为库存扣减编写一段高效代码,却意识不到此逻辑于双十一峰值时会致使缓存雪崩;能够优化数据库查询语句,却无法预判数据倾斜时的锁表隐患。这些知识并不存在于训练数据里,而是存在于程序员无数次深夜进行排障的经验当中,比如说知道第三方SDK在特定系统版本的时候会出现闪退的情况,清楚缓存失效策略需要避开促销节点,明白多地区进行部署时存在的时区坑,这些所谓“踩过的坑”,构成了人类独有的复杂度管理能力。
AI是超级实习生,却成不了架构师
将AI视作顶尖实习生简直无比贴切,它学习速度快,编码速度快,能够迅速生成条理清晰的代码片段,甚至于连单元测试都能撰写好,然而却欠缺产品思维、成本意识以及风险预判能力。你要是让它达成“用户下单”功能,它会罗列出完美的订单创建逻辑,可就是不会去询问“库存不足的时候该作何处理?”“支付超时怎样进行回滚?”“用户取消订单之后优惠券需不需要退回?”。这些问题并非代码方面的问题,而是业务和技术相互交叉形成的命题,这命题需要对用户体验、财务合规以及系统稳定性进行权衡,AI不存在跨部门的上下文,所以自然不能够做出判断。
更重要不容忽视的是,AI没办法去设计那种具有“可一步步演化出来那般架构”。一个称得上不错的软件架构,它得能够为未来三年的业务增长提供支撑保障:像预留出可供电梯安装的墙体空间(也就是接口扩展)、具备可扛台风那般稳固安全的地基(这是高可用设计体现)、有着方便进行改造的管线(此为代码可维护性方面要求)。AI所生成的代码常常是那种“仅适用于一时的方案”,在今天能够满足当下需求,可一旦明天业务出现变化,那就必须得全部推倒重新编写制作。然而人类工程师会去思考谋划那种即使十年过去都不容易需要再次重写的架构,在灵活性以及稳定性二者之间寻找到最恰当的平衡状态——这样一种具备长远眼光的视角,是目前AI根本企及不了的。

门槛未降,只是前移:从“写代码”到“定义问题”
众多的人觉得AI把软件开发的门槛给降低了,实际上门槛只是从“编写代码”往前移至“界定问题”。以往,非技术的人员被卡在“不会编写代码”;当下,他们能够借助AI迅速做出demo,然而却被卡在“不清楚要化解什么问题”“怎样把需求转变为可落地的技术方案”。好比有人想要运用AI来做AI风控助手,可是就连“风控需要哪一些数据维度”“怎样界定风险阈值”都没有梳理清楚,所生成的代码自然而然只能停留在demo阶段。
未来的软件工程师,不再被叫做“代码打字员”啦,而是称作“复杂度翻译官”哟,要把那种模糊不清的业务需求,翻译成清晰明白的技术约束呢,还要将数百个系统目标权衡成可行的架构方案呀,然后借助AI当作工具去生成基础代码呢。AI会变成超级杠杆哦,能自动处理重复编码、重构代码呢,不过方向盘一直掌握在人手中呀,毕竟软件是那种“人驯服复杂度的艺术”呢,这条鸿沟,短期内AI没办法跨越掉的呢。
如若下次再有旁人手持AI demo宣称“就差上线了”,那么或许能够以这般方式予以回应;即“代码能够借助AI来撰写,然而要把它转化为能够运行十年的 ,却依旧得依靠人”。

欢迎 你 发表评论: