TGViewer
StepOne | Степан Минин StepOne | Степан Минин @steponeit · 3.27K subscribers
Post #373 3.18K
Контроль архитектуры компилятором вместо тестов

Наконец-то окончательно завершён многолетний рефакторинг моего интерпретатора - архитектура настолько проработана, хороша и не противоречива, насколько это возможно и задумывалось изначально

ООП, DDD, Clean Architecture, изолированные поддомены, независимые контракты, слабосвязанные компоненты и сильносвязные модули

В этом посте расскажу об одном приёме, который помог мне добиться этого архитектурного успеха

Остальную историю проекта расскажу чуть позже в статье на Хабре

Секрет в использовании проектов вместо папок 😱

Это настоящая архитектурная статическая типизация

Если мы хотим, чтобы компоненты из одной папки были не зависимы от компонентов из другой, то можно заставить компилятор ругать за нарушение этого правила, путём размещения кода в разных проектах

Так гораздо проще, чем писать тесты на ArchUnitNET и потом внедрять их в CI/CD
  • 👍 13
  • 🔥 4
  • ❤ 3
More from @steponeit
  1. Sep 28, 2026Пошутил про джавистов в прямом эфире 😅 Шарпизм победил окончательно и бесповоротно!
  2. Sep 27, 2026Post #860
  3. Sep 25, 2026Рассказал как я добавил в HydraScript объекты и методы без классов и сделал протоколы. Стр…
  4. Sep 22, 2026Post #858
  5. Sep 21, 2026Post #857
  6. Sep 15, 2026Напомню, что у меня есть WireMock.Grpc.Protobuf — расширение для тех, кто пишет компонентн…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →