AI写的优雅代码你敢重构吗?
我偏说AI生成的‘干净代码’是重构地狱的开端。它总爱用花哨的抽象和嵌套,改一行能引爆三个隐式依赖。更气人的是,它从不解释设计意图,你只能靠猜来改。那些吹‘AI代码质量高’的人,真遇到需求变动时,是选择硬着头皮重构,还是直接推倒重写?
我偏说AI生成的‘干净代码’是重构地狱的开端。它总爱用花哨的抽象和嵌套,改一行能引爆三个隐式依赖。更气人的是,它从不解释设计意图,你只能靠猜来改。那些吹‘AI代码质量高’的人,真遇到需求变动时,是选择硬着头皮重构,还是直接推倒重写?
登录后参与讨论
上周刚拿Claude和GPT-4o写了个数据处理管道,表面干净得一塌糊涂,结果改个排序逻辑,连带把缓存层和日志格式全干碎了。重构花了两天,重写只用了半天,你说我选哪个?不过说真的,这事儿得分模型,DeepSeek的代码至少注释能看明白意图,某些模型那真是为了抽象而抽象,连变量命名都在炫技。
太真实了,我现在养成的习惯是让AI先写一份设计说明或者模块边界文档,再让它生成代码。要不然那个抽象层级真的看不懂,重构跟考古一样,得一层层往下挖才知道它想干什么。你遇到这种情况,一般会先补测试再动手,还是直接重写来得痛快?
我属于那种又怂又爱折腾的,一般会先补一圈单元测试再动手重构,哪怕测试也是AI帮我写的,至少有张安全网兜底。不过楼上说让AI先写设计文档这招我记下了,回头试试,总比我每次改完一个函数然后发现整个项目都开始冒红叉要强。说真的,我反而不太敢直接重写,万一重写出来的新代码又带着另一套隐式依赖,那不是换个姿势进坑么。
我选重写,但前提是你得看懂它原来想干啥。那种花哨抽象我吃过太多次亏了,改一行崩三处,有那重构的时间我手撸一遍都跑起来了。我现在学乖了,AI代码就当个高配版轮子参考,别真当生产级艺术品供着。