Pull to refresh

Comments 8

Чистая архитектура - это не когда много папочек. Чистая архитектура это когда понятно что происходит в коде

Полностью согласен! Суть чистой архитектуры не в жесткой структуре папок, а в том, чтобы код:

  1. Чётко отражал бизнес-процессы компании

  2. Был понятен новым разработчикам без длительного погружения

  3. Легко поддавался изменениям при смене требований

Структура папок - это просто инструмент, который помогает организовать код. Как карта местности. Она очень важна для навигации, но без качественного содержимого внутри теряет всякий смысл. Без понимания бизнес-процессов и здравого смысла даже идеальная структура папок превращается в свалку кода.

DDD же не про папочки, а про философию. То что вы нарисовали в DDD больше на луковую (onion) похоже. Не?

у всех архитектур одна цель - сохранить домен от зависимостей. Onion от DDD отличается наличием доменов и контекстов в пространствах имен. В Onion у тебя слои могут начинаться сразу после /src

DDD же не про папочки, а про философию

"Абсолютно верно, DDD — это в первую очередь философия. Однако её гораздо проще соблюдать, когда она отражается и на структуре папок, делая контексты и границы видимыми на уровне кода." Наличия структуры папочек не мешает тебе следовать философии а только помогает как по мне не сбиться с пути.

+ те же deptrac правила намного проще настроить для зависимостей слоев и пересечения доменов;

Кстати, тут в одном чатике в переписках раскопали. Оказывается и у Эванса, и у Вернона это всё было. А у меня это вообще из головы вылетело, признаться, вообще не помню такого.

Эванс

Вернон

Так что, оказывается, и "про папочки" тоже.

P.S. Ээээ... Хабр поломал тег spoiler о_0 Не работает, не могу заткнуть в него картинки, чтоб не мешались

А как насчёт того, чтобы код проекта организовать в виде модулей. Конкретные модули - проекты, которые в корне имеют composer.json, получается, каждый модуль будет иметь только нужные для него зависимости и не будет опасности импортировать то, что не полагается слою
Многомодульный проект, грубо говоря, которые нормально реализуются в java или в .net, а вот в php, не уверен, что из коробки composer его это умеет, но добиться такого можно

Интересная идея. Это можно настроить. Похоже что-то на моно репозиторий; ИМХО лучше такие модули разносить по разным git репам; Я в таком подходе вижу больше минусов чем плюсов.

Sign up to leave a comment.

Articles