V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Registering
V2EX  ›  程序员

一个人写的项目,代码数量到近两万的时候,是否得停下来优化代码结构再继续下去。

  •  
  •   Registering · Nov 18, 2014 · 5823 views
    This topic created in 4183 days ago, the information mentioned may be changed or developed.
    近来做一个人负责一款app的开发,虽然开发过程中一直在借鉴一些开源项目的架构设计(主要借鉴oschina的android客户端)。

    但是难免有些细节失控,比如突然一个类一下子就到800多行,看到一个类代码量太长总是觉得代码不干净,但是该类中的子功能又比较难抽象出来。

    以前在学校也是这样,平时自己写的项目,虽然功能实现了,但项目的代码数量到一定程度,虽然会尽量注意代码的架构,还是会觉得代码增多就越来越难控制架构,感觉就得停下来优化一下,甚至优化也比较费力,所以也影响了项目的扩展性。

    毕业2个月,经验有限,求技术大拿们指点。
    26 replies    2014-11-18 23:16:29 +08:00
    josephshen
        1
    josephshen  
       Nov 18, 2014   ❤️ 6
    http://mobile.51cto.com/comment-452712.htm
    非常好的文章,你可以看看。
    josephshen
        2
    josephshen  
       Nov 18, 2014   ❤️ 1
    Registering
        3
    Registering  
    OP
       Nov 18, 2014
    @josephshen 赞,呵呵,突然想起了大一用C语言写的那些代码,1000就是瓶颈了啊
    learnshare
        4
    learnshare  
       Nov 18, 2014
    如果没写烂的话,就坚持写完再重构
    jimrok
        5
    jimrok  
       Nov 18, 2014
    主要是为了好理解,如果过两天,就看不懂了,那还是重构一下。而且就像收拾房子一样,不是每样都要收拾的,捡最需要的部分弄一下。
    freeleestyle
        6
    freeleestyle  
       Nov 18, 2014
    重构是一定需要的,因为随着你对项目认知的逐渐加深,会有一个新的理解,也为了更好的进行后续的工作。
    重构可大可小,看你的能力与精力。但是可以从小处出发,秉持最小迭代的原则来进行。
    ivanchou
        7
    ivanchou  
       Nov 18, 2014
    同样的瓶颈,写完自己就看不懂了。。。
    min
        8
    min  
       Nov 18, 2014
    考虑lz的工作年限,做烂掉推倒重新做或者转向新的项目也不失为一个办法

    如果目前这货需要长期维护的,那当然是应该找时间来重构
    iam36
        9
    iam36  
       Nov 18, 2014
    只要功能满足设计,先不急于调整,根据运行状况,自然明确调整的需求以及 方向。
    cover
        10
    cover  
       Nov 18, 2014
    刚刚开始写的话 就是不停的推到重来吧,因为你重构的时候会发现一开始认为牛逼的设计,在工程面前会如此不堪一击
    meta
        11
    meta  
       Nov 18, 2014
    都到两万行了才想起这个事,有点太晚了。
    Registering
        12
    Registering  
    OP
       Nov 18, 2014
    @meta 其实现在还没多大问题,只是有一个类突然大了,所以现在想重构,为后续打基础
    jjx
        13
    jjx  
       Nov 18, 2014
    看了一下现在手头的python项目已经有6万行了

    重构是要随时进行的

    作为开发主管, 同产品经理指定计划时,每个关键点都要留出几天时间让程序员能够回顾和重构代码
    special
        14
    special  
       Nov 18, 2014
    重构不是问题,但是如何保证重构后的代码可以正常运行才是问题。
    以后弄新项目的话,可以弄个 robolectric 对关键的模块写一些测试,那么无论怎么重构都不是问题了。
    Registering
        15
    Registering  
    OP
       Nov 18, 2014
    @jjx 能这样最好了,,可是项目急的时候,人手又不够,身不由己啊
    lygmqkl
        16
    lygmqkl  
       Nov 18, 2014
    先实现后优化,最后才是重构,你这没写完就要重构。。。。不合适。
    zhouquanbest
        17
    zhouquanbest  
       Nov 18, 2014   ❤️ 1
    我觉得这个和记忆力有关
    特别是自己写的,很有可能各几周才去再接着弄,那么再次面对2w行的代码时,你可能会忘记一些细节。
    虽然说好的代码就是最好的注释,但有时候辅助记忆的注释我觉得还是可以有的,反正自己看,丑点就丑点。

    重构这个东西,还是实时继续的好,不要写几万行再来重构,给自己找麻烦,还可能引入新的bug
    otakustay
        18
    otakustay  
       Nov 18, 2014
    用代码行数来判断要不要重构简直扯谈……2W行代码你重构完了会变成5000行?2W行合理的代码用一用各种模式小心就是3W行了,然后是不是觉得更应该重构了?
    Registering
        19
    Registering  
    OP
       Nov 18, 2014
    @otakustay 或许你借题发挥了,,,2w行不是重构的依据,而只是代表项目功能块到一定量之后,各个模块的线性或者非线性关系递增,代码维护扩展出现了瓶颈,,,
    ChiangDi
        20
    ChiangDi  
       Nov 18, 2014 via Android
    有本经典的书就叫重构啊,多看看,我觉得写得挺好的。
    otakustay
        21
    otakustay  
       Nov 18, 2014
    @Registering 如果没有说明是随意写的2W行的话,一般人在写代码的同时总会有个设计框架在其中吧,不至于增长得无法控制不住嘛
    reeco
        22
    reeco  
       Nov 18, 2014
    避免提前优化,还是先写完吧
    herozzm
        23
    herozzm  
       Nov 18, 2014
    如果项目周期在可控的情况下,应当不断将项目模块分解重构优化
    konakona
        24
    konakona  
       Nov 18, 2014 via iPhone
    必须优化。
    watsy0007
        25
    watsy0007  
       Nov 18, 2014
    如果你要增加功能开始觉得没地方下手。
    需要停下来考虑如何在原有基础上做猥琐的不定才能实现时候。或者大量的cc+cv时候。

    就表示你要重构了。模块化了。
    spacewander
        26
    spacewander  
       Nov 18, 2014
    你都觉得有必要重构了,那就停下来重构吧。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2564 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 113ms · UTC 06:53 · PVG 14:53 · LAX 23:53 · JFK 02:53
    ♥ Do have faith in what you're doing.