关于 python-design-modularity
面向 Python 开发者的设计与模块化指导技能,帮助规划模块边界、拆分复杂结构并提高代码可读性。它强调显式契约、组合优先,以及将结构重构与行为变更分开。
主要功能
- 01明确模块职责与公开接口
- 02默认优先使用组合
- 03应用 Functional Core / Imperative Shell
- 04分离结构重构与行为变更
- 05评估权衡及补偿措施
适用场景
- 01规划跨模块重构
- 02拆分臃肿类或深层继承结构
- 03审查代码可读性与架构清晰度
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ahgraber/ skills --skill python-design-modularity安装后在 Claude Code 中输入/python-design-modularity确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/design-rules.mdfunctional-core-shell.mdmodule-boundaries.mdreadability-and-complexity.mdrefactor-guidelines.md详细介绍
Python 设计与模块化
概述
以可读性优先进行设计,并明确模块契约。 让控制流、数据流转和所有权边界一目了然,使代码保持可维护性,并能安全地进行修改。
将这些建议视为优先采用的默认做法。 如果默认做法与项目约束冲突,请提出更合适的替代方案,并说明权衡和补偿性措施(测试、可观测性、迁移、回滚)。
适用场景
- 重构模块、包或所有权边界
- 拆分上帝类或深层嵌套的继承体系
- 在组合与继承之间做出选择
- 应用函数式核心/命令式外壳的分离
- 规划涉及多个模块的重构
- 审查代码的可读性或架构清晰度
不适用场景:
- 纯粹的性能优化——参见
python-concurrency-performance - 错误处理和弹性模式——参见
python-errors-reliability - 类型契约和协议设计——参见
python-types-contracts - 没有维护周期的一次性脚本或临时性代码
快速参考
- 明确控制流和数据流转。
- 明确模块所有权和不变量。
- 默认优先采用组合。
- 在有助于提升可测试性和关注点分离时,采用函数式核心/命令式外壳。
- 将行为变更与结构性重构分开——绝不要在同一个提交中混合进行。
常见错误
- 同时重构行为和结构——混淆了两类风险,增加回滚难度,也让审查不易看清重点。 先做其中一项,再做另一项。
- 优先考虑继承——深层继承体系会耦合不相关的关注点,并让推理局限于局部。 默认采用组合;只有当“是一个”的关系确实稳定时才使用继承。
- 隐藏的模块耦合——跨边界导入实现细节会造成隐形契约。 暴露明确的公共 API,并将内部实现保持为私有。
- 过早抽象——在第二或第三个具体用例出现之前就提取共享接口,会导致抽象不当且难以撤销。 等待重复代码揭示真正的切分点。
- 忽视函数式核心/命令式外壳的分离——将 I/O 与业务逻辑混合,会让单元测试变得困难,并扩大变更的影响范围。 将副作用推到边界。
范围说明
- 将这些建议视为常见情况下优先采用的默认做法,而非普适规则。
- 如果某项默认做法与项目约束冲突或会使结果变差,请提出更合适的替代方案,并说明它为何更适合当前情况。
- 如需偏离默认做法,请说明权衡和补偿性措施(测试、可观测性、迁移、回滚)。
调用说明
- 当调用此技能时,请告知用户其名称:
python-design-modularity。
参考资料
references/design-rules.mdreferences/readability-and-complexity.mdreferences/module-boundaries.mdreferences/functional-core-shell.mdreferences/refactor-guidelines.md
评论
支持 Markdown