Nebula ArchRules による ArchUnit のスケーリング
Netflixは、数千のJavaリポジトリを持つポリリポ戦略を採用しており、効率的なビルドロジックの共有が必要です。彼らは、依存関係を管理し、コード標準を強制するために、ArchRulesを含むNebula Gradleプラグインスイートを構築しました。この取り組みは、後方互換性のない変更インシデント後のJavaライブラリライフサイクル管理を改善する必要性から生まれました。Netflixは、非推奨コードの潜在的な問題を特定するために、APIライフサイクルアノテーション(@Deprecated、@Public、@Experimental)を利用しています。アーキテクチャルールを強制するための一般的なライブラリであるArchUnitは、これらのアノテーションの誤用やその他の技術的負債の問題を検出するために選択されました。Nebula ArchRulesプラグインは、多くのリポジトリ間でArchUnitルールを共有および適用できるようにし、強化された機能を提供します。ArchRulesは、バイトコード分析(ASM)を使用してクロス言語サポートを実現し、使いやすいビルダーパターンでルールの作成を簡素化します。ルールはライブラリにバンドルすることも、スタンドアロンのルールライブラリで定義することもでき、プラグインによって自動的に検出および実行されます。ArchRules Runnerプラグインは、ソースセットに対してルールを評価し、JSONおよびコンソールレポートを生成し、より優れたレポート機能を提供します。ArchRulesを使用することにより、Netflixはライブラリ作成者がAPIの使用状況を追跡し、非推奨APIの使用を検出するためのプラットフォームを提供します。