抛砖引玉,征集体会
现在对程序只有两个要求:简单、坚固;其余一切都不在心上。
不知道多少人有到别人家上厕所的经历。
我的一些朋友家装不错,但是有一点我是特别头痛的:那个好几千的马桶。这些马桶卖相不错、技术先进(具体牛在哪儿我就不懂,但肯定确实构造比最便宜的马桶复杂很多),就是有一点,万一我不幸想在这些朋友家大号,总有可能冲不干净。收尾工作经常不是擦PP冲水,而是做好清洁工作才敢出去。
我还有一个朋友,便便非常大条,多大下水的马桶都堵过;我常想,如果来的不是我而是他... 所以搬到现在居住的地方的时候,选择马桶,我的标准就是:最简单中较好的。
不知道大家有没有经常逛家具城的。
我没这方面需求和爱好(生活水准低、要求也低),但偶尔会去宜家,因为宜家很多东西的设计符合第一条,有时候会去当公园逛逛。长话短说:如果你仔细观察,宜家的很多家具,都是钉在墙上或地上的;如果碰巧碰到没有钉上的,或者到自提区看样品,你会发现轻轻一推,所有的东西都是晃晃悠悠的。
也许宜家最初的定位是给穷人、经常换住所的人提供临时家具;但相比我家一个50年代传下来的桌子,这感觉还是让人不爽。当然考虑到宜家是从需求出发,能够释然一点。
简单是必须;坚固在所有非临时的东西上与它并列,就是这样。
P.S. 坚固,在这里并不是仅仅说正确性,还包括了“抗推”能力。即一段程序、一个设计,只要它完成,它在一个预期的时间内,能承受一定范围的外力;外力主要指:同一层次其它部分的变更、其它层次设计的变更等外在于当前部分带来的影响。
听着似乎有点象“高聚低耦”等等那套,不过那些并不是我在这里要说的东西:它们既不充分,且还存在很多多余的东西,从而也就不必要了。事实上遵循种种原则往往并不能达到我在这里所说的目标,甚至连这些原则本身的目标也达不到。
这一方面是因为:很多原则需要具体的方法,而方法是否成功又依赖于实施,实施呢则又看使用者对问题的理解;而前面这一大串在很多时候都会使得“对问题的理解”的关注被分散。可一旦问题被理解了,前面一大串也就无关紧要了。买椟还珠。
另一方面,需要长篇大论、细心研讨的东西一定不是根本的;为什么?参见第一条:它们不够简单。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器