代码库设计 设计 deep modules :把大量行为放在小 interface 之后,把 interface 放在清晰 seam 上,并通过该 interface 测试。凡是在设计或重构代码时,都使用这套语言和原则。目标是给 callers 带来 leverage,给 maintainers 带来 locality,并让每个人都更容易测试。 术语表 准确使用这些术语,不要替换成 "component"、"service"、"API" 或 "boundary"。一致语言就是重点。 Module - 任何拥有 interface 和 implementation 的东西。它故意不限定尺度:function、class、package,或跨层 slice 都可以。 Avoid : unit, component, service. Interface - caller 为了正确使用 module 必须知道的一切:type signature,以及 invariants、ordering constraints、error modes、required configuration 和 performance characteristics。 Avoid : API, signature(太窄,只指 type-level surface)。 Implementation - modul…