Konsist позволяет проверять следующее:
🔸Каждый наследник
ViewModel должен иметь суффикс ViewModel🔸Классы с аннотацией
@Repository должны находиться в пакете ..repository..🔸Параметры конструктора должны быть отсортированы в алфавитном порядке
🔸Имена параметров конструктора должны быть производными от имени класса
🔸Инъекция через поля и префикс
m запрещены🔸Каждый публичный член в пакете
api должен быть задокументирован с помощью KDocТакже Konsist позволяет проверять архитектуру проекта. Например, Clean Architecture:
🔸Domain-слой независим
🔸Data-слой зависит от Domain-слоя
🔸Presentation-слой зависит от Domain-слоя
Как же он соотносится с ArchUnit?
ArchUnit работает с байткодом JVM и не учитывает специфику Kotlin. Konsist анализирует код непосредственно и понимает Kotlin, а также намного проще в использовании.
Для меня Konsist — это инструмент для обеспечения консистентности проекта. Достаточно договориться о правилах, написать unit-тесты — и обсуждения в PR'ах больше не нужны, так как правила теперь соблюдаются автоматически ✌️
👉 @MobDevPortal | #tips
