Size: a a a

🎄.NET Talks: Evergreen🎄

2020 July 23

Dv

Dr. Friedrich von Ne... in 🎄.NET Talks: Evergreen🎄
Т-34 85
C++?
Откуда такой интересный вывод?
источник

Т8

Т-34 85 in 🎄.NET Talks: Evergreen🎄
Dr. Friedrich von Never
Откуда такой интересный вывод?
У меня больше нет идей, зачем вызывать Dispose
источник

Dv

Dr. Friedrich von Ne... in 🎄.NET Talks: Evergreen🎄
Joseph J
Привет всем!
У меня есть builder, использующий класс, реализующий IDisposable.
Нужно ли в Build() вызывать Dispose?
Нет, не нужно. Этим ты только создашь большое пространство для рукожопого и неправильно работающего кода.
источник

Dv

Dr. Friedrich von Ne... in 🎄.NET Talks: Evergreen🎄
Представь, вот я пользователь твоего билдера
источник

Dv

Dr. Friedrich von Ne... in 🎄.NET Talks: Evergreen🎄
И я пишу
var foo = new DisposableBuilder().SetVariant("foo").Build();
источник

JJ

Joseph J in 🎄.NET Talks: Evergreen🎄
Т-34 85
C++?
Нет, c#
источник

JJ

Joseph J in 🎄.NET Talks: Evergreen🎄
Dr. Friedrich von Never
Нет, не нужно. Этим ты только создашь большое пространство для рукожопого и неправильно работающего кода.
Вопрос, наверное, другой.
Нормально ли вообще builder использовать с using statement?
Потому что мне это сильно мозолит глаза, а почему не пойму.
источник

Dv

Dr. Friedrich von Ne... in 🎄.NET Talks: Evergreen🎄
Я знаю, что Build сам позовёт Dispose, и поэтому не вызываю его явно
источник

Dv

Dr. Friedrich von Ne... in 🎄.NET Talks: Evergreen🎄
Но!
источник

Dv

Dr. Friedrich von Ne... in 🎄.NET Talks: Evergreen🎄
А что, если SetVariant() упадёт?
источник

AM

Anatoly Manzhugin in 🎄.NET Talks: Evergreen🎄
Т-34 85
У меня больше нет идей, зачем вызывать Dispose
потому что могу
источник

Dv

Dr. Friedrich von Ne... in 🎄.NET Talks: Evergreen🎄
Тогда диспоза не будет, и я просто написал плохой код с утечкой.
источник

JJ

Joseph J in 🎄.NET Talks: Evergreen🎄
Dr. Friedrich von Never
Я знаю, что Build сам позовёт Dispose, и поэтому не вызываю его явно
Не-не, я согласен, что написал бред, просто других альтернатив этому не вижу
источник

Dv

Dr. Friedrich von Ne... in 🎄.NET Talks: Evergreen🎄
Получается, я должен писать
using var builder = new DisposableBuilder();
var foo = builder.SetVariant("a").Build();


Этот код без утечки, но ему становится абсолютно до лампочки, есть ли у тебя Dispose внутри Build, или нет.
источник

Dv

Dr. Friedrich von Ne... in 🎄.NET Talks: Evergreen🎄
Получается, если ты сам делаешь Dispose внутри Build, то
1. Ты меня как бы настраиваешь на написание первого варианта кода, с утечкой
2. Ты ломаешь некоторые паттерны использования билдера (когда я дёргаю Build несколько раз, типа как у фабрики)
источник

Dv

Dr. Friedrich von Ne... in 🎄.NET Talks: Evergreen🎄
3. Ты не даёшь никаких преимуществ правильно написанному коду без утечки
источник

Dv

Dr. Friedrich von Ne... in 🎄.NET Talks: Evergreen🎄
То есть ты решил проблем: ноль, создал проблем: две.
источник

Dv

Dr. Friedrich von Ne... in 🎄.NET Talks: Evergreen🎄
Ну, это моя интерпретация такая. А ты предложи свою.
источник

MN

Mr. N in 🎄.NET Talks: Evergreen🎄
Arthur Irgashev
классека сука
жесть😊
источник

EE

Evgenii Evgenivich in 🎄.NET Talks: Evergreen🎄
Доброе утро. Посоветуйте билдеры бизнес процессов и дата моделлеры
источник