Nebula ArchRules와 함께 ArchUnit ... 노트

Nebula ArchRules와 함께 ArchUnit 확장하기

Netflix는 수천 개의 Java 리포지토리를 사용하는 폴리 리포(polyrepo) 전략을 사용하며, 효율적인 빌드 로직 공유가 필요합니다. 이들은 종속성을 관리하고 코드 표준을 강제하기 위해 ArchRules를 포함한 Nebula Gradle 플러그인 제품군을 구축했습니다. 이 이니셔티브는 이전 버전과 호환되지 않는 변경 사항 사고 이후 Java 라이브러리 수명 주기 관리를 개선해야 할 필요성에서 비롯되었습니다. Netflix는 API 수명 주기 주석(@Deprecated, @Public, @Experimental)을 활용하여 폐기된 코드의 잠재적인 문제를 식별합니다. 아키텍처 규칙을 강제하는 데 널리 사용되는 라이브러리인 ArchUnit은 이러한 주석의 오용 및 기타 기술 부채 문제를 감지하기 위해 선택되었습니다. Nebula ArchRules 플러그인을 통해 여러 리포지토리에 걸쳐 ArchUnit 규칙을 공유하고 적용할 수 있으며, 향상된 기능을 제공합니다. ArchRules는 언어 간 지원을 위해 바이트코드 분석(ASM)을 사용하고, 규칙 생성을 단순화하는 사용하기 쉬운 빌더 패턴을 사용합니다. 규칙은 라이브러리와 함께 번들링되거나 독립적인 규칙 라이브러리에 정의될 수 있으며, 플러그인에 의해 자동으로 감지되고 실행됩니다. ArchRules Runner 플러그인은 소스 세트에 대해 규칙을 평가하고 JSON 및 콘솔 보고서를 생성하여 더 나은 보고 기능을 제공합니다. ArchRules를 사용함으로써 Netflix는 라이브러리 작성자가 API 사용을 추적하고 폐기된 API 사용을 감지할 수 있는 플랫폼을 제공합니다.
CdXz5zHNQW_UkqZEpugr5.png