这是一个专门讨论 idea 的地方。

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

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

代码删除大赛

  •  
  •   Livid ·
    PRO
    · Jan 6, 2015 · 8375 views
    This topic created in 4320 days ago, the information mentioned may be changed or developed.
    如果你们公司有那种 N 年历史的大型 codebase,可以考虑定期组织代码删除大赛:在不影响功能的情况下,删掉多余或者不用的代码。
    54 replies  •  2015-01-24 17:01:11 +08:00
    dabaii
    dabaii
    Jan 6, 2015
    1
    然后半年后发现,某个秘密角落的功能已经bug了 半年。
    liul85
    liul85
    Jan 6, 2015
    2
    @dabaii 同感 哈哈
    402645707
    402645707
    Jan 6, 2015❤️1
    3
    感觉是一场阴谋,像是在让程序员故意写出难维护的代码
    luoweihua7sync
    luoweihua7sync
    Jan 6, 2015❤️5
    4
    试过了,删完没2周,到处冒烟。。。
    Livid
    Livid
    MOD
    OP
    PRO
    Jan 6, 2015 via Android
    5
    嗯,要靠谱实施的话,先让每个人去删自己写的。如果是删别人的,确实有可能会冒烟。
    moonkiller
    moonkiller
    Jan 6, 2015
    6
    你昵称旁边的mod啥意思哈?
    @Livid
    lsylsy2
    lsylsy2
    Jan 6, 2015
    7
    @moonkiller 网站管理员
    yellowV2ex
    yellowV2ex
    Jan 6, 2015
    8
    于是有人把空格和回车都删了
    cattail
    cattail
    Jan 6, 2015
    9
    @Livid 自己的代码也依赖别人的代码, 根本就没有自己的代码一说
    xcatliu
    xcatliu
    Jan 6, 2015
    10
    @cattail 别人的代码也依赖了自己的代码,删了后火灾了
    ls25145
    ls25145
    Jan 6, 2015
    11
    现在公司产品里的垃圾代码一大堆,经常出诡异的bug,还有memory leak。
    花了大量工数改bug,就是不肯花时间整理代码。
    更恶心的是,代码结构好了,别人看不见,没功劳。但是改出问题来了,全是个人责任,大过!
    哪里来的动力啊!体制太垃圾了
    clowwindy
    clowwindy
    Jan 6, 2015
    12
    每次 code review 看着一堆红色的删掉的行就高兴。
    paloalto
    paloalto
    Jan 6, 2015
    13
    豌豆荚每隔几个月就有一个 polish week。
    cvrock
    cvrock
    Jan 6, 2015❤️2
    14
    说实话,别人的代码真心不敢删,谁知道原作者对这个函数有什么假设?
    例如函数A看起来不需要做某件奇葩的无关操作,但其实A调用了B,B调用了C,C却依赖A的这个操作,我真心见过,而且依赖关系更复杂,更可怕的删了之后对于普遍情况没影响,但遇到某些特例时……
    Mutoo
    Mutoo
    Jan 6, 2015
    15
    没做测试驱动的话,有多少人有信心改
    spacewander
    spacewander
    Jan 6, 2015❤️2
    16
    一场紧张刺激的大赛结束后,程序猿们周末加班加点处理新出现的大量的bug。
    Cee
    Cee
    Jan 6, 2015
    17
    注意不错!
    Cee
    Cee
    Jan 6, 2015
    18
    @Cee 唔 主意..
    nicai000
    nicai000
    Jan 6, 2015
    19
    If it ain't broke, don't fix it...
    cattail
    cattail
    Jan 6, 2015 via iPhone
    20
    @Mutoo 测试是正解
    rannnn
    rannnn
    Jan 6, 2015❤️1
    21
    我以前一个公司好几个10万行一个文件的代码。生成的code + 十几年的不停加东西。没人愿意去重构,这玩意谁碰谁倒霉。
    Showfom
    Showfom
    PRO
    Jan 6, 2015 via iPhone
    22
    别删除注释哈哈
    lsmgeb89
    lsmgeb89
    Jan 6, 2015
    23
    @rannnn 打开眼界,10w 行。
    kxxoling
    kxxoling
    Jan 6, 2015 via iPad
    24
    @yellowV2ex Pythoner表示做不到啊!
    KentY
    KentY
    Jan 7, 2015
    25
    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
    branchzero
    Jan 7, 2015
    26
    怕删了之后留下暗坑,不敢乱动,而且写东西的时候没留单元测试= =
    ybh37
    ybh37
    Jan 7, 2015
    27
    这个有点刺激~
    knightluffy
    knightluffy
    Jan 7, 2015
    28
    删个毛线啊,js代码混淆一下基本就是免删的剧情了。。
    wdlth
    wdlth
    Jan 7, 2015
    29
    比如osName.startsWith("Windows 9")?
    yinheli
    yinheli
    Jan 7, 2015
    30
    @moonkiller 是 Moderator 的缩写
    kaizixyz
    kaizixyz
    Jan 7, 2015
    31
    想起一句话:技术不是一种优势~是一种债务。
    sieon
    sieon
    Jan 7, 2015
    32
    专门组织,我觉得组织之前考虑清楚应对方法吧。应该没问题。
    msg7086
    msg7086
    Jan 7, 2015 via iPhone
    33
    测试驱动开发不已经是标配了么
    iamshaynez
    iamshaynez
    Jan 7, 2015
    34
    重构和代码删除本身都不会产生显性价值但带来风险,在任何一个公司都不会有人愿意冒险做这种事情。只要是存活超过3年的公司,宁愿立项目来做重构的新版本,也不会愿意花成本对已有的(别人的)遗产动手脚。
    Elethom
    Elethom
    Jan 7, 2015
    35
    直到入職第三天 contributions 中的綠色才高過紅色...
    sitin
    sitin
    Jan 7, 2015
    36
    我觉得还是测试覆盖要到位啊,才能大胆做删除啊,不然真心不敢乱删。
    fising
    fising
    Jan 7, 2015❤️1
    37
    MOD Moderator

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

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

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


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

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

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

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