Есть соглашения по именованию в коде, которые все постоянно нарушают?
Имена классов, слоёв, обработчиков, сервисов - это часть архитектуры.
Но обычно всё держится на:
• договорённостях в голове
• комментариях в Wiki
“ну мы же так решили”
А потом кто-то добавляет UserCmdHandler, DoStuffManager или NewService2 - и структура просто разваливается.
💡 Решение: архитектурные тесты
Вы можете написать тесты, которые проверяют саму архитектуру, а не бизнес-логику.
Например:
• все CommandHandler обязаны заканчиваться на CommandHandler
• классы из Application не должны ссылаться на Infrastructure
• контроллеры не имеют доступа к репозиториям напрямую
DTO не должны жить в доменной модели
И если кто-то нарушил правило - тест падает. Сразу. В CI.
⚙️ Что это даёт
Архитектура перестаёт быть кривой и косой.
Она начинает подчиняться строгим правилам.
Новый разработчик в команде может не знать всех договорённостей, но код всё равно останется чистым, потому что правила защищены тестами.
🧠 Главное осознание
Архитектурные тесты защищают структуру.
А структура - это то, что определяет, станет проект поддерживаемым…
или превратится в хаос через год.
Post #829
3.27K
