• webmin
    2022-04-25
    短期计划,应急先升级到4.6.2 4.8已经是没有未来的技术,升上去以后,将来还是要升级到5.0,那就要评估这两周到一个月的工作,会不会给将来升级5.0带来收益,即减少升级5.0的时间,如果是否定,那么不升级4.8,考虑直接升级到5.0。 升级到5.0需要五到六个月,但这是一个总时间,可以考虑把项目进行拆分,化整为零,一部分一部分的升级到5.0, 例如: 1. 通过拆分为微服务,进行部分升级; 2. 通过条件编译一部分一部分把依赖项目升级为支持.net Standard标准的代码。

    作者回复: 感谢分享,非常好的思路,遵循了增量演进的原则。

    
    13
  • 人间四月天
    2022-04-25
    很赞 我做过所谓遗留系统的重构升级,您说的7种策略和方法都用到了,这就是所谓的套路和经验,其实这样方案,我们也是通过成本,收益,风险进行权衡,方案是解决问题,要达成目标的,通过总目标和细分目标牵引方向,不跑偏,得到最佳收益,对于策略和方案,有个难点是确定改造的范围和评估工作量,评估风险,例如重构代码,首先要知道哪些代码有坏味道,评估哪些功能不用了,最好都有工具支持,这样能够精准快速确定范围,做完了也通过工具去验证。 个人愚见

    作者回复: 感谢分享,很赞。

    共 2 条评论
    7
  • HoshinoKanade
    2022-05-28
    我正正遇到这处境。遗留系统是ASP .NET,全部代码封装在一个专案里。咱们看到第三方库无法顺利过渡到NET core,于是像楼上说的先拆成几个库打包成NET standard。然而ASP.net core跟前一版差异很大,要硬着头皮上去也得花两三个月吧,于是放弃虽可耻但有用。 做到一半,因为这项目像个后妈生的,所以全人员被抽调到亲儿子项目,大部份同事辗转因跨地域和不适应工程文化等相继离职,现在成为一个不折不扣的遗留系统,还得我加班去做这吃力不讨好的项目。它的前端的jQuery也很多年没更新过,依赖的初代angular也经已EOL了。我们还得为这上了线的系统修修安全隐患,只是这样一来,升级到angular.js的最终版后,又啥都毁了。有时候无论风险,该做的还是得做,该加班还是该加班。

    作者回复: 感谢分享。 关于前端,可以考虑引入微前端,用新的前端框架(React或Vue)做新的功能,和老的AngularJS并存,再慢慢绞杀。 总之,任重而道远,加油!

    
    1
  • 怀揣梦想的学渣
    2022-08-16 来自河北
    从第一课看到这,站在我自己的角度,我认为这个课程并不适合新人,更适合有2年以上开发工作经验的人,姚老师分享的思考,不是一个新人可以深刻理解的。

    作者回复: 确实不适合新人,比较适合有一定工作经验的资深开发和架构师

    
    
  • 特修斯之船
    2022-04-26
    如果没有人力和时间的压力,会选择方案3 方案1与方案2只是治标不治本,这个技术债迟早要还的。 而且这个升级拖得越是久,到时候出来.NET6或.NET7,升级的难度只会越来越大。

    作者回复: 感谢分享。 理想情况下肯定3是相对来说“一步到位”的,但现实往往会有更多约束,除了升级还债,还有业务需求要开发,所以肯定不会是那么理想的。

    
    
  • aoe
    2022-04-25
    方案1,原因: 1、最简单 2、风险低 3、可解燃眉之急

    作者回复: 感谢分享

    
    
  • 花花大脸猫
    2022-10-04 来自江苏
    短期先不做升级,如果业务发展上后续发展需要跨平台和容器化,那需要将5.0作为升级的目标,进行时间规划,根据时间规划逐步的进行往5.0的目标迈进;如果说业务上的发展可预见的不需要4.8或者5.0上面的最新的特性功能,那直接升级到4.6.2作短期的过度升级即可。
    
    
  • 雨落~紫竹
    2022-06-22
    如果比较紧急 必须升的话 也是先1后3 给自己缓冲期 如果没必须升级的必要 并且工作量不大 会考虑方案3
    
    
  • 王王王王王王。
    2022-05-19
    方案2,我们的系统就是这么升的,前两年把旧代码从3.5到4.5,后面又由于技术需要升到4.7.2,虽然也想大跨步,但为了不影响业务需求,只能稳步提升,毕竟活下去是最重要的
    
    
  • JC
    2022-04-29
    先1,快速解决眼下的问题;后面再按照系统的业务价值,以及未来的发展方向(是否会长期存在),决定怎么做
    
    