V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sea516
V2EX  ›  问与答

重构全部代码是怎样的体验

  •  
  •   sea516 · 2016-04-07 11:33:53 +08:00 · 2713 次点击
    这是一个创建于 3171 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在重构公司的代码,老业务用新框架。所有之前实现的需求,没有文档,从代码里看,然后用新框架实现。现在在熟悉新框架,如何调整心态或者规划,让这次重构会顺利进行

    22 条回复    2016-04-07 17:01:40 +08:00
    kenshinhu
        1
    kenshinhu  
       2016-04-07 11:37:02 +08:00
    重构之前得要做好单元测试吗
    sea516
        2
    sea516  
    OP
       2016-04-07 11:37:06 +08:00
    没人给点建议么
    sea516
        3
    sea516  
    OP
       2016-04-07 11:37:39 +08:00
    @kenshinhu 重构完了做单元测试吧
    finab
        4
    finab  
       2016-04-07 11:43:52 +08:00 via iPhone
    @kenshinhu 需要全部重构的代码我相信做不了单元测试,😄
    anerevol
        5
    anerevol  
       2016-04-07 11:44:19 +08:00
    1. 先根据老代码写各种文档,各种流程图时序图等。
    2. 先写好单元测试。
    3. 重构一小部分后马上要测试测试测试。
    4. 重构 100 %会引起新的问题的。
    jsonline
        6
    jsonline  
       2016-04-07 11:44:35 +08:00 via Android
    那叫重构吗?那叫重写!
    jsonline
        7
    jsonline  
       2016-04-07 11:44:56 +08:00 via Android
    重构必然是局部的。
    fwrq41251
        8
    fwrq41251  
       2016-04-07 11:45:03 +08:00
    @sea516 肯定要先写单元测试啊。
    能自动化的自动化,用好 JDT 。
    popu111
        9
    popu111  
       2016-04-07 11:45:53 +08:00 via Android
    想唱歌:“不过是从头再来~”请自行脑补旋律
    crazyxin1988
        10
    crazyxin1988  
       2016-04-07 11:45:54 +08:00
    这就是出力不讨好的事情

    写好单元测试~ 就是这样子
    techmoe
        11
    techmoe  
       2016-04-07 11:47:59 +08:00
    看工程多大吧
    otakustay
        12
    otakustay  
       2016-04-07 11:54:59 +08:00
    先写 UT 再重构,不然你等着坑死自己
    另外一般我们称为重写
    audi
        13
    audi  
       2016-04-07 11:58:15 +08:00
    太累的体验
    zwy100e72
        14
    zwy100e72  
       2016-04-07 12:13:16 +08:00 via iPad
    必须写好单元测试啊
    不然怎么验证重构没改变代码功能
    3dwelcome
        15
    3dwelcome  
       2016-04-07 12:19:07 +08:00 via Android
    每个码农必然的过程、代码多了、早晚要整理重构的。
    lecher
        16
    lecher  
       2016-04-07 12:54:44 +08:00 via Android
    这种没有文档的重写就是拆炸弹,碰上这种一般不做替换,而是另开新系统做新需求,新需求用新技术,老的系统做需求封存,只在老系统做已经确定的需求,再加新需求都在新系统加。这么慢慢做一段时间,新系统可以逐步接收新业务的流量,逐步完成迁移。
    sea516
        17
    sea516  
    OP
       2016-04-07 13:18:43 +08:00
    @anerevol 领导希望很快能看到重构的效果,整体重构的时间也不是我自己能安排的。
    sea516
        18
    sea516  
    OP
       2016-04-07 13:19:49 +08:00
    @lecher 旧系统不足以支撑现在产品的需求,领导又希望能够看到能用的框架和技术
    iMouseWu
        19
    iMouseWu  
       2016-04-07 13:51:36 +08:00
    最最最最蛋疼的是,重构完以后,QA 同学怎么测试,该测试那些功能? TDD 是一种很好的方式,但是还得看原代码的代码质量了,如果代码质量不是很好的话,写单元测试也是一件比较蛋疼的事情。
    @finab 是正解
    cuebyte
        20
    cuebyte  
       2016-04-07 16:09:38 +08:00
    @sea516 拆分业务,先重构一部分,一步步来,一下子重构所有简直痴人说梦,新系统的健壮性也得不到检验。
    somnus
        21
    somnus  
       2016-04-07 16:53:20 +08:00
    炒鸡酸爽,我重构了几个月..
    xenme
        22
    xenme  
       2016-04-07 17:01:40 +08:00 via iPhone
    @iMouseWu 交给最终用户去测试吧。哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2036 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 16:12 · PVG 00:12 · LAX 08:12 · JFK 11:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.