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_file結合を引き起こす巨大なバレルファイル
基本データ型への執着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.