Size: a a a

Software Design/Architecture/Zen

2021 February 10

MG

Max Grom in Software Design/Architecture/Zen
Ну зачем так сразу? Swagger с головой решает вопрос публичного/выборочного доступа к спецификации лежащей в чужом приватном репозитории. Это полностью покрывает кейс автора без вдавания в подробности есть там у него потребители с контрактами или нет
источник

SP

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

YG

Yury Golikov in Software Design/Architecture/Zen
Сергей Моисеев
Стоит ли определять интерфейсы классов в слое Предметной области, если их использует только слой Приложения?
Ты упоролся. Постарайся смотреть шире и понимать что и зачем ты делаешь, а не тупо следовать советам
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Max Grom
Обсуждать, менять и версионировать можно и не в отдельном репозитории. На вкус и цвет
у меня вообще монореп и все в одном.
источник

YG

Yury Golikov in Software Design/Architecture/Zen
А то потом все в этих бесполезных интерфейсах
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Yury Golikov
А то потом все в этих бесполезных интерфейсах
ну может лучше иметь кучу бесполезных интерфейсов с одним-двумя методом в каждом чем классы на 100 методов как обычно любят делать с теми же репозиториями
источник

SP

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

YG

Yury Golikov in Software Design/Architecture/Zen
Sergey Protko
ну может лучше иметь кучу бесполезных интерфейсов с одним-двумя методом в каждом чем классы на 100 методов как обычно любят делать с теми же репозиториями
Ну я про то, что не нужно отдельно делать еще сам интерфейс. Пусть это просто будет модуль с двумя функциями или класс. А то любят понатыкать интерфейсов на границах слоев, которые вообще ни для чего не нужны - полностью повторяют сигнатуры функций в модулях
источник

YG

Yury Golikov in Software Design/Architecture/Zen
Сергей Моисеев
А если эти интерфейсы поместить в слое Приложения, а реализацию в инфраструктуру?
Приложение настолько простое (по сути пересылает данные из одного источника в другой), что там просто нет бизнес-логики.
Скорее всего тебе вообще лишние слои не нужны.
источник

СМ

Сергей Моисеев... in Software Design/Architecture/Zen
В Сервис приложения инжектится реализация для источника данных и отдельная для получателя.
Комбинации источник/получатель могут быть разными.
источник

YG

Yury Golikov in Software Design/Architecture/Zen
Сергей Моисеев
В Сервис приложения инжектится реализация для источника данных и отдельная для получателя.
Комбинации источник/получатель могут быть разными.
Следи просто за направлением зависимостей, что кто юзает и выделяй новый модуль/класс если видишь, что они по разным причинам меняться. Не обязательно пытаться относить что то к инфраструктуре или бизнесу
источник

YG

Yury Golikov in Software Design/Architecture/Zen
Грань тонкая, главное чтобы названия у модулей были хорошими и было понятно, кто что делает
источник

СМ

Сергей Моисеев... in Software Design/Architecture/Zen
Спасибо, поэкспериментирую
источник

СМ

Сергей Моисеев... in Software Design/Architecture/Zen
Yury Golikov
Ну я про то, что не нужно отдельно делать еще сам интерфейс. Пусть это просто будет модуль с двумя функциями или класс. А то любят понатыкать интерфейсов на границах слоев, которые вообще ни для чего не нужны - полностью повторяют сигнатуры функций в модулях
Это когда сами модули реализуют свои интерфейсы?
источник

YG

Yury Golikov in Software Design/Architecture/Zen
Сергей Моисеев
Это когда сами модули реализуют свои интерфейсы?
Я про то, что не всегда нужны интерфейсы как отдельные сущности. Сигнатуры достаточно.
источник

СМ

Сергей Моисеев... in Software Design/Architecture/Zen
Насколько я понимаю всё, что связывается с файловой системой, сетью, временем или случайными данными лучше разделять на интерфейс и реализацию.
источник

YG

Yury Golikov in Software Design/Architecture/Zen
Сергей Моисеев
Насколько я понимаю всё, что связывается с файловой системой, сетью, временем или случайными данными лучше разделять на интерфейс и реализацию.
Зачем?
источник

СМ

Сергей Моисеев... in Software Design/Architecture/Zen
Yury Golikov
Зачем?
Для тестирования клиентов
источник

YG

Yury Golikov in Software Design/Architecture/Zen
Сергей Моисеев
Для тестирования клиентов
Хм, а что у тебя за ЯП? Мне в джаве классов для этого хватает
источник

СМ

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