5 октября 2026
Реклама
Оригинал
🦈 Открытое собеседование на Middle C# | 6 октября, 19:00 МСК Приглашаем на открытое собеседование: Senior C# разработчик проведёт его в прямом эфире. Можно посмотреть, как всё устроено изнутри, и понять, насколько ты готов к такому интервью. Как это будет: 📂 Собеседует Александр Моргунов — Senior C# разработчик, 7+ лет в европейских высоконагруженных сервисах. Отвечает разработчик-доброволец; 📂 Всё как на настоящем…
1 250 просмотров
30 сентября 2026
Оригинал
📝 Логирование со строковой интерполяцией Логирование c интерполяцией строк один из самых распространённых источников лишних аллокаций в .NET-приложениях. Особенность в том, что код выглядит абсолютно нормально и работает правильно — просто дорого. ⏬ Что происходит с интерполяцией: logger.LogInformation($"User {userId} logged in at {time}"); ⏬ Компилятор разворачивает это примерно в:…
2 580 просмотров
28 сентября 2026
Оригинал
👨💻 Не показывайте технические ошибки пользователям Когда приложение падает с необработанным исключением, стандартное поведение многих фреймворков — вывести стек вызовов прямо в ответ. Пользователь видит внутренние пути файлов, названия классов, фрагменты кода. Для злоумышленника это готовая карта уязвимостей. ⏬ Что происходит на практике Допустим, в ASP.NET приложении возникает необработанное исключение. Без явной…
2 710 просмотров
26 сентября 2026
Оригинал
📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека шарписта #garbage_collector
3 220 просмотров
25 сентября 2026
Оригинал
🔐 NuGet: Microsoft меняет сертификат подписи С 23 сентября Microsoft использует новый сертификат для подписи NuGet-пакетов. Если у вас настроен allowlist доверенных сертификатов, сборки могут начать падать с NU3034. Что сделать: dotnet nuget trust author Microsoft \ 9A1B131BEE0605433056A4EA3815478A8E177961A968C6C0027C1093D1FEB630 \ --algorithm SHA256 Старые сертификаты удалять не нужно — они нужны для уже…
3 730 просмотров
24 сентября 2026
Оригинал
🤩 Как поймать зависший .NET-сервис Приложение начинает тормозить, запросы зависают, а в логах — ничего полезного? Можно автоматически снять memory dump в момент проблемы и потом разобрать состояние процесса. ➡️ Идея простая: var task = Task.Run(() => { }); if (!task.Wait(3000)) { // ThreadPool, вероятно, перегружен // → создаём memory dump } ➡️ Dump позволяет посмотреть: — какие потоки зависли; — где стоят Task; —…
3 790 просмотров
23 сентября 2026
Оригинал
⚙️ yield return не бесплатный Итераторы выглядят просто, но работают иначе: IEnumerable<int> GetIds() { foreach (var item in _items) yield return item.Id; } Читается как обычный цикл. Но компилятор превращает такой метод в конечный автомат со вспомогательными классами и состоянием. Именно поэтому итераторы такие выразительные — но и именно поэтому они не бесплатны. ❓ Где это становится проблемой На большинстве путей…
3 410 просмотров
22 сентября 2026
Оригинал
💡 Replace, Regex или StringBuilder? Для замены текста в C# есть несколько инструментов. И выбирать их лучше не по принципу «что быстрее», а по задаче. 🔜 string.Replace() — когда ищем конкретный текст: var result = text.Replace("cat", "dog"); 🔜 Regex.Replace() — когда нужен шаблон: var result = Regex.Replace( text, @"\d+", "#"); Например, заменить все числа на #. 🔜 StringBuilder.Replace() — когда последовательно…
3 030 просмотров
21 сентября 2026
Оригинал
⚙️ Настоящие атомарные операции Если Volatile решает проблему видимости, то Interlocked решает проблему атомарности. Операции реализованы на уровне процессора и выполняются как неделимые единицы — никакой другой поток не может вмешаться в середину ➡️ Самый частый сценарий это счётчик, который обновляют несколько потоков: private int _counter; public void Increment() { Interlocked.Increment(ref _counter); } Без…
3 210 просмотров
20 сентября 2026
Оригинал
💪 Разминка перед трудовыми буднями Что произойдёт? ❤️ — список станет [1, 3] 🔥 — InvalidOperationException 👍 — цикл пропустит 2 Ответ спрячем здесь: 🔥 InvalidOperationException foreach использует List<T>.Enumerator. После Remove() коллекция изменяется, перечислитель обнаруживает изменение при следующем MoveNext() и выбрасывает исключение. 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека шарписта #dotnet_challenge
3 230 просмотров