Масштабирование ArchUnit с пом... Заметка

Масштабирование ArchUnit с помощью Nebula ArchRules

Netflix использует стратегию polyrepo с тысячами Java-репозиториев, требующую эффективного обмена логикой сборки. Они создали набор плагинов Gradle Nebula, включая ArchRules, для управления зависимостями и обеспечения соблюдения стандартов кодирования. Эта инициатива возникла из-за необходимости улучшить управление жизненным циклом Java-библиотек после инцидента с обратно несовместимыми изменениями. Netflix использует аннотации жизненного цикла API (@Deprecated, @Public, @Experimental) для выявления потенциальных проблем с устаревшим кодом. ArchUnit, популярная библиотека для обеспечения соблюдения архитектурных правил, была выбрана для обнаружения неправильного использования этих аннотаций и других проблем с техническим долгом. Плагины Nebula ArchRules позволяют обмениваться правилами ArchUnit и применять их в нескольких репозиториях, предоставляя расширенные возможности. ArchRules использует анализ байт-кода (ASM) для поддержки нескольких языков и простой в использовании шаблон builder, упрощающий создание правил. Правила могут быть включены в библиотеки или определены в отдельных библиотеках правил, автоматически обнаруживаться и запускаться плагином. Плагин ArchRules Runner оценивает правила по наборам исходных кодов и генерирует отчеты в формате JSON и консоли, обеспечивая улучшенные возможности отчетности. Используя ArchRules, Netflix предоставляет платформу для авторов библиотек, позволяющую отслеживать использование API и обнаруживать использование устаревших API.
CdXz5zHNQW_UkqZEpugr5.png