Контроль архитектуры компилятором вместо тестов
Наконец-то окончательно завершён многолетний рефакторинг моего интерпретатора - архитектура настолько проработана, хороша и не противоречива, насколько это возможно и задумывалось изначально
ООП, DDD, Clean Architecture, изолированные поддомены, независимые контракты, слабосвязанные компоненты и сильносвязные модули
В этом посте расскажу об одном приёме, который помог мне добиться этого архитектурного успеха
Остальную историю проекта расскажу чуть позже в статье на Хабре
Секрет в использовании проектов вместо папок 😱
Это настоящая архитектурная статическая типизация
Если мы хотим, чтобы компоненты из одной папки были не зависимы от компонентов из другой, то можно заставить компилятор ругать за нарушение этого правила, путём размещения кода в разных проектах
Так гораздо проще, чем писать тесты на ArchUnitNET и потом внедрять их в CI/CD
Post #373
3.18K


- 👍 13
- 🔥 4
- ❤ 3