Romɑn
Все остальные до секунды работали
Igor
Ayrat
иногда ютуб выдаёт просто охуенные рандомные рекомендации.
Нашёл канал басиста-наркомана
https://www.youtube.com/watch?v=U4J_yaN2cpk
Ayrat
Он на всю башку отличный
Ayrat
и шуточки за триста везде
Ayrat
всё как я люблю
Anatoly
я чот не рискнул его смотреть в моих рекомендациях
Anatoly
я щас завис на докторе дью и его основном канале
Hog
Hog
а мне давеча вот такоэ - https://www.youtube.com/user/leolego
Romɑn
https://devblogs.microsoft.com/dotnet/try-out-nullable-reference-types/
Как же сложно
Hog
Ayrat
Ну реально сложно
Ayrat
я дропнул на середине
Hog
Терпеливые. Я в самом начале про опт ин/аут. Ибануца.
Hog
Думаю, что пока в живой природе не встретится, особо смысла нет играться.
Hog
@neftedollar помнишь, я тебе на Insomnium альбом на ютюбе ссыль давал? У них новый 4-го октября выходит!
x
x
x
Вот тут у меня поехала крыша
x
Не говоря о том, что #nullable enable ЗАПРЕЩАЕТ нулы
Ilya
Если считать, что nullable -- это просто название фичи, не вдаваясь в смысл названия, то норм.
x
Ещё отлично, что имплементя нотнулл генерик интерфейс нужно повторять нотнулл в имплементации
x
Больше бойлерплейта!
Ilya
Что поделать. Нельзя просто так из языка выпилить null 🤷♂
x
Можно, если положить на обратную совместимость
x
В скалке вроде не стесняются так делать
Ilya
И Айрат же рассказывал, что переезд проекта на новую версию — явление редкое, вроде бы.
Bonart
Anatoly
Bonart
Bonart
"Because of this issue between the concrete representations of nullable reference types and nullable value types, any use of T? must also require you to constrain the T to be either class or struct."
Вот где истинный йобаный стыд
Bonart
Наколеночный NotNull<T> такой фигней не страдает
Bonart
DisallowNull - это вообще пездня
Vasily
Ну там много костылей, как я вижу. Особенно изящен условный null по bool
Vasily
Т.е. тупо запретить наллы и завезти условный option не хватило яиц
Bonart
Там весь фундамент на костылях выстроен
Bonart
Кто мешал вхреначить в рантайм структуры-обертки?
Vasily
Эххх, сколько гребцов зазря пострадает
Vasily
Сколько будет сломано копий на код ревью
Bonart
А тут Костыль Байтойоб Едишн Нах
Vasily
И сколько детей будут плакать, пока папа ночью пытается отладиться
Bonart
Я полагаю, флаг nullable просто не будут включать
Bonart
Дети не ночью плакать будут, а днем трехэтажные папины выражения повторять
Vasily
Ну для легаси скорее всего да
Bonart
Думаю и для новья тоже. Очень уж токсичная фича выходит
Vasily
Но ждём кучу статей, которые объяснят нам, что это хорошо
Bonart
У меня реально с оберткой NotNull<T> проблем меньше
Bonart
Она по крайней мере честный тип (а не атрибут), при этом оптимизируется в ноль. Не хватало только сахарку для Option
Bonart
А тут и костылей накидали и сахару не доложили!
Bonart
Так и придется универсальные генерики делать через Option<T, TOption> без сахара
Bonart
[NotNullWhen(false)] - обожемой нах
Bonart
Что мешало сделать как с туплами?
Vladimir
Хотели с минимальной болью для пользователей уже существующих апишек добавить null хинтов
Bonart
Vladislav
У них не хватило яиц завернуть фичу
Vladislav
Когда увидели что будет
Vladislav
Хз
Bonart
Т.е. я не против атрибутов для обратной совместимости легаси.
Bonart
Это самая страшная фича шарпа за всю историю
Bonart
Но там атрибутами хуярят поверх нового кода
Bonart
Притом что у дотнета система типов позволяет все что нужно завернуть в структуры и не париться
Vladimir
ну тут фишка что даже самый новейший код у тебя все равно зависит от легаси либ
Bonart
Это не для легаси пример!
Vladimir
ну вот, тут легаси тип string
Vladimir
поэтому вокруг него костыли
Bonart
Ни хрена - тут новый модный тип "string?"
Vladimir
string? это как раз старый) а новый без вопроса
Vasily
Vladimir
по модному надо писать string везде и будет как они и планируют
Vladimir
нет нулей на входе и выходе
Vladimir
и тогда атрибуты не нужны
Bonart
нет нулей на входе и выходе
Хрена с два. В рантайме это припудривается атрибутной магией, а значит для внешнего старого кода НИКАКОЙ разницы нет и можно напихать полную панамку нуллов
Vladimir
да, ну так мы же говорим про Новый код)
Vladimir
чтобы и внешний новый и везде новый
Bonart
Внешний везде новый НЕ будет
Vladimir
может, если ты не пишешь либу
Vladimir
а только апп