V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mhycy
V2EX  ›  程序员

做个小应用不难,但重构数次以后推倒重写时脑海一片空白

  •  
  •   mhycy · 2014-06-05 13:12:53 +08:00 · 4130 次点击
    这是一个创建于 3829 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近在做一个小程序,逻辑并不复杂。
    而且之前已经写了好几个模块了,但是因为各种预想不到的细节问题而重构了N次(5<N<10)
    现在感觉重构的差不多了,可以打扫一下那堆代码了准备推倒重来,却发现无从下手。

    对于这种情况各位前辈有何建议?
    12 条回复    2014-06-05 20:53:45 +08:00
    akfish
        1
    akfish  
       2014-06-05 13:34:24 +08:00 via iPad
    重构多正常,最喜欢玩重构,跟解密游戏一样。
    hitsmaxft
        2
    hitsmaxft  
       2014-06-05 13:35:51 +08:00
    说明你还不清楚这段代码的逻辑. 重构必然有问题, 反复是正常的
    dongcheng
        3
    dongcheng  
       2014-06-05 13:37:22 +08:00
    同意LS,是没想清楚。不过一般遇到瓶颈,也是好事,撑过去,会有大提高。
    nil
        4
    nil  
       2014-06-05 13:40:57 +08:00
    这个能叫重构么?看看重构ruby版
    jedyu
        5
    jedyu  
       2014-06-05 13:41:54 +08:00
    这不是重构,是前期分析就有问题。另一个方面也可以说过早重构了。
    mhycy
        6
    mhycy  
    OP
       2014-06-05 13:58:18 +08:00
    @hitsmaxft
    的确....
    这几次重写都是因为要加入一些当初忘记加入的功能而重写代码。
    mhycy
        7
    mhycy  
    OP
       2014-06-05 14:04:38 +08:00
    @dongcheng @nil @jedyu
    请原谅我用错词语

    现在的情况是....重写了几次..然后再次开始编写的时候无从下手....
    核心代码都能想到也是一开始就写的,但是因为基础的部分没想好如何实现(命名,分块)
    (以我的记忆力等我想出来了核心逻辑的实现肯定会忘掉的)
    这种做法直接导致核心代码写了又写.....
    因为在实际编写的时候经常能想到更好的实现,然后就拆了重写....

    现在想老老实实从头开始写,却发现无从下手.....(感觉总会遇到问题,而且完全没有印象后面需要些啥)
    imn1
        8
    imn1  
       2014-06-05 16:20:06 +08:00
    当业务逻辑和数据逻辑有矛盾时,这事经常发生,或者说流程
    最初按业务逻辑入手,项目进行时不断发现数据逻辑的优势,重构总是向着这个优势的方向进行
    当一定时候,想推倒重来,又按业务逻辑思考,就发现重构的咚咚都跟业务逻辑扯不上,无从下手
    srdrm
        9
    srdrm  
       2014-06-05 19:06:32 +08:00
    重写多半是因为没想清楚,对问题领域还了解不够。但有个问题是,很多时候你刚开始接触一个新的领域通常你无法思考得足够清楚,只有不断尝试,发现问题,再改进,如此循环,你才能获得并积累更多这个领域的经验。积累到一定程度,一旦谈起,或再碰到这类问题或领域时,你头脑中就马上浮现出相应解决的方案或框架了。你那个时候才能谈一上手就是“优雅”,“良好”地代码结构。
    feuvan
        10
    feuvan  
       2014-06-05 19:07:39 +08:00
    个人以为通常在重构中最难的阶段是理解业务逻辑。。
    openroc
        11
    openroc  
       2014-06-05 20:06:02 +08:00
    重构是必然的,呵呵,
    mhycy
        12
    mhycy  
    OP
       2014-06-05 20:53:45 +08:00
    @imn1 @srdrm @feuvan @openroc
    现阶段来说,如何在一开始就确定好一个好的方式为后续编码提供基础,这的确是需要经验的事情。

    现在看来我作为一个重度选择困难症患者,很难一开始就做出决定,这可能是开了记事本却无从下手的可能性之一
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3142 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 13:41 · PVG 21:41 · LAX 05:41 · JFK 08:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.