TGViewer
Channel Public Channel
Кодовой Барабанщик

Кодовой Барабанщик

@drummer_programmer

БлогеРОК программиста-барабанщика 👨‍💻🥁
Telegram: @GranSteL
YouTube: https://youtube.com/@granstel
ВКВидео: https://vkvideo.ru/@drummer_programmer
Subscribers
110
Photos
305
Videos
103
Links
176

Showing posts older than #367 · Back to latest

Older Posts 17 shown
Post #366 196
Поздравляю с Новым годом! Пусть сбудутся твои даже самые амбициозные мечты, а рядом будут люди, с которыми любые трудности ни по чём🤗
Повеселимся в Новом году! 🎉
  • 🔥 8
  • ❤ 4
  • 🫡 1
Post #365 207
Снова выпендрюсь и не буду рассказывать тебе про свой 2025... Я тебе про него покажу👆
  • 🎉 6
  • ❤ 2
Post #363 200
Понедельник, обычно, не ощущается как что-то праздничное, но торт и свечи радикально меняют впечатление))
Ну и шквал поздравлений, конечно, добавляет вайб 🎉
Если хочешь, можешь бустануть мой канал, мне будет приятно))
#ИИшница
  • ❤ 11
Post #361 192
Post #360 183
Кто-то после этого отписался👆
Как-то неправильно это всё работает))
  • 😁 5
Post #358 162
У нас с Joe Letz много общего: мы оба слушаем тяжёлую музыку, оба барабанщики, у обоих на ютуб-каналах 88 видео 😎
У него 9 тысяч подписчиков, у меня 384. Просто, 384 ❄️
Ты 🫵 можешь приблизить меня к Джо, если тоже подпишешься на мой канал 📱
Даже если у тебя есть подписка, убедись, что получаешь "Все уведомления" (бахни колокольчик, как говорится)
  • 🔥 1
Post #357 184
5 лет в Додо🦤
Наверняка уже упоминал, что я очень сентиментальный и люблю всякие прикольные числа. 30 ноября я прошёл пятилетний рубеж работы в компании, и получил памятный подарок 🎁
При переходе сюда с прошлой работы у меня осталось открытое ожидание: подарок на пятилетие в виде наручных часов. Помимо прикольных чисел, я люблю наручные часы, и очень ждал этого события на прошлой работе. Я проработал там 6 лет, но подарок так и не получил, потому что в тот момент обстоятельства были против этого 😔
Теперь это ожидание закрыто за обе компании, и надо придумать себе какое-нибудь новое😅
  • 🔥 10
  • ❤ 5
  • 👍 4
Post #355 150
Заценивай новогоднюю аватарку ☃️
#ИИшница
  • 🔥 6
  • 👍 4
  • ❤ 1
  • 😁 1
Post #354
Channel photo updated
Post #350 132
Кодовой Барабанщик Дни становятся короче и душа требует #движ? Save the date: 21.11.2025 📅
Это мы перед концертом. А видос концерта наверно скоро будет
  • 😁 3
  • ❤ 2
  • 🔥 2
Post #348 128

Forwarded from C# Short Posts 🔞

❤️ Очень странные дела: баги в .NET 10

В пятницу классно поразгоняли с ребятами на наших внутренних техпосиделках про переезд на .NET 10.

Хедлайнером у нас был ослепительный @granstel, который перевёл свой сервис на .NET 10 первым (как минимум в Додо а может и в мире, кто знает). Сервис некритичный, но полезный — он является бэком для этой охуенной интерактивной карты. Идеальная площадка для тестов.

Так вот что удалось выяснить в процессе переезда/обсуждений:

1) В целом всё работает
2) Но есть один довольно критичный ишуй

В версии 10.0.100 внезапно сломан хендлинг вложенных try/catch/finally.
Как показано на пояснительном дикпике выше 🍆
Если внутренний finally бросает исключение, то:

внутренний catch не вызывается,

внутренний finally не доходит до конца,

внешний finally не вызывается вообще,

исключение вылетает наружу без обработки.

Довольно жёсткая штука — потому что using и await using разворачиваются компилятором именно во вложенные try/finally. А значит, при dispose может соскочить вся цепочка освобождения ресурсов.

То есть вложенный try/catch в принципе не перехватывает исключение из вложенного finally. А это уже влияет и на using, и на await using.

То есть вот такой код может быть потенциально опасным, если disposableTwo в своем диспоузе кинет исключение


using System;
using System.Threading.Tasks;

await using var disOne = new FirstDisposable("ONE");

await using var disTwo = new SecondDisposable("TWO");

Console.WriteLine("Before throw");
throw new Exception("FUCK");


sealed class FirstDisposable : IAsyncDisposable
{
private readonly string _name;
public FirstDisposable(string name) => _name = name;

public async ValueTask DisposeAsync()
{
Console.WriteLine($"DisposeAsync({_name}) START");
await Task.Delay(10);
Console.WriteLine($"DisposeAsync({_name}) END");

// На .NET 10.0.100 этот DisposeAsync вообще НЕ вызовется,
// потому что исключение из DisposeAsync(TWO) оборвёт цепочку.
Console.WriteLine($"NOTE: DisposeAsync({_name}) WAS CALLED — но это произойдёт только на .NET 8");
}
}

sealed class SecondDisposable : IAsyncDisposable
{
private readonly string _name;
public SecondDisposable(string name) => _name = name;

public ValueTask DisposeAsync()
{
Console.WriteLine($"DisposeAsync({_name}) THROWS — сейчас всё сломается");
throw new Exception($"DisposeAsync boom: {_name}");
}
}


Это утечки коннектов, файлов, сокетов, транзакций — что угодно.
Учитывая, что многие библиотеки используют IAsyncDisposable — в общем может стрельнут.

Все уже пофикшено судя по всему, наверняка заедет в следующую версию.

🚧 Вообще не всем дано переехать сразу.

Например, я попытался перевезти свою Базу знаний на новые рельсы, но столкнулся с тем, что нужный пакет Pomelo.EntityFrameworkCore.MySql пока отсутствует для .NET 10.

Так что переехать сходу смогут не все.
Может, даже и хорошо — с таким багом можно и потерпеть 🎃
  • ❤ 1
  • 🤯 1
Post #347 92
👇
  • 🔥 1
Post #346 99
Ставь ➕ если не понимаешь, что это за мужик с кейсом ☝️
  • ❤ 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →