есть реализация
Есть grpc, http и mq транспорты до этой логики
Где должны быть объявлены сущности и интерфейс?
Интерфейс здесь зачем? Каждый транспорт может напрямую использовать любые сущности и любые сервисы бизнес логики. Траспорт зависит от бизнес-логики (бизнес-логика ничего не знает о транспорте). Если хочется транспорт отдельно тестировать, без бизнес логики, тогда вы просто на уровне транспорта создаете интерфейс. Если нет необходимости тестить транспорт в изоляции, не создаете
Чтобы не зависеть от реализации Очевидно же Все интерфейсы для этого нужны
Этот интерфейс предоставляет сервис И этот сервис может использоваться через разные API
Вы же сказали "транспорт до этой логики". Если логика меняется, это будет транспорт до другой логики, нет?
Интерфейс - это «я предоставляю такой функционал»
Ну так логика поменяется для всех транспортов, а не для одного
Так тем более транспорты тогда должны зависеть от реализации логики а не быть абстрагированы :)
Зачем? Они должны зависеть от функционала сервиса, который определён через его интерфейс, а не от конкретной его реализации
"Интерфейс" - достаточно абстрактное определение, здесь вы путаете понятие "интефрейс" с ключевым словом "interface".
в го это описание “я хочу, чтобы ты умел вот это”
Эм Если A реализует B, то A не должен уметь B, а умеет. В go утиная типизация
Обсуждают сегодня