夜雨聆风学习资料网

ARTICLE · 1046832

偶尔胡扯 | 文物求巧,软件求拙:一个反差的感悟

偶尔胡扯 | 文物求巧,软件求拙:一个反差的感悟

看纪录片时,常听到说挖到的文物非常精美、巧妙,令人叹为观止。这让我联想到软件领域:我们一般追求笨拙、简单、可重复,Unix 里的 KISS 原则就是这个意思。这里存在很大的差异。

一、文物/建筑:评价的是“结果”

  • 我们说它“精美”“精妙”,是在赞叹成品呈现出的效果——视觉震撼、技艺高超、独一无二。
  • 但建造过程恰恰相反:工匠追求的是可施工、可维护、可替换,越笨拙、越有冗余越好。

二、软件:评价的是“过程”

  • 软件说“接口一样”“简单重复”,是在夸可维护性、可扩展性、可预测性。
  • 因为软件是长期演化的系统,今天能用不够,明天改需求、加功能、修 bug 都得容易。
  • 所以软件追求低耦合、高内聚、标准化、冗余可替换——这恰恰就是“拙”:不依赖某个精妙设计,坏了能换,改了不牵一发动全身。

三、核心矛盾

  • 文物建筑:一次性建成,之后靠维护续命,所以“巧”是卖点,但“巧”也是脆弱点。
  • 软件系统:持续演化,所以“巧”往往是债务,“拙”才是资产。
  • 换句话说:文物是“为结果而巧”,软件是“为过程而拙”。

四、共通处

  • 真正能活很久的古建筑,骨子里也有“拙”的一面:厚墙、重基础、大屋顶、可替换的木构件。
  • 真正能活很久的软件,也不是一味笨重,而是在关键接口上“拙”,在核心逻辑上“巧”。
  • Unix 管道就是“拙接口、巧组合”的样板:每个工具只做一件简单的事,复杂的编排交给组合,任何一环坏了都能单独替换——把“巧”藏在“拙”的接口之后。

所以不是“巧 vs 拙”谁好,而是看这个系统是一次性交付,还是要长期演化

相关学习资料