程序稳定与否或在于代码的美丑之间? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
caowentao
V2EX    程序员

程序稳定与否或在于代码的美丑之间?

  •  
  •   caowentao 2021-03-27 05:31:00 +08:00 4379 次点击
    这是一个创建于 1705 天前的主题,其中的信息可能已经有所发展或是发生改变。

    标题有点小哲突然有一种直觉,觉得程序的稳定性也包括性能,功能,可维护性都诸多方面如果优秀,代码必然优雅。
    逆命题:优雅的代码必然各项性能和功能也优秀。
    否命题:各方面性能和功能糟糕的程序,代码必丑陋。
    逆否命题:如果不是优雅的代码就不可能是性能卓著,功能完善的程序。

    以上的原命题,逆命题,否命题,逆否命题是否都成立?

    PS:我把我的微信签名改成: 看似优雅的代码必稳定,丑陋则反之。

    28 条回复    2021-03-29 12:27:22 +08:00
    caowentao
        1
    caowentao  
    OP
       2021-03-27 05:42:40 +08:00 via iPhone
    [发太仓促,重新排版]

    标题有点小哲突然有一种直觉,觉得程序好坏和代码美丑之间是对等关系。大家来评一评下面四个命题。

    原命题:程序的稳定性也包括性能,功能,可维护性等诸多方面如果优秀,代码必然优雅。

    逆命题:优雅的代码必然各项性能和功能也优秀。

    否命题:各方面性能和功能糟糕的程序,代码必丑陋。

    逆否命题:如果不是优雅的代码就不可能是性能卓著,功能完善的程序。

    以上的原命题,逆命题,否命题,逆否命题是否都成立?
    aijam
        2
    aijam  
       2021-03-27 05:48:52 +08:00
    相关性不等于因果关系
    thedrwu
        3
    thedrwu  
       2021-03-27 05:53:24 +08:00 via Android
    生成出来的代码特别丑,但是可以很稳定,甚至都能数学证明
    woaiwhr001
        4
    woaiwhr001  
       2021-03-27 06:06:20 +08:00   1
    “优雅”大概包括干练的代码流畅的逻辑高覆盖的异常处理,但是这与实际的优雅又相悖,想要性能高有稳定必定在代码层面就不会太优雅,所谓的优雅都是在编译器层面提供了大量的支持,让原本不优雅的处理方式以语法糖的方式看着比较优雅,而早期的优秀项目的代码必定不是那么的优雅比如早期 office 和一些知名的软件势必会是一堆 hack 以提高性能,所以优雅也是递进的... 就像 oc 和 swift,oc 写起来比较繁重实现东西也麻烦,势必会推出功能更丰富书写更干练的特性更丰富的语言,而类似 php 的语言不断推出新特性还有知名的诸如 laravel 等框架让书写变得更健壮更简单更优雅,所以优雅的本质如同女人化妆... 有的天生丽质就可以淡妆出街,而有的稍微差一些也可以考化妆技术弥补,关键在于你喜欢哪一款,以及如何定义优雅
    carlclone
        5
    carlclone  
       2021-03-27 08:01:01 +08:00
    路别走歪了,代码健壮问题还是多训练逻辑能力吧
    mtrec
        6
    mtrec  
       2021-03-27 08:11:50 +08:00 via Android
    稳不稳定是客观的 代码美丑是主观的/div>
    Elethom
        7
    Elethom  
       2021-03-27 08:31:27 +08:00 via iPhone
    举个简单的反例(?):编译器优化。
    xuegy
        8
    xuegy  
       2021-03-27 08:45:12 +08:00 via iPhone
    代码不一定,网格是这样的。
    特别丑的网格算出来的结果一定不会收敛。
    kerrspace
        9
    kerrspace  
       2021-03-27 08:58:01 +08:00
    有的自己的项目代码为了保护源代码会加花加锁 这种情况下越看不懂的反而代表你水平越高。
    CEBBCAT
        10
    CEBBCAT  
       2021-03-27 09:06:27 +08:00 via Android   3
    优雅和可维护性相关一点,和其他的性能、正确性关系不大。

    PS 应该是叫感觉而不是叫直觉吧我想

    ---
    而这些并不是完全重要,更加重要的问题是, 程序稳定与否或在于代码的美丑之间因何而发生? 这种事实对本人来说意义重大,相信对这个世界也是有一定意义的。 一般来讲,我们都必须务必慎重的考虑考虑。 现在,解决程序稳定与否或在于代码的美丑之间的问题,是非常非常重要的。 所以, 本人也是经过了深思熟虑,在每个日日夜夜思考这个问题。 既然如此, 每个人都不得不面对这些问题。 在面对这种问题时, 亚伯拉罕林肯曾经提到过,我这个人走得很慢,但是我从不后退。这句话语虽然很短,但令我浮想联翩。 我们都知道,只要有意义,那么就必须慎重考虑。 程序稳定与否或在于代码的美丑之间的发生,到底需要如何做到,不程序稳定与否或在于代码的美丑之间的发生,又会如何产生。 生活中,若程序稳定与否或在于代码的美丑之间出现了,我们就不得不考虑它出现了的事实。 我认为, 这样看来。
      总结的来说, 问题的关键究竟为何? 我们不得不面对一个非常尴尬的事实,那就是, 我们都知道,只要有意义,那么就必须慎重考虑。 我们不得不面对一个非常尴尬的事实,那就是, 乌申斯基在不经意间这样说过,学习是劳动,是充满思想的劳动。这似乎解答了我的疑惑。 总结的来说, 左拉曾经说过,生活的道路一旦选定,就要勇敢地走到底,决不回头。带着这句话,我们还要更加慎重的审视这个问题: 程序稳定与否或在于代码的美丑之间的发生,到底需要如何做到,不程序稳定与否或在于代码的美丑之间的发生,又会如何产生。 我们都知道,只要有意义,那么就必须慎重考虑。 既然如此, 程序稳定与否或在于代码的美丑之间,发生了会如何,不发生又会如何。 从这个角度来看, 苏轼曾经提到过,古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。这似乎解答了我的疑惑。 这样看来, 一般来说, 而这些并不是完全重要,更加重要的问题是, 那么, 每个人都不得不面对这些问题。 在面对这种问题时, 在这种困难的抉择下,本人思来想去,寝食难安。 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 就我个人来说,程序稳定与否或在于代码的美丑之间对我的意义,不能不说非常重大。 生活中,若程序稳定与否或在于代码的美丑之间出现了,我们就不得不考虑它出现了的事实。 在这种困难的抉择下,本人思来想去,寝食难安。 我们都知道,只要有意义,那么就必须慎重考虑。
    worlders
        11
    worlders  
       2021-03-27 09:09:32 +08:00 via iPhone
    想多了,代码的稳定性只和你的逻辑有关,格式之类的针对的是可读性
    cmdOptionKana
        12
    cmdOptionKana  
       2021-03-27 09:19:07 +08:00
    要分两种情况:稳定是否包括维护过程?

    1.单指代码目前的状态,即不经任何改动时是否稳定。

    2.不仅指代码目前的状态,还包括后续不断维护、改需求、换人维护等情况下是否容易保持稳定。

    第 1 种情况代码很丑也没关系,只要逻辑上没问题就能稳定,即,这种情况下程序稳定与否与代码美丑无关。

    第 2 种情况,如果代码很丑,在修改代码时就容易出错,也就是人们口中常说的 “屎山”,屎山就是指丑的代码,同时也是指稍一改动就容易出错的代码。显然,这种情况下程序的稳定性确实与代码美丑有很大关系。
    td width="10" valign="top">
    ericguo
        13
    ericguo  
       2021-03-27 10:21:00 +08:00
    代码的美丑和稳定性没有关系,但是和代码本身的生死有关,丑到爆的代码是找不到男人的,这样只能最终被抛弃。
    nalzok
        14
    nalzok  
       2021-03-27 10:31:40 +08:00
    learningman
        15
    learningman  
       2021-03-27 11:04:53 +08:00
    你觉得汇编美不
    iceheart
        16
    iceheart  
       2021-03-27 11:12:00 +08:00 via Android
    看过 stl 代码吗?美吗?
    但是它稳定
    fpure
        17
    fpure  
       2021-03-27 11:19:55 +08:00
    优雅和可维护性有关,但程序员的职责不就是实现功能+防止代码腐烂吗,所以优雅的代码也是必要的
    lechain
        18
    lechain  
       2021-03-27 11:22:30 +08:00
    没关系。只是丑的代码招人讨厌,不想维护,与代码编译出来的程序是否稳定没有关系,代码运行起来是否稳定取决于代码本身的逻辑,代码的逻辑会和代码的美丑有关系吗?
    TophTab
        19
    TophTab  
       2021-03-27 11:56:39 +08:00
    simple is beautiful
    no1xsyzy
        20
    no1xsyzy  
       2021-03-27 13:01:51 +08:00
    “优雅”这一评价体系的形成正是为了“可维护性”

    但因为古德哈特定律,它只能成为一种较强的相关而不是绝对相关。
    你要时刻记住:你写出优雅的代码是为了可维护性(包括可读性、正交性)。

    而“稳定性”这个词有点宽泛。Robustness 来源于可维护性 世界一直在变。
    之前 PGP 社区的全域 DDOS 问题太难解决了,OCaml 没有维护者……
    caowentao
        21
    caowentao  
    OP
       2021-03-27 13:26:54 +08:00 via iPhone
    @CEBBCAT 大护法
    shyangs
        22
    shyangs  
       2021-03-27 14:50:36 +08:00   1
    需求不, 有新增功能, 一直修 bug. 就到 XP 後期的定.

    需求一直, 一直新增功能, 就一直生 bug. win10 得 bug10 .
    jinsongzhao
        23
    jinsongzhao  
       2021-03-27 15:08:59 +08:00 via Android
    刚开始追求优雅是必要的,这才是提升稳定性的基础,尤其拷贝别人代码时,不过已经烂熟的结构乱来一通,也不会丢掉核心逻辑时,看心情吧,过去养成的习惯,不会差哪里去的
    ychost
        24
    ychost  
       2021-03-27 17:14:11 +08:00
    代码优雅一般意味着需求明确,很有目的性地去写代码,但是大多数场合都是一个需求改了又改,不会给你足够的时间去优化代码,每次做完项目都觉得还可以优化一把,因为到最后一刻需求才是确定的,自然能够将其进行优化
    newmlp
        25
    newmlp  
       2021-03-27 17:16:54 +08:00
    没半毛钱关系
    xcstream
        26
    xcstream  
       2021-03-28 03:15:14 +08:00
    优化过的代码 同时趋向这 2 个特性
    caowentao
        27
    caowentao  
    OP
       2021-03-29 12:27:04 +08:00 via iPhone
    @CEBBCAT 你一直在做正确德事情,但不知道为什么这么做,内驱力在哪里?答案很普通,就是人性之美
    caowentao
        28
    caowentao  
    OP
       2021-03-29 12:27:22 +08:00 via iPhone
    @caowentao 人之初性本善
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4338 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 128ms UTC 01:02 PVG 09:02 LAX 17:02 JFK 20:02
    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