复杂度作为熵

主要观点:

  • 在随机数据集中无内部关系,解释需重新开始,信息论中简单性是内容与期望的契合,软件复杂即难解释,可用比特衡量其主观复杂性(即惊讶值或熵)。
  • 熵常被视为热力学第二定律的代名词,在软件中也适用,如 Jeffries 的代码充满小而不必要的复杂性,会随时间增加,良好设计需持续维护。
  • 借用“破窗”隐喻说明软件系统会从底部向上衰退,如 Hunt 和 Thomas 所说干净的功能系统一旦窗户开始破就会很快恶化,这反映了当时的个人主义思潮,Robert Martin 的《代码整洁之道》也有类似观点,强调代码应自文档化且保持干净,但过度专注于小而干净会导致熵增,忽视其他重要部分。

关键信息:

  • 随机数据集无内部关系,需重新解释。
  • 软件复杂性可通过熵衡量。
  • 软件中熵会随时间增加。
  • “破窗”隐喻及相关研究。
  • 《代码整洁之道》的观点及相关内容。

重要细节:

  • 信息压缩利用内部关系,随机数据无此关系。
  • Jeffries 代码的小复杂点及持续变化。
  • “破窗”实验的实际情况及后续影响。
  • Martin 对代码整洁的各种观点及相关引用。
阅读 9
0 条评论