Size: a a a

Software Design/Architecture/Zen

2021 May 11

МФ

Максим Федоров... in Software Design/Architecture/Zen
я не работал в 500, максимум 80, но общался с большинством исключительно на кухне или корпоративе
источник

R

Roman in Software Design/Architecture/Zen
Что значит "зарегистрировать в DI"? Мы же не про DI контейнер говорим, а про DI как реализацию Dependency Inversion
источник

AK

Aleh Kashnikau in Software Design/Architecture/Zen
DI как dependency inversion имеет аббревиатуру DIP, а DI это обычно именно dependency injection
источник

R

Roman in Software Design/Architecture/Zen
DI — это DI. А автоматический резолвинг зависимостей — это контейнер
источник

AK

Aleh Kashnikau in Software Design/Architecture/Zen
это исключительно чтобы путаницы меньше было
источник

SP

Sergey Protko in Software Design/Architecture/Zen
DI - это реализация IoC. DIP это про изменение направлений зависимостей через интерфейсики
источник

AK

Aleh Kashnikau in Software Design/Architecture/Zen
а, ну так сразу все понятно “di - это di” лучше не придумаешь)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
"отделять сервисы о трепозиториев" - это абстрактные сказки про "счастье в слоях". Потом смотришь на эти "репозитории" с 50+ методов и грустишь
источник

R

Roman in Software Design/Architecture/Zen
Плохо можно написать везде. 50+ методов в репозитории, это очевидное пренебрежение ISP
источник

R

Roman in Software Design/Architecture/Zen
Разница только в том, что если не отделять репо от сервиса, то эти 50+ методов добавляются к сервису
источник

R

Roman in Software Design/Architecture/Zen
При условии, что это пишет тот же программист
источник

AK

Aleh Kashnikau in Software Design/Architecture/Zen
под “отделять” подразумевается в аннотации типа(тайп хинте) указывать интерфейс, а не класс-реализацию?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну вот тебе пример. Есть у тебя задача - надо трекать текущее местоположение пользователя (например курьера трекать показывать на карте). Зачем тут репозиторий?
источник

R

Roman in Software Design/Architecture/Zen
И самый упоротый случай — логика сохранения размазывается по бизнес-логики
источник

R

Roman in Software Design/Architecture/Zen
Не, это разделять вещи на две сущности. Интерфейс можно выделить как сразу, так и позже через Refactor -> Extract Interface
источник

R

Roman in Software Design/Architecture/Zen
Если сервису не нужна персистентность — репозторий не нужен, да. Это вырожденный пример
источник

SP

Sergey Protko in Software Design/Architecture/Zen
в смысле не нужна? надо хранить историю перемещений, надо доставать из стораджа.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ты будешь делать "репозиторий"?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
а что тогда будет "в сервисе"?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
другой пример. У тебя есть задача делать профиль юзера. Тупой круд. Зачем нам там сущности или репозитории?
источник