Skip to content

检测器概述

archlint 内置了 28+ 个检测器,根据它们识别的架构或代码质量问题的类型进行分类。

依赖问题

检测器ID描述默认
循环依赖cycles文件之间的循环依赖
类型循环circular_type_deps仅类型的循环依赖
包循环package_cycles包之间的循环依赖
图层违规layer_violation违反定义的架构分层
SDP 违规sdp_violation违反稳定依赖原则 (SDP)

模块与类设计

检测器ID描述默认
上帝模块god_module承担过多职责的模块
枢纽模块hub_module高度连接的“枢纽”模块
低内聚lcom内部内聚力较低的类 (LCOM4)
高耦合high_coupling依赖项过多的模块
分散模块module_cohesion功能分散在过多的文件中
特性嫉妒feature_envy使用其他类多于使用自身类的类方法

代码质量与组织

检测器ID描述默认
死代码dead_code未使用的导出
死符号dead_symbols未使用的局部函数和变量
孤立类型orphan_types未连接到代码库的类型
Barrel 滥用barrel_file导致耦合的大型 Barrel 文件
原始类型偏执primitive_obsession过度使用原始类型而非领域模型类型

复杂度与大小

检测器ID描述默认
高复杂度complexity圈复杂度较高的函数
深层嵌套deep_nesting深层嵌套的代码块
参数过多long_params参数过多的函数
大文件large_file过大的源文件

变更模式

检测器ID描述默认
霰弹式修改shotgun_surgery更改时需要修改许多文件
不稳定接口unstable_interface频繁更改的公共接口

运行时与安全

检测器ID描述默认
测试泄漏test_leakage测试代码泄漏到生产环境
供应商耦合vendor_coupling与外部库的紧密耦合
枢纽依赖hub_dependency对外部包的过度依赖
副作用导入side_effect_import触发副作用的导入
共享可变状态shared_state导出的可变变量

架构指标

检测器ID描述默认
抽象性违规abstractness痛苦/无用区 (I+A 指标)
分散配置scattered_config配置分散在多个文件中
代码克隆code_clone项目中的重复代码

Released under the MIT License.