イントロダクション
archlintは、TypeScriptおよびJavaScriptプロジェクト向けのASTベースのアーキテクチャ・スメル(構造上の問題)検出器です。アーキテクチャの退行を防ぐことで、チームが健全なコードベースを維持できるように設計されています。
哲学
継続的改善(ラチェット原則)
アーキテクチャ上の負債における最大の課題は、その量です。ツールが初日に500個の循環依存を報告した場合、チームはおそらくそれを無視するでしょう。archlintは**差分(diff)**に焦点を当てています。現在の状態を固定(ロック)し、新しいアーキテクチャ上の問題が導入された場合、または既存の問題が悪化した場合にのみCIを失敗させます。
単なる報告ではなく、解説を
「ゴッドモジュール」があることを知るだけでは不十分です。archlintはコンテキストを提供します:なぜそれがアーキテクチャ上の問題とされるのか、コードベースにどのような影響を与えるのか、そしてリファクタリングのための提案を行います。
スムーズな導入
サーバーのセットアップやデータベースの保守は不要です。数秒で実行できるCLIツールで、既存の.gitignoreを尊重し、コマンド一つで任意のCI/CDパイプラインに統合できます。
主な機能
- 28以上の検出器: 依存関係、モジュール設計、複雑度、デザインパターンをカバー。
- 高速: Rustと
oxcパーサーで構築。 - フレームワーク認識: NestJS、Next.js、Reactなどのためのインテリジェンスを内蔵。
- ビジュアル: 循環依存のためのMermaidダイアグラムを含むレポートを生成。
- 統合: リアルタイムフィードバックのためのESLintプラグインと、AI支援によるリファクタリングのためのMCPサーバーを提供。