Size: a a a

2021 August 28

AS

Alexey Shcherbak in ctodailychat
а какие варианты без интерфейсов и DI  в .NET есть ? это же все обмазывается потому что юнит тестирование только так и умеет. Или что-то новое появилось ?
источник

ИМ

Илья Макеев... in ctodailychat
Ну я бы всеж отличал магию от устоявшегося паттерна
источник

A

Alex in ctodailychat
ну да, DI это просто способ не городить статичесикй код, типа GetCurrentHttpContext() потому что это плохо тестируется, плохо дружит с GC и тп
источник

A

Alex in ctodailychat
ну да, именно для тестов.

раньше для тестов приходилось мокать аж целый HTTP-стек, а теперь вот DI
источник

VS

Vladimir Shadchnev in ctodailychat
У меня по .net core, совсем другие ощущения ;) Надо новую функциональность, качаешь нугет пакет, добавляешь пару строчек в startup, и наслаждаешься ... отладкой ;)
источник

СА

Сергей Аксёнов... in ctodailychat
В DI на самом деле нет никакой магии. Контейнер - это просто записная книжка, в которую программист заносит все свои компоненты. А потом когда ему нужно создать компонент, которому на входе нужны пять других - он вместо того, чтобы искать их по коду руками достаёт их адреса из книжки.
источник

A

Alex in ctodailychat
я человек избалованный красивыми тулзами типа VS и ДжетБрейнс. Люблю кликнуть на метод и жмакнуть "find all references"

А ИХ НЕТУ. Код никто не вызывает! Можно грохать!

Ах да, извините, его вызывает IoC движок и у него должна быть именно такая сигнатура и никакая иначе....
источник

VS

Vladimir Shadchnev in ctodailychat
Просто теперь приходится делать find usages не по конструктору, а по типу, и всё )
источник

ИМ

Илья Макеев... in ctodailychat
Я вообще ща подумал что практически не использовал бы интерфейсы если бы не было диая
источник

A

Alex in ctodailychat
так оно и есть
источник

ИМ

Илья Макеев... in ctodailychat
И жизнь была бы сера и убога
источник

VS

Vladimir Shadchnev in ctodailychat
Даже какой-нибудь ILogger? Или это как раз про "практически"?
источник

ИМ

Илья Макеев... in ctodailychat
Так зачем мне какой-то логгер если я всеравно New сделаю? 🙂
источник

СА

Сергей Аксёнов... in ctodailychat
Ну как нету? Если я пишу class MyComponent(val repo: MyRepository) {}, то когда мне надо найти все использования MyRepository - MyComponent среди них будет.
источник

СА

Сергей Аксёнов... in ctodailychat
По parent даже скорее.
источник

VS

Vladimir Shadchnev in ctodailychat
Ну, его же конфигурировать надо, как правило централизованно, а не для конкретного класса. Ну и зависимости на логер тащить, не всегда хочется
источник

A

Alex in ctodailychat
ну хм... у меня ровно наоборот) Вопрос на стековерфлоу "как прочитать настройку из конфиг-файла" - и обсуждение на 38 экранов (я посчитал). 38 карл!!!!! И везде DI, интерфейсы, таскание за собой сервисов....

а раньше это был один вызов одного метода "Confirguration.GetSetting(x)"

все, я заканчиваю, а то начинается холивар и меня Макс забанит
источник

СА

Сергей Аксёнов... in ctodailychat
Да и вообще классы бы не использовал. Зачем, если есть инклюды.
источник

ИМ

Илья Макеев... in ctodailychat
А-А-А-А
источник

ΠΣ

Παύλος ☃️ Σ... in ctodailychat
Так тебя же JB спросит, искать ли референсы на интерфейс
источник