V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
Livid
267.72D
569.1D

代码删除大赛

  •  
  •   Livid ·
    PRO
    · Jan 6, 2015 · 7643 views
    This topic created in 4134 days ago, the information mentioned may be changed or developed.
    如果你们公司有那种 N 年历史的大型 codebase,可以考虑定期组织代码删除大赛:在不影响功能的情况下,删掉多余或者不用的代码。
    54 replies    2015-01-24 17:01:11 +08:00
    dabaii
        1
    dabaii  
       Jan 6, 2015
    然后半年后发现,某个秘密角落的功能已经bug了 半年。
    liul85
        2
    liul85  
       Jan 6, 2015
    @dabaii 同感 哈哈
    402645707
        3
    402645707  
       Jan 6, 2015   ❤️ 1
    感觉是一场阴谋,像是在让程序员故意写出难维护的代码
    luoweihua7sync
        4
    luoweihua7sync  
       Jan 6, 2015   ❤️ 5
    试过了,删完没2周,到处冒烟。。。
    Livid
        5
    Livid  
    MOD
    OP
    PRO
       Jan 6, 2015 via Android
    嗯,要靠谱实施的话,先让每个人去删自己写的。如果是删别人的,确实有可能会冒烟。
    moonkiller
        6
    moonkiller  
       Jan 6, 2015
    你昵称旁边的mod啥意思哈?
    @Livid
    lsylsy2
        7
    lsylsy2  
       Jan 6, 2015
    @moonkiller 网站管理员
    yellowV2ex
        8
    yellowV2ex  
       Jan 6, 2015
    于是有人把空格和回车都删了
    cattail
        9
    cattail  
       Jan 6, 2015
    @Livid 自己的代码也依赖别人的代码, 根本就没有自己的代码一说
    xcatliu
        10
    xcatliu  
       Jan 6, 2015
    @cattail 别人的代码也依赖了自己的代码,删了后火灾了
    ls25145
        11
    ls25145  
       Jan 6, 2015
    现在公司产品里的垃圾代码一大堆,经常出诡异的bug,还有memory leak。
    花了大量工数改bug,就是不肯花时间整理代码。
    更恶心的是,代码结构好了,别人看不见,没功劳。但是改出问题来了,全是个人责任,大过!
    哪里来的动力啊!体制太垃圾了
    clowwindy
        12
    clowwindy  
       Jan 6, 2015
    每次 code review 看着一堆红色的删掉的行就高兴。
    paloalto
        13
    paloalto  
       Jan 6, 2015
    豌豆荚每隔几个月就有一个 polish week。
    cvrock
        14
    cvrock  
       Jan 6, 2015   ❤️ 2
    说实话,别人的代码真心不敢删,谁知道原作者对这个函数有什么假设?
    例如函数A看起来不需要做某件奇葩的无关操作,但其实A调用了B,B调用了C,C却依赖A的这个操作,我真心见过,而且依赖关系更复杂,更可怕的删了之后对于普遍情况没影响,但遇到某些特例时……
    Mutoo
        15
    Mutoo  
       Jan 6, 2015
    没做测试驱动的话,有多少人有信心改
    spacewander
        16
    spacewander  
       Jan 6, 2015   ❤️ 2
    一场紧张刺激的大赛结束后,程序猿们周末加班加点处理新出现的大量的bug。
    Cee
        17
    Cee  
       Jan 6, 2015
    注意不错!
    Cee
        18
    Cee  
       Jan 6, 2015
    @Cee 唔 主意..
    nicai000
        19
    nicai000  
       Jan 6, 2015
    If it ain't broke, don't fix it...
    cattail
        20
    cattail  
       Jan 6, 2015 via iPhone
    @Mutoo 测试是正解
    rannnn
        21
    rannnn  
       Jan 6, 2015   ❤️ 1
    我以前一个公司好几个10万行一个文件的代码。生成的code + 十几年的不停加东西。没人愿意去重构,这玩意谁碰谁倒霉。
    Showfom
        22
    Showfom  
    PRO
       Jan 6, 2015 via iPhone
    别删除注释哈哈
    lsmgeb89
        23
    lsmgeb89  
       Jan 6, 2015
    @rannnn 打开眼界,10w 行。
    kxxoling
        24
    kxxoling  
       Jan 6, 2015 via iPad
    @yellowV2ex Pythoner表示做不到啊!
    KentY
        25
    KentY  
       Jan 7, 2015
    5年来一直开发, 冗余代码很多, 但是谁也不敢动

    kent$ (master|…) git gll|head -1
    * 13b2fb6 Merge branch 'master' of ssh://... (47 minutes ago by Kai ****) (HEAD, origin/master, origin/HEAD, master)

    kent$ (master|…) git gll|tail -1
    * 781a979 New remote folder for project. (5 years ago by Stephan ****)
    branchzero
        26
    branchzero  
       Jan 7, 2015
    怕删了之后留下暗坑,不敢乱动,而且写东西的时候没留单元测试= =
    ybh37
        27
    ybh37  
       Jan 7, 2015
    这个有点刺激~
    knightluffy
        28
    knightluffy  
       Jan 7, 2015
    删个毛线啊,js代码混淆一下基本就是免删的剧情了。。
    wdlth
        29
    wdlth  
       Jan 7, 2015
    比如osName.startsWith("Windows 9")?
    yinheli
        30
    yinheli  
       Jan 7, 2015
    @moonkiller 是 Moderator 的缩写
    kaizixyz
        31
    kaizixyz  
       Jan 7, 2015
    想起一句话:技术不是一种优势~是一种债务。
    sieon
        32
    sieon  
       Jan 7, 2015
    专门组织,我觉得组织之前考虑清楚应对方法吧。应该没问题。
    msg7086
        33
    msg7086  
       Jan 7, 2015 via iPhone
    测试驱动开发不已经是标配了么
    iamshaynez
        34
    iamshaynez  
       Jan 7, 2015
    重构和代码删除本身都不会产生显性价值但带来风险,在任何一个公司都不会有人愿意冒险做这种事情。只要是存活超过3年的公司,宁愿立项目来做重构的新版本,也不会愿意花成本对已有的(别人的)遗产动手脚。
    Elethom
        35
    Elethom  
       Jan 7, 2015
    直到入職第三天 contributions 中的綠色才高過紅色...
    sitin
        36
    sitin  
       Jan 7, 2015
    我觉得还是测试覆盖要到位啊,才能大胆做删除啊,不然真心不敢乱删。
    fising
        37
    fising  
       Jan 7, 2015   ❤️ 1
    MOD Moderator

    @moonkiller 版主,管理员
    moonkiller
        38
    moonkiller  
       Jan 7, 2015
    @fising
    @yinheli 其实我是来秀头像的。。。
    yuexiafeng510
        39
    yuexiafeng510  
       Jan 7, 2015
    在一个根本没有代码规范可言的公司 这无疑是 自 寻 死 路 。。
    yuexiafeng510
        40
    yuexiafeng510  
       Jan 7, 2015
    @rannnn 感同身受 目前就在维护一个这样的老不死的项目 比我年龄都大
    lizheming
        41
    lizheming  
       Jan 7, 2015   ❤️ 1
    写完代码几个月之后准备重构我的代码,一下是场景:
    "这几行代码好像没干啥啊,我当时为啥要写啊?"
    ....
    "算了想不太起来了,好像真的没有啥用,删掉吧"
    ....
    "卧槽,有BUG诶,快修修修!"
    ...(拼命补bug中)
    "总算搞定了!诶?!等一下!原来之前的代码是干这个的啊!"

    很多时候都会处于以上这种作死的情况..2333
    nowcoder
        42
    nowcoder  
       Jan 7, 2015
    一定会出问题! 我们的原则是千万不要动那些鬼代码。。
    daodao
        43
    daodao  
       Jan 7, 2015
    这事情 好像真是谁碰谁倒霉,吃力不讨好。
    除非大老板自上而下主导,否则一般人都没这个魄力啊。

    之前我们这边一个程序员自己不满意自己过去两年写的代码,自己重构了自己相当多一部分的代码,结果后来用户反馈影响很大,程序员被问责还扣了好几天工资...
    jeeve
        44
    jeeve  
       Jan 7, 2015
    大公司没人愿意弄这个事情,费力不讨好,关键是会留下很多隐患


    one man 无所谓,搞搞蛮好的
    oldcai
        45
    oldcai  
    PRO
       Jan 7, 2015
    你头像旁边的小红点啥意思哈?
    @fising
    thanksir
        46
    thanksir  
       Jan 7, 2015
    虽说删代码很牛逼,但通常删了都是后来的坑
    ming7435
        47
    ming7435  
       Jan 7, 2015   ❤️ 1
    没有经历过大赛,但干过类似的事情,11年接手一个代码总行数超过100W行的项目,到现在还一直加功能的情况下,代码总行数已经变为50W行不到。我只想说,删代码带来的快感无与伦比。
    jackyliudm
        48
    jackyliudm  
       Jan 7, 2015
    前段时间我还专门列了个"代码可维护"计划, 希望能推进解决类似的问题.

    不过一般都不敢动代码. 问题是: 连代码都不敢动,怎么升职加薪迎娶白富美改变世界造福全人类?
    jackyliudm
        49
    jackyliudm  
       Jan 7, 2015
    @ming7435 大拇指!
    geew
        50
    geew  
       Jan 7, 2015
    只想说 测试估计要累死.....
    loryyang
        51
    loryyang  
       Jan 7, 2015
    主要问题还是:没有回归测试

    如果有单测+QA自动化回归测试的保证,可以考虑一删。不过呢,好多人还是不愿意,原因是没啥个人好处。。。
    hitsmaxft
        52
    hitsmaxft  
       Jan 8, 2015
    我们刚把整个php应用用java重写了。
    整个过程需要大量的qa资源投入做资源对比。

    不过嘛,写出屎一样代码的人,是没这个悟性整理代码的,用这种比赛把问题暴露出来并勒令整改倒是个好主意
    rannnn
        53
    rannnn  
       Jan 8, 2015
    @yuexiafeng510 我去年5月离职了
    FradSer
        54
    FradSer  
       Jan 24, 2015
    @ming7435 想起来就爽
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2331 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 116ms · UTC 01:37 · PVG 09:37 · LAX 18:37 · JFK 21:37
    ♥ Do have faith in what you're doing.