用途
architecture-review 是一个用于分析 Python 模块架构的技能,基于 pyscn 工具,帮助理解模块结构与耦合关系。适用于需要评估类耦合、类内聚、依赖循环以及模块社区划分的场景。
主要能力
该技能通过运行 pyscn CLI 实现以下分析:
- 检查类耦合(CBO):
uvx pyscn@latest analyze --select cbo <path> - 查找循环依赖:
uvx pyscn@latest analyze --select deps <path> - 检查类内聚(LCOM4):
uvx pyscn@latest analyze --select lcom <path> - 查看哪些文件应一起审阅:
uvx pyscn@latest analyze --select communities --json <path> - 映射模块架构:同样使用 communities 分析。
可用参数包括 --min-cbo <n>(报告的最小 CBO 阈值)和 --json(生成详细报告文件)。报告文件不会输出到 stdout,而是写入 .pyscn/reports/ 目录,完成时打印路径。
模块社区检测为可选项,需通过 --select communities --json 运行并读取报告文件。JSON 报告中包含 community_analysis.community_context_map,这是一个紧凑、确定性的映射,指示哪些模块应一起检查,包含:
bundles[]:一起变更的模块簇,每个包含模块、包、风险等级、桥接模块、可选的建议审阅范围(路径前缀)和一行摘要。大型 bundle 会以... +N more标记截断模块列表,module_count始终为真实总数。bridge_modules[]:连接两个或多个社区的模块,包含模块名、所连接的社区及原因。
使用方式
无需安装,直接使用 uvx pyscn@latest <command> 运行。根据用户请求选择对应命令,例如检查类耦合、查找循环依赖、检查类内聚或分析模块社区。使用模块社区映射时,将 bundle 中所有模块一起加载,并在更改簇边界前引入相连的桥接模块,以界定审查和重构范围。
结果解读
- 高 CBO 类依赖多个其他类,变更影响范围广,建议提取接口或进行依赖倒置。
- 高 LCOM4 类捆绑了不相关的职责,建议沿不连通的方法组进行拆分。
- 依赖循环是最高优先级的架构问题,应指出每个循环中的模块及最薄弱的边以打破循环。
- 始终将发现关联到具体模块,并建议具体的结构性变更。
MCP 替代方式
如果连接了 pyscn-mcp MCP 服务器,可以使用其工具代替 CLI:check_coupling 用于 CBO 指标,或 analyze_code 配合 analyses: ["deps"]、["lcom"] 或 ["communities"](communities 需要 output_mode: "full",完整响应包含相同的 community_context_map)。结果以内联方式返回,不生成报告文件。
限制
资料未提供关于平台限制、性能上限或收费模式的说明。