用途:该技能面向 Python 代码的可维护性,帮助在架构决策、重构复杂或纠缠代码、判断是否创建抽象、在继承与组合之间选择、评估复杂度与耦合、规划模块化架构时使用。
主要能力与核心概念:KISS(选择能工作的最简单方案,复杂度需由具体需求证明);单一职责(每个单元只有一个变更理由,关注点分离为聚焦组件);组合优于继承(通过组合对象构建行为,而非扩展类);三次法则(出现三处实例后再抽象,重复常优于过早抽象)。
使用方式:以示例说明如何用字典替代工厂/注册模式,将 HTTP 处理、业务逻辑与数据访问分层(API 层、服务层、仓储层),通过构造函数注入依赖(Protocol 定义 Logger、Cache 等接口)以便测试,并给出避免常见反模式的写法,如不向 API 暴露 ORM 模型、不把 I/O 混入业务逻辑。
适用场景:设计新组件或服务、重构、评估抽象必要性、规划分层架构、编写可测试代码。
限制与注意事项:资料给出若干陷阱——通过 new 实现单例对子类无效;frozen=True 的 dataclass 不冻结嵌套可变字段;观察者模式用强引用会内存泄漏,建议 weakref.WeakSet;functools.lru_cache 用于实例方法会永久持有实例;ABC 的 @abstractmethod 在实例化时才强制,而非子类定义时。具体安装命令、收费与平台信息暂未提供。