Size: a a a

Software Design/Architecture/Zen

2020 October 18

SP

Sergey Protko in Software Design/Architecture/Zen
Di частный случай инверсии управления (связи в рантайме), в то время как dip про направление зависимостей (компайл тайм).

Там легко запутаться.
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Di - это когда класс говорит, что ему надо, а откуда это возьмётся ему не важно.

Dip - это уже про слои, что верхний реализует интерфейсы нижних...
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Как-то так представлял)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Про модули, не про слои
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Слои это упрощение, не зацикливайся на них
источник

YG

Yury Golikov in Software Design/Architecture/Zen
Sergey Protko
Di частный случай инверсии управления (связи в рантайме), в то время как dip про направление зависимостей (компайл тайм).

Там легко запутаться.
di можно и в компайл тайме) Но не на джаве
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Если грубо, когда модули общаются через порты/адаптеры - это гексагональная архитектура?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Yury Golikov
di можно и в компайл тайме) Но не на джаве
Ты тоже запутался
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Сергей Предводителев
Если грубо, когда модули общаются через порты/адаптеры - это гексагональная архитектура?
Ну вот вопрос что это должно обеспечивать
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Sergey Protko
Ну вот вопрос что это должно обеспечивать
Два модуля внутри одного монолита. У каждого есть API, который вызывают другие модули через адаптеры.

Модуль A содержит свой апи и адаптер для доступа к модулю Б.

Модуль Б содержит свой апи и адаптер для доступа к модулю А.

Вот это вот оно?
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Если упростить :)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
У тебя сча циклическая зависимость получилась, нет?)
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Sergey Protko
У тебя сча циклическая зависимость получилась, нет?)
Да, если модулям нужно друг к другу обращаться... Ну это я просто из головы взял. Наверное если так на практике - то что-то тут не так
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Но логика гексагональной архитектуры - в этом?
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
При этом же каждый модуль внутри вполне может быть многослойным.
источник

AL

Anton Lakotka in Software Design/Architecture/Zen
Сергей Предводителев
Два модуля внутри одного монолита. У каждого есть API, который вызывают другие модули через адаптеры.

Модуль A содержит свой апи и адаптер для доступа к модулю Б.

Модуль Б содержит свой апи и адаптер для доступа к модулю А.

Вот это вот оно?
адаптер должен лежать всегда на стороне адаптирующего.
и должен использовать только интерфейсы у адаптируемного модуля.
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Anton Lakotka
адаптер должен лежать всегда на стороне адаптирующего.
и должен использовать только интерфейсы у адаптируемного модуля.
Модуль А делает запросы к модулю Б.

Адаптер лежит в модуле А. Это адаптер использует интерфейсы модуля Б.

Так же?
источник

AL

Anton Lakotka in Software Design/Architecture/Zen
так.
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Отлично :)

По определениям. Получается гексагональная архитектура - это модули общающиеся с помощью адаптеров/интерфейсов. Так?
источник

AL

Anton Lakotka in Software Design/Architecture/Zen
ага. и оригинальное название такому подходу Ports and Adapters Architecture
источник