V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
caowentao
V2EX  ›  程序员

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

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

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

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

    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
    稳不稳定是客观的 代码美丑是主观的
    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 种情况,如果代码很丑,在修改代码时就容易出错,也就是人们口中常说的 “屎山”,屎山就是指丑的代码,同时也是指稍一改动就容易出错的代码。显然,这种情况下程序的稳定性确实与代码美丑有很大关系。
    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   ·   实用小工具   ·   2491 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 01:29 · PVG 09:29 · LAX 17:29 · JFK 20:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.