V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jinbangzhu
V2EX  ›  程序员

关于新来的技术 leader 准备用 Claude code 升级现有项目

  •  
  •   jinbangzhu · 14 小时 2 分钟前 · 7583 次点击

    现有的项目背景,已经平稳运行了有接近 10 年了。所有的拓展、报表、API 等全部基于 PHP7 Laravel 5.2 进行的开发,最终目标是升级到最新的 Laravel 12

    简单的使用 find . -type f -name "*.php" | wc -l 发现有接近 7500 个 php 文件。

    升级的原因是老板认为版本过老,有潜在的漏洞风险。

    关于新的 leader ,目测有 20 年以上的开发经验,但他几乎不懂 php ,有.net react nodejs 的开发经验,Claude code Max 忠实用户,最近又新开了几个 Max 账号给其它三位 php 开发。

    目前执行到了第一步,先简单的从 5.2 升级到 5.3 试试水,让 Claude/Chat-GPT 生成了大概 12 个步骤,每个步骤都单独进行 git commit ,整体执行下来已经消耗了整月 20%的 token ,升完后遇到 bug 喂给 Claude 解决,一直反复进行。

    三位同事的反馈是 Claude 升级的时候会改现有的业务逻辑,需要大量的时间去 review 代码。

    各位有没有使用过 AI 来进行老项目升级的经历?

    115 条回复    2025-10-23 20:42:28 +08:00
    1  2  
    collery
        1
    collery  
       13 小时 54 分钟前   ❤️ 2
    除非你现在的人员特别清晰系统代码、逻辑以及相应功能点,不然不能一口气吃个胖子。
    建议拆分 灰度 新项目这种弄
    Moyyyyyyyyyyye
        2
    Moyyyyyyyyyyye  
    PRO
       13 小时 53 分钟前   ❤️ 2
    属于 AI 带来的自信心膨胀,按道理平稳为什么升级,开拓新业务新方向不行吗 o(╥﹏╥)o
    swananan
        3
    swananan  
       13 小时 51 分钟前   ❤️ 3
    升级原因感觉就经不起推敲,很明显风险大于收益。

    Claude Code 或者 Codex 我觉得是具备做老项目升级的能力的,但是就跟普通开发去重构老业务一样,非常懂业务的老开发都可能被埋坑里爬不出来。如果你不给 Claude Code 和 Codex 提供足够详细的业务背景,完善的测试来兜底。那这么大规模的修改,不踩坑就奇怪了。

    另外,至少小规模按模块迭代,分批次上线吧,一口气改完是什么👻,开着飞机换引擎,一定要挑战最高难度吗,哈哈
    liuliuliuliu
        4
    liuliuliuliu  
    PRO
       13 小时 51 分钟前
    这个不用想,100%完成不了,而且 php 还不好测试,这就更困难了。
    Zhuzhuchenyan
        5
    Zhuzhuchenyan  
       13 小时 50 分钟前   ❤️ 1
    只借助 Claude Code 到 Laravel 12 很困难吧,查了一下 Laravel 12 是 2025 年 3 月 7 日发布的,而 Claude Sonnet 4.5 的知识截止日期是 2025 年 1 月

    Claude Sonnet 4.5 has a knowledge cutoff date of Jan 2025. This means the models’ knowledge base is most extensive and reliable on information and events up to Jan 2025.

    我司目前还没在大项目上完全依赖 AI 做升级,倒是在几个代码量小的 Nest.js 和 Angular 项目中测试过 AI 跨一个大版本升级的能力,怎么说呢,还凑合,相较于人类工程师来说并没有节省很多时间。因为还是需要大量的时间去审阅所有的改动。
    et5494
        6
    et5494  
       13 小时 50 分钟前   ❤️ 1
    现在不太适合直接应用于整个完成的复杂的生态
    在这种项目中 AI 会增加添加很多“创新”
    我们项目之前玩过,后面放弃了,工作量太大
    一个微信小游戏项目
    Hyxiao
        7
    Hyxiao  
       13 小时 49 分钟前   ❤️ 1
    可以尝试把老服务单独,可抽离的,拆分出新的服务出去,慢慢去迭代。
    jarl
        8
    jarl  
       13 小时 49 分钟前
    骂他 sb
    Georgedoe
        9
    Georgedoe  
       13 小时 47 分钟前   ❤️ 1
    这跟只写代码不调试有什么区别 , 没测试用例保障, AI 给你业务改了都不知道啊
    Ketteiron
        10
    Ketteiron  
       13 小时 44 分钟前   ❤️ 1
    大型项目想使用 AI 简单重构不太现实,投入大量时间是必然的。
    我的建议是直接用最新版重写,或者换语言,或者什么都别做,这取决于开发资源有多少。
    如果只是为了解决"漏洞",升级后还有会别的漏洞,现有代码迁移到新环境可能有新的运行时隐患,如果只是一次性投入开发资源解决旧版本隐患,说实话没多大意义。
    SGL
        11
    SGL  
       13 小时 43 分钟前   ❤️ 1
    这个就如同完全让”智驾”在路上狂飙一样让人心惊胆战。
    hejw19970413
        12
    hejw19970413  
       13 小时 39 分钟前
    升级不如重写,重写不如不写
    spritecn
        13
    spritecn  
       13 小时 37 分钟前
    这比重写一个工作量大
    NoobPhper
        14
    NoobPhper  
       13 小时 37 分钟前
    说明你领导 什么都不懂, 对软件工程没有敬畏之心, 最基本的 ROI 都估不出来
    version
        15
    version  
       13 小时 37 分钟前   ❤️ 1
    想要避免漏洞.那就写中间件转发请求呢..用 nodejs 都行..这样随时微服务隔离后续的开发.旧的代码包一层监控起来..
    现在的机器性能.没啥性能瓶颈.无限套娃请求都无所谓的.花那时间还不如加硬件配置..
    Ai 写很多旧业务都模拟不完..
    也有可能说说而已..不然怎么入职..最终会妥协最小改动
    gitjcc
        16
    gitjcc  
       13 小时 35 分钟前
    跨度太大了,升级不如重写 +1
    Chaidu
        17
    Chaidu  
       13 小时 34 分钟前
    一步到位,从 5.2 直接升到 8.4 ,也别去检查代码,出问题就甩锅给领导和 AI
    wysnxzm
        18
    wysnxzm  
       13 小时 34 分钟前   ❤️ 3
    手里有锤看什么都是钉,砸到手就老实了
    HENQIGUAI
        19
    HENQIGUAI  
       13 小时 33 分钟前
    这种感觉行不通,AI 现阶段虽然强,但还是不能无视软件工程这么多年的基本法。
    bojue
        20
    bojue  
       13 小时 32 分钟前
    Claude 帮我写前端,模版式的 CRUE 项目开发没任何问题,但是我的编辑器配置部分给我写崩了
    MIUIOS
        21
    MIUIOS  
       13 小时 31 分钟前   ❤️ 1
    出了问题他可以背锅的话随便升,如果是开发背的话,当我没说
    jhdxr
        22
    jhdxr  
       13 小时 30 分钟前   ❤️ 1
    1. 我个人经验 laravel 在你们没定制底层的基础上兼容性其实是很好的。有很多老的方法现在不推荐使用(甚至文档上完全没有相关踪迹),但依然是可以使用的。(例如 model 里自定义属性以前是用同名方法现在是用 Attribute ;鉴权以前可能是在 controller 的前置 filter 或 middleware 里完全自己写逻辑现在推荐用 guard )
    2. 个人经验,单纯的依赖 AI ,它会把很多老的方法改成最新的推荐的写法,这当然没错,但没必要,尤其是一次性改这么多是毫无疑问不推荐的。。。
    3. 建议是直接 composer 硬升版本,然后把 bug 丢给 AI 去解决
    4. 更好的做法是让 AI 先去写一堆 test cases ,然后再升级
    Duanye7X24
        23
    Duanye7X24  
       13 小时 28 分钟前
    这不纯纯的给你送经验吗?锅他背,你去实践积累经验
    acerphoenix
        24
    acerphoenix  
       13 小时 26 分钟前   ❤️ 1
    上面所有同学说的反对意见都很正确,贴合实际,但作为旁观者,我倒是想看看这么升级的进展, 反正我自己肯定不这么搞
    Kevin2
        25
    Kevin2  
       13 小时 23 分钟前 via Android
    重构火葬场👻
    way2create
        26
    way2create  
       13 小时 23 分钟前
    代码另说,各种文档完善吗?
    beneo
        27
    beneo  
       13 小时 23 分钟前
    建议先看《重构》这本书
    abc0123xyz
        28
    abc0123xyz  
       13 小时 20 分钟前
    复杂业务不太好处理。
    另外这么久的项目,我怀疑重构时候要从代码倒推业务,或者从业务猜代码啥意思...
    jjianwen68
        29
    jjianwen68  
       13 小时 19 分钟前
    大概这 leader 不等升级完就跑路了
    mightofcode
        30
    mightofcode  
       13 小时 16 分钟前
    能找这个 leader 买几个 max 账户吗
    wonderfulcxm
        31
    wonderfulcxm  
       13 小时 15 分钟前 via iPhone
    我也升级了一个 PHP 项目,从 php5.6 升级到 8.3 ,Wordpress 从 4.x 升级到 6.8 ,wp 的向下兼容做得还不够错,遇到的错误和警告 ai 基本能处理。有些插件已经没人再升级维护了,我用 ai 修复了里面的写法。
    imnpc
        32
    imnpc  
       13 小时 10 分钟前   ❤️ 2
    Ai 目前做不了这个 ,没有最新的训练数据
    1.PHP 版本变化 用法不同
    2.Laravel 每个版本都有配置文件和相关用法变更
    3.各种组件包类库不兼容 composer 需要升级对应的包 AI 无法做到自动识别

    https://laravelshift.com/ 去这里花钱升级吧 能一步步给你从最低版本升到最新 只不过价格有点贵
    zhanghb
        33
    zhanghb  
       13 小时 8 分钟前
    正在用 max 重构一个 java 8 项目,一定要文档先行、小步验证。步子稍微一大就乱成一锅粥。已经踩过坑回退了一大批代码重头开始了。
    Mithril
        34
    Mithril  
       13 小时 3 分钟前
    你要想在这公司长期工作,那最好不要碰。

    想要赚一笔走人就没问题。升级完了今年的 KPI 就有了,年终奖到手就辞职,你管它明年坑不坑呢。

    你猜你的技术 leader 是哪一种?
    tojike
        35
    tojike  
       13 小时 3 分钟前
    "他几乎不懂 php, 但是他想通过 AI 升级"
    Varobjs
        36
    Varobjs  
       13 小时 0 分钟前   ❤️ 1
    要不你和 leader 提议吓,要玩就玩彻底点,还换什么 laravel 12 ,直接换语言,换数据库
    sagnitude
        37
    sagnitude  
       12 小时 58 分钟前
    干这事除了做着好玩,他对公司产生了什么价值?有点太搞了,还不如把 claude max 的钱发成补贴,让大家多开开 code review 会
    javalaw2010
        38
    javalaw2010  
       12 小时 57 分钟前   ❤️ 3
    正如#22 所说,laravel 的兼容性确实很不错,不过这里面最大的麻烦不是 laravel 版本升级而是 php 版本升级。我其实觉得没必要一个版本号一个版本号的升,直接一步到位 5.2->12, 如果担心风险太大可以 nginx 层面做个分流,一个接口一个接口的改,渐进式迁移,改完一批接口观察一段时间,没问题就升级下一批,虽说有 7500 个文件,但我料想真的要修改的 PHP 文件没有那么多,拍脑袋估一下可能 20%~40%。

    不过讲道理,CC 并不太适合处理这个,可以试一下付费方案 https://laravelshift.com/ ,99 刀的订阅,大概会比这个性价比高不少吧。
    br_wang
        39
    br_wang  
       12 小时 57 分钟前
    单测全吗?是不是人来维护单测代码,Claude 修改业务代码,好一点……
    ZztGqk
        40
    ZztGqk  
       12 小时 54 分钟前 via iPhone
    ai 改的很快,但 review 要挺久的
    Jaeger
        41
    Jaeger  
       12 小时 51 分钟前
    总结这 10 年来的项目痛点,然后重新思考项目架构,然后渐进式重构,用新的服务代替旧的服务。甚至还可以考虑使用 golang 代替 PHP ,PHP 用的人已经不多了。
    wmwgijol28
        42
    wmwgijol28  
       12 小时 39 分钟前
    不如新建项目,按功能版块 API 一批一批迁移.
    NotLongNil
        43
    NotLongNil  
       12 小时 37 分钟前
    ai 在动态类型语言上面,很容易出错
    encro
        44
    encro  
       12 小时 37 分钟前
    这是一个 sb ,
    一来就干这种事,
    哪怕干成了,
    也让老板容易对 AI 和开发产生误解。
    laminux29
        45
    laminux29  
       12 小时 37 分钟前
    现在的 AI 有 2 个问题,第一是单个对话 session 的显存、内存、存储空间不够,导致提问细节多了后,AI 会漏掉很多细节。第二个问题是,AI 在很多领域缺少知识投喂,比如 AI 极难搞定正确地统计 doc 、docx 的页面数量、一行代码写入 crontab 之类的需要研究与测试的内容。

    AI 现在正确的用法是,同时用多款 AI ;让 AI 每次只解决一个小问题;让 AI 当助手而不是让它主导。
    TabGre
        46
    TabGre  
       12 小时 36 分钟前 via iPhone
    怕不是脑袋秀逗 AI 不是这样玩的
    wsseo
        47
    wsseo  
       12 小时 26 分钟前
    我建议升级。失败了可以看一乐,成功了可以为总结经验。
    iOCZS
        48
    iOCZS  
       12 小时 18 分钟前
    跟蒙眼狂奔有何差别。。。
    scys
        49
    scys  
       12 小时 15 分钟前
    AI 升级大项目,短时间内跑完还好点,如果超过几个月,你会发现,里面竟然是几个不同思路的大佬在开天坑。
    huaweii
        50
    huaweii  
       12 小时 8 分钟前 via Android
    注意是「新来的」 leader ,属于没活嗯整烂货。而且他上面居然没人比他更懂这种搞法的风险,不叫停?这个公司感觉💊
    facebook47
        51
    facebook47  
       12 小时 5 分钟前 via Android
    这种升级,不如重做,既不动现有代码,又可以从优化的角度去升级、重构项目
    tanxnative
        52
    tanxnative  
       12 小时 1 分钟前
    其实我也想用 golang 重写很多中间件,但是 ai 居然开始胡说了
    maddot
        53
    maddot  
       11 小时 59 分钟前   ❤️ 1
    https://laravelshift.com/ 用过一次,真的挺牛的,4.2 -> 12, 升级后需要手工改的地方很少
    BALDOOR
        54
    BALDOOR  
       11 小时 56 分钟前
    佩服,我们小项目,100 个左右文件,都不敢这样搞
    PHP 大版本和 Laravel 大版本升级,都是新建项目,复制旧文件一步步对着 IDE 检测提示重写的
    然后人工填数据测试几次
    AI 写代码,我们现在只用在代码提示和一些简单的,收敛且封闭的功能
    AI 的幻觉很严重的,漏掉的东西也很多,直接写甚至比 review AI 写的快多了
    Greendays
        55
    Greendays  
       11 小时 52 分钟前
    很合理的想法啊,试试看呗。
    xi4oh4o
        56
    xi4oh4o  
       11 小时 33 分钟前
    我从 5 升级到 12 照着文档一步一步来就行,搭配 codex
    luziafy
        57
    luziafy  
       10 小时 56 分钟前
    没活硬整啊,要么不升级,要么找个人对照 PHP 跟 Laravel 每个版本的升级文档修改就行了,并不复杂
    zy0829
        58
    zy0829  
       10 小时 53 分钟前
    就问一个问题,出问题怎么算?
    qicaisedeyun
        59
    qicaisedeyun  
       10 小时 50 分钟前
    你们公司产品做的啥项目?哪个行业的?
    bugsnail
        60
    bugsnail  
       10 小时 48 分钟前
    有这钱找 https://laravelshift.com/ 先升级不行嘛

    毕竟人家专业的
    forbreak
        61
    forbreak  
       10 小时 47 分钟前
    没活硬整,升级就准备加班吧。 不说 AI 识别不识别到不同版本的语法了,单就业务逻辑这块真能 100%复刻出来吗?
    ldw4033
        62
    ldw4033  
       10 小时 47 分钟前
    大佬觉得 AI 可以在帮他再创辉煌
    Suaxi
        63
    Suaxi  
       10 小时 46 分钟前
    可以升,给老板上一课
    Smileh
        64
    Smileh  
       10 小时 42 分钟前
    5.5 都好升级到 12
    5.2 要麻烦很多
    arthurblake
        65
    arthurblake  
       10 小时 39 分钟前
    万年定律:代码能跑就别动
    lance07
        66
    lance07  
       10 小时 39 分钟前
    @javalaw2010 六百六十六,还有这种东西的
    adgfr32
        67
    adgfr32  
       10 小时 37 分钟前 via Android
    php 项目升级难度大,因为很多问题只有运行时才会被发现
    laravel 更难,因为他特别喜欢用反射,充满了魔法
    luffy2u
        68
    luffy2u  
       10 小时 31 分钟前
    祖传代码也敢动,到时候崩了让他自己去修 bug
    junkk
        69
    junkk  
       10 小时 30 分钟前
    不如让 ai 好好和老板科普一下会不会有安全问题


    哪怕把现有的关键业务拆分成微服务呢?

    做这事风险高收益低
    halobugTurbo
        70
    halobugTurbo  
       10 小时 27 分钟前
    新来的都喜欢重构,不然 PPT 说什么呢。
    binge921
        71
    binge921  
       10 小时 26 分钟前
    这种纯是徒增工作量,性价比极低
    mandex
        72
    mandex  
       10 小时 25 分钟前
    我目前的项目在用 PHP 8.4 + Laravel 12 ,项目开始的时候是 PHP 7.x + Laravel 6.x ,具体版本忘记了。期间经历了多次升级,还是比较顺畅的。
    我觉得项目不是特别特别大的话,按版本一个一个升级上去是可以的。
    我是说人工操作啊,Claude 不好说,没试过让 Claude 干这么大的活。
    PaulSamuelson
        73
    PaulSamuelson  
       10 小时 23 分钟前
    所以你们公司,没有新业务么?
    zand1984
        74
    zand1984  
       10 小时 23 分钟前
    @br_wang 这种大改不仅是单测全不全的问题,而是接口/业务逻辑层面的测试全不全的问题。
    op 的领导估计连业务逻辑都没摸清楚,出了问题都不知道 “是不是问题“
    worldqiuzhi
        75
    worldqiuzhi  
       10 小时 21 分钟前 via iPhone
    我一个简单模块让他重构都不行。 需要把他拆成十几个小的。再 review 加测试
    Promtheus
        76
    Promtheus  
       10 小时 17 分钟前
    人升级的代码都不可靠,更何况是 ai 。它升级的代码你们敢用吗。而且还是这种很老的项目,里面不知道有多少暗坑。。
    guanhui07
        77
    guanhui07  
       10 小时 16 分钟前
    出问题得他背锅
    jinsongzhaocn
        78
    jinsongzhaocn  
       10 小时 16 分钟前
    Claude 是遇强则强,反之遇到菜鸟依旧菜,还有些没 Claude 经验的老手,则看能不能适应转变了。总之学习能力非常重要。至于技术 Leader ,基本都是自己的想法打动了领导,于是拿着领导的资源,验证自己的想法,最大弊端就是,不是自己的资源,失败就跑路,没有背水一战的觉悟。
    ty29022
        79
    ty29022  
       10 小时 8 分钟前 via iPhone
    楼上的都在胡说八道
    勇敢的先行者啊 我建议你们抛开一切顾虑开始实践
    当然别忘了之后在社区分享你们的经验
    cwliang
        80
    cwliang  
       10 小时 6 分钟前
    不知道这 20 年➕经验的 leader 咋想的,这种纯技术栈的升级对业务来讲带来不了任何收益,风险大于收益。安全性提升、开发体验提升、维护性提升,业务是感知不到的,但出了事绝对被骂
    Goooooos
        81
    Goooooos  
       10 小时 2 分钟前
    弱类型语言重构简直是噩梦,项目越大越难搞
    chenjk
        82
    chenjk  
       9 小时 51 分钟前
    自掘坟墓
    lguan
        83
    lguan  
       9 小时 51 分钟前
    10 年的项目,这 10 年中间都没有逐步跟上发展....
    SimonOne
        84
    SimonOne  
       9 小时 48 分钟前
    @wysnxzm #18 扶钉子的是其他开发和老板,这种 leader 砸到手前跑路就行了。
    loloX
        85
    loloX  
       9 小时 42 分钟前
    我觉得你这个领导说的没错,你们的版本太低了! 但是你们应该优先去查看框架的文档按照官方的意见升级,而不是 AI-first 。遇到问题用 AI 给方案,但是代码最好还是自己动手写,让 AI 起到辅助的作用。
    akakidz
        86
    akakidz  
       9 小时 41 分钟前
    别说重构了,你直接做一个新功能,AI 实现后也没办法直接用。

    让他配合项目经理和测试,先重构一个核心模块试试 要废多大功夫
    dule
        87
    dule  
       9 小时 41 分钟前
    @lguan 这样能存活 10 年也是一种本事。。。
    lovelive1024
        88
    lovelive1024  
       9 小时 40 分钟前
    送他两个字母
    yl20181003
        89
    yl20181003  
       9 小时 39 分钟前
    让他升,成了老板再刷刷短视频就要裁人了,不成,就是他拉一坨大的,真是秀逗了
    1daydayde
        90
    1daydayde  
       9 小时 25 分钟前
    典型的把 L2 当自动驾驶了啊
    jonsmith
        91
    jonsmith  
       9 小时 15 分钟前
    经常一个 bug ,AI 能绕半天也解决不了。目测最后让你们人肉填坑。
    visper
        92
    visper  
       9 小时 12 分钟前
    很明显,leader 在领导面前吹 ai 多厉害领导全部信了,等下领导觉得很简单都是 ai 修改下就完了。
    SayHelloHi
        93
    SayHelloHi  
       8 小时 59 分钟前
    开发人员重构老项目 坑都一大堆

    用 AI 来重构 感觉有点不现实~
    William97
        94
    William97  
       8 小时 43 分钟前
    啧啧啧,改吧,到时候填坑时心态会爆炸的
    BraveChi
        95
    BraveChi  
       8 小时 40 分钟前 via iPhone
    可以升级,但是你不能不测试啊?测试各种业务场景才是是否成功的保障
    fangdaidai
        96
    fangdaidai  
       8 小时 31 分钟前
    中层想要业绩就是这样的,弄出来就可以吹一把,苦的还是下面的人
    celaraze
        97
    celaraze  
       8 小时 10 分钟前   ❤️ 1
    laravel 我熟啊,从 5.5 开始 laravel 步入一个新的阶段,服务提供者注册的机制改变了,你从 5.2 到 5.3 没多大意义,我建议你先到 5.5 ,然后 5.5 到 6 的时候也是一个过渡,6+ 以后就可以按照文档的升级说明来了。
    其实你完全可以参考每个版本的升级手册,laravel 这点是做的很好的。要啥 AI 。
    https://learnku.com/docs/laravel/5.3/upgrade/1148
    clemente
        98
    clemente  
       8 小时 7 分钟前
    @imnpc 可以的 把 PHP 对应的版本接口源码 放一份在你的 工程目录 当成 context
    cherryas
        99
    cherryas  
       7 小时 51 分钟前
    起码我重构了一个内部项目,性能爆炸提高。
    agentrouter
        100
    agentrouter  
       7 小时 46 分钟前   ❤️ 1
    我的建议的话,你们真想用 AI 来做,先用 AI 把测试覆盖率拉起来,干到 100%;然后再让 AI 升级;建议是一个版本一个版本跳。每跳一个版本,过一遍测试,然后检查看看有没有啥问题。没啥问题继续往上跳。直到完成目标。
    1  2  
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1448 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:38 · PVG 00:38 · LAX 09:38 · JFK 12:38
    ♥ Do have faith in what you're doing.