用途:该技能提供 Python 设计原则与模式指导,帮助编写易理解、易测试、易修改的代码。适用场景包括从零设计新服务或组件并划分职责层次、重构过大的 God 类或单体函数、决定是否新增抽象还是保留重复、审查拉取请求中的紧耦合或内部类型泄漏等结构问题、为新类层次选择继承或组合,以及因 I/O 与业务逻辑纠缠而难以测试的代码库。
核心概念:KISS(选择能工作的最简单方案,复杂度须由具体需求证明);单一职责(每个单元只有一个变更原因);组合优于继承(通过组合对象构建行为);三次法则(出现三处实例后再抽象,重复常优于过早抽象)。
使用方式:先做需求分析,理解项目需求与技术约束;再进行架构设计,划分系统架构与组件;随后获得实现建议与代码模式;可进行代码审查,检查质量与最佳实践;最后获得优化建议。详细模式与示例见 references/details.md,导航层不足时阅读该文件。
最佳实践:保持简单;单一职责;分离关注点,各层目的清晰;组合而非继承;三次法则;函数保持短小(约 20-50 行,视复杂度而定)且单一目的;通过构造函数注入依赖以便测试;先删除死代码再考虑模式;逐层隔离测试;显式优于取巧。
常见问题处理:类职责过多时用“变更原因”测试判断是否拆分;构造函数参数达 7 个以上通常说明职责过多,应先拆分;组合嵌套过深时保持 2-3 层,或考虑 Protocol 与函数组合;重复已导致错误分叉时应立即提取并加测试;服务层反向导入 API 层属分层违规,应引入共享类型层,保持依赖方向向下(API → Service → Repository)。
限制:需要具体项目上下文与技术栈信息;不处理非技术业务决策;仅提供指导,不提供具体代码实现。相关技能包括 python-testing-patterns 与 python-project-setup,安装命令为 npx skills add full-stack-skills/python-skills --skill python-testing-patterns 和 npx skills add full-stack-skills/python-skills --skill python-project-setup。内容源自 wshobson/agents,MIT License,Copyright (c) 2024 Seth Hobson,使用、修改与再分发须遵守该许可并保留版权声明。