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

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

  •  
  •   jinbangzhu · 9 小时 41 分钟前 · 6842 次点击

    现有的项目背景,已经平稳运行了有接近 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 来进行老项目升级的经历?

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

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

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

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

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

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

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

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

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


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

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

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

    用 AI 来重构 感觉有点不现实~
    William97
        94
    William97  
       4 小时 22 分钟前
    啧啧啧,改吧,到时候填坑时心态会爆炸的
    BraveChi
        95
    BraveChi  
       4 小时 19 分钟前 via iPhone
    可以升级,但是你不能不测试啊?测试各种业务场景才是是否成功的保障
    fangdaidai
        96
    fangdaidai  
       4 小时 10 分钟前
    中层想要业绩就是这样的,弄出来就可以吹一把,苦的还是下面的人
    celaraze
        97
    celaraze  
       3 小时 49 分钟前
    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  
       3 小时 46 分钟前
    @imnpc 可以的 把 PHP 对应的版本接口源码 放一份在你的 工程目录 当成 context
    cherryas
        99
    cherryas  
       3 小时 30 分钟前
    起码我重构了一个内部项目,性能爆炸提高。
    agentrouter
        100
    agentrouter  
       3 小时 25 分钟前   ❤️ 1
    我的建议的话,你们真想用 AI 来做,先用 AI 把测试覆盖率拉起来,干到 100%;然后再让 AI 升级;建议是一个版本一个版本跳。每跳一个版本,过一遍测试,然后检查看看有没有啥问题。没啥问题继续往上跳。直到完成目标。
    1  2  
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3048 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:17 · PVG 20:17 · LAX 05:17 · JFK 08:17
    ♥ Do have faith in what you're doing.