两个方法中有相同的部分就会想办法把这些相同的部分独立作为一个新方法,再在原方法中调用,浪费了不少时间 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
kaiki
V2EX    程序员

两个方法中有相同的部分就会想办法把这些相同的部分独立作为一个新方法,再在原方法中调用,浪费了不少时间

  •  
  •   kaiki 2022-01-02 20:40:51 +08:00 2252 次点击
    这是一个创建于 1386 天前的主题,其中的信息可能已经有所发展或是发生改变。

    每次写东西都会去“优化”这些跑起来根本没问题的地方,经常能优化出问题,然后再修复,有可能最后优化完了还是觉得第一版好用,但是两个方法中有重复代码,就觉得不舒服。 主要是自己的东西,给别人写的能跑起来就行,优化,不存在的。

    12 条回复    2022-01-04 11:15:44 +08:00
    eason1874
        1
    eason1874  
       2022-01-02 21:02:56 +08:00   5
    改进时:这会是完美的改进,改完就完美了
    测试时:啊,操了
    修复中:....
    放弃了:嗯哼,去 NMD 吧
    得结论:还是旧版好用

    其实 1999 年地球人已经联系上了三体人,和三体人对话的地球人是一位程序员,他问三体人宇宙真理是什么,三体人回答:不要优化,不要优化,不要优化
    KMpAn8Obw1QhPoEP
        2
    KMpAn8Obw1QhPoEP  
       2022-01-02 21:08:40 +08:00 via Android
    @eason1874 哈哈哈这小剧场真带劲儿

    过早优化是万恶之源 by 鲁迅
    whileFalse
        3
    whileFalse  
       2022-01-02 21:45:43 +08:00
    这时候不应该反思自己的编程水平么。
    Lighfer
        4
    Lighfer  
       2022-01-02 21:51:10 +08:00   1
    永远不要仅仅因为“有相同的代码部分”就合并成一个方法,并认为这是一种优化
    Hurriance
        5
    Hurriance  
       2022-01-02 22:28:35 +08:00
    我的想法是,不要随便抽别人的方法,除非很明确能够处理好整个调用链路,即便这样,也抵不住业务频繁的变更,丑就丑点吧
    learningman
        6
    learningman  
       2022-01-02 22:49:11 +08:00
    "两个方法中有重复代码"
    但是你抽出来作为一个函数,就要维护原来的整个上下文,累死,又不是 #define
    sagaxu
        7
    sagaxu  
       2022-01-02 23:55:07 +08:00   1
    我经常优化到一半然后回退代码,有时已经改了几百行了
    kaiki
        8
    kaiki  
    OP
       2022-01-03 09:10:44 +08:00   1
    @learningman
    我可以把它做得更好!->它这么做也不是没理由的。->又不是不能用。
    sundaydx
        9
    sundaydx  
       2022-01-03 14:46:28 +08:00
    @kaiki 这个内心剧场属实了
    qq296015668
        10
    qq296015668  
       2022-01-04 03:04:28 +08:00
    @kaiki 擦,真实。

    大家日常协同的时候,比如发现自己或者其他同事的代码有类似问题的时候会一起沟通然后优化吗?还是不想多事 ctrl + c + v 完事?

    我发现小团队大家关系比较融洽的时候,这样做往往会有意想不到的惊喜(沟通使人 ___)。
    但是在一些比较大的团队或者项目中,很少会进行优化或者沟通(除非是老大发现喊一起改)。
    msg7086
        11
    msg7086  
       2022-01-04 06:00:53 +08:00
    我写代码很少会单个方法写得太长。
    如果你玩过 Ruby 用过 RuboCop ,这货的默认规则一个类不能超过 100 行,一个方法不能超过 10 行。
    我感觉这是极端了一些,不过如果你一个方法上百行的话,一般来说是有点过长了。

    我一般写的时候,比较独立的功能都会主动拆出来做成方法。
    交上去的代码本来就不太会有又臭又长的方法。
    这种情况下如果需要复制粘贴,我也就复制粘贴了事了。

    比较大的团队的话,写得又臭又长的代码在我们这是过不了代码审核的。
    就算我看的时候睁一眼闭一眼过了,更高级别的同事也会 reject 掉,打回去重新改。
    (如果经常被打回去重新改,可能就要吃 PIP 滚蛋了。)
    nekoneko
        12
    nekoneko  
       2022-01-04 11:15:44 +08:00
    @msg7086 #11 我 java 的,按这个标准,那些写 java 源码的人都可以滚蛋了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     905 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 19:19 PVG 03:19 LAX 12:19 JFK 15:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86