• 抛砖引玉,征集体会


    现在对程序只有两个要求:简单、坚固;其余一切都不在心上。

    不知道多少人有到别人家上厕所的经历。

    我的一些朋友家装不错,但是有一点我是特别头痛的:那个好几千的马桶。这些马桶卖相不错、技术先进(具体牛在哪儿我就不懂,但肯定确实构造比最便宜的马桶复杂很多),就是有一点,万一我不幸想在这些朋友家大号,总有可能冲不干净。收尾工作经常不是擦PP冲水,而是做好清洁工作才敢出去。

    我还有一个朋友,便便非常大条,多大下水的马桶都堵过;我常想,如果来的不是我而是他... 所以搬到现在居住的地方的时候,选择马桶,我的标准就是:最简单中较好的。

    不知道大家有没有经常逛家具城的。

    我没这方面需求和爱好(生活水准低、要求也低),但偶尔会去宜家,因为宜家很多东西的设计符合第一条,有时候会去当公园逛逛。长话短说:如果你仔细观察,宜家的很多家具,都是钉在墙上或地上的;如果碰巧碰到没有钉上的,或者到自提区看样品,你会发现轻轻一推,所有的东西都是晃晃悠悠的。

    也许宜家最初的定位是给穷人、经常换住所的人提供临时家具;但相比我家一个50年代传下来的桌子,这感觉还是让人不爽。当然考虑到宜家是从需求出发,能够释然一点。

    简单是必须;坚固在所有非临时的东西上与它并列,就是这样。


    P.S. 坚固,在这里并不是仅仅说正确性,还包括了“抗推”能力。即一段程序、一个设计,只要它完成,它在一个预期的时间内,能承受一定范围的外力;外力主要指:同一层次其它部分的变更、其它层次设计的变更等外在于当前部分带来的影响。

    听着似乎有点象“高聚低耦”等等那套,不过那些并不是我在这里要说的东西:它们既不充分,且还存在很多多余的东西,从而也就不必要了。事实上遵循种种原则往往并不能达到我在这里所说的目标,甚至连这些原则本身的目标也达不到。

    这一方面是因为:很多原则需要具体的方法,而方法是否成功又依赖于实施,实施呢则又看使用者对问题的理解;而前面这一大串在很多时候都会使得“对问题的理解”的关注被分散。可一旦问题被理解了,前面一大串也就无关紧要了。买椟还珠。

    另一方面,需要长篇大论、细心研讨的东西一定不是根本的;为什么?参见第一条:它们不够简单。

  • 相关阅读:
    Haskell 差点儿无痛苦上手指南
    蛋疼的Apple IOS Push通知协议
    css概述
    数据挖掘十大经典算法
    序员工作究竟能干多久?程序猿的前途怎样?
    怎样将程序猿写出来的程序打包成安装包(最简单的)
    Denny Zhang:一辈子做一个自由职业者
    自己动手写操作系统--个人实践
    结构体数组
    英雄会挑战失败求原因
  • 原文地址:https://www.cnblogs.com/guaiguai/p/1566905.html
Copyright © 2020-2023  润新知