Java Books
14.3K subscribers
207 photos
13 videos
269 files
267 links
Java Библиотека

По всем вопросам- @notxxx1

@ai_machinelearning_big_data - machine learning

@pythonl - Python

@itchannels_telegram - 🔥 best it channels

@ArtificialIntelligencedl - AI

@pythonlbooks-📚

@programming_books_it -it 📚

№ 5032728887
Download Telegram
💡 Совет по Java: автоматизируй проверку архитектурных правил через тесты

Вместо того чтобы ловить нарушения код-стандарта на ревью, формализуй их прямо в юнит-тестах. DSL-подход (в духе ArchUnit / TAIKAI) позволяет описать ограничения читаемо и выполнять их при каждом сборочном цикле.


@Test
void shouldFulfillConstraints() {
Taikai.builder()
.namespace("com.enofex.taikai") // выбранный пакет
.java(java -> java // правила для Java-кода
.noUsageOfDeprecatedAPIs() // запрет устаревших API
.methodsShouldNotDeclareGenericExceptions()// никаких throws Exception
.utilityClassesShouldBeFinalAndHavePrivateConstructors())
.logging(logging -> logging // единый стиль логгеров
.loggersShouldFollowConventions(
Logger.class, "logger",
EnumSet.of(PRIVATE, FINAL)))
.spring(spring -> spring // правила для Spring-слоя
.controllers(c -> c
.shouldBeAnnotatedWithRestController() // все контроллеры = REST
.shouldNotDependOnOtherControllers()))
.build()
.check(); // тест упадёт, если есть ошибка
}


Плюсы подхода:

Быстрая обратная связь — CI сразу показывает, где правила нарушены.

Чёткая документация — правила читаемы прямо в коде, без вики-страниц.

Меньше рутины на ревью — обсуждаем дизайн, а не «почему здесь throws Exception».

Добавь такой тест-набор в проект и поддерживай кодовую базу в здоровом состоянии автоматически.

#Java #CodeQuality #ArchUnit #SpringBoot

@java_library
👍107👏4