
可组合性指不同单元能够依照稳定的接口或规则连接,形成更大的结构,而不必每次都重新设计全部。它的重要性不在“拆得够小”,而在拆开以后还能可靠地合起来。
软件函数是一个直观例子。若一个函数接收和返回可预期的数据,其他函数便能继续处理;若每一步都擅自改变格式,即使代码分成许多模块,也难以组合。模块化强调部分可以分离,可组合性则进一步追问:这些部分能否一起工作。
可组合性降低协调成本,也让局部修改不必牵动整体。但它不等于统一一切。接口若规定得过死,会排除新做法;规则若太松,又无法建立信任。好的可组合性是在稳定边界与开放变化之间找到尺度:让已有单元能够相遇,同时保留产生新组合的空间。
了解 Geoffrey Chen 的更多信息
订阅后即可通过电子邮件收到最新文章。