C# 14: задача на Span без аллокаций
Дана строка:
Нужно распарсить её без Split(), Regex и временных string:
Реализуйте:
Требования:
• парсинг через Span<char>
• false при битом формате
• без лишних аллокаций
• Email должен ссылаться на исходный buffer
Пример:
Вопрос:
почему нельзя сохранить ReadOnlySpan<char> в UserLog, а ReadOnlyMemory<char> можно?
Дана строка:
42|john@example.com|127
Нужно распарсить её без Split(), Regex и временных string:
public readonly record struct UserLog(
int Id,
ReadOnlyMemory<char> Email,
int Latency
);
Реализуйте:
static bool TryParse(
ReadOnlyMemory<char> input,
out UserLog result
)
Требования:
• парсинг через Span<char>
• false при битом формате
• без лишних аллокаций
• Email должен ссылаться на исходный buffer
Пример:
var input = "42|john@example.com|127".AsMemory();
if (TryParse(input, out var log))
{
Console.WriteLine(log.Id); // 42
Console.WriteLine(log.Email); // john@example.com
Console.WriteLine(log.Latency); // 127
}
Вопрос:
почему нельзя сохранить ReadOnlySpan<char> в UserLog, а ReadOnlyMemory<char> можно?
🔥 Microsoft выпустила .NET 11 RC1**- первый релиз-кандидат уже с **go-live support, то есть его можно использовать в production.
Из заметного: в C# 15 стабилизируют unions и другие новые возможности языка, ASP.NET Core получил обновления SignalR и OpenAPI, а в Blazor появились экспериментальные AI-компоненты для agentic UI.
В runtime добавили in-process crash reporting для Unix и аппаратные FP16-операции для
Также обновились F#, MAUI, WinForms, NuGet и MSBuild.
.NET 11 RC1 уже поддерживается в Visual Studio 2026 Insiders и VS Code с C# Dev Kit.
https://devblogs.microsoft.com/dotnet/dotnet-11-rc-1/
Из заметного: в C# 15 стабилизируют unions и другие новые возможности языка, ASP.NET Core получил обновления SignalR и OpenAPI, а в Blazor появились экспериментальные AI-компоненты для agentic UI.
В runtime добавили in-process crash reporting для Unix и аппаратные FP16-операции для
Half. В SDK улучшили dotnet test, публикацию контейнеров и file-based programs, включая Native AOT reuse.Также обновились F#, MAUI, WinForms, NuGet и MSBuild.
.NET 11 RC1 уже поддерживается в Visual Studio 2026 Insiders и VS Code с C# Dev Kit.
https://devblogs.microsoft.com/dotnet/dotnet-11-rc-1/
🧩 Задача на C#: почему воркер завис, хотя очередь почти пустая?
Есть канал вместимостью один элемент и единственный обработчик. Если задача завершилась ошибкой, обработчик возвращает её в очередь для повторной попытки.
Вопросы:
1. Что появится в консоли?
2. На какой строке остановится обработка?
3. Почему
4. Если увеличить вместимость канала до двух, проблема исчезнет?
5. Как организовать не больше трёх попыток на задачу, сохранив ограниченную очередь и одного обработчика?
Условие: нельзя использовать
👇 Найдите причину зависания и предложите исправление.
Есть канал вместимостью один элемент и единственный обработчик. Если задача завершилась ошибкой, обработчик возвращает её в очередь для повторной попытки.
using System.Threading.Channels;
var queue = Channel.CreateBounded<int>(
new BoundedChannelOptions(1)
{
FullMode = BoundedChannelFullMode.Wait,
SingleReader = true
});
await queue.Writer.WriteAsync(1);
var worker = Task.Run(async () =>
{
await foreach (var job in queue.Reader.ReadAllAsync())
{
Console.WriteLine($"Start {job}");
if (job == 1)
{
await queue.Writer.WriteAsync(2);
await queue.Writer.WriteAsync(1); // retry
}
Console.WriteLine($"Done {job}");
}
});
await worker;
Вопросы:
1. Что появится в консоли?
2. На какой строке остановится обработка?
3. Почему
await и свободные потоки пула не спасают?4. Если увеличить вместимость канала до двух, проблема исчезнет?
5. Как организовать не больше трёх попыток на задачу, сохранив ограниченную очередь и одного обработчика?
Условие: нельзя использовать
Task.Run для каждой повторной попытки, неограниченную очередь или отбрасывание сообщений.👇 Найдите причину зависания и предложите исправление.
Awesome Jev - большая подборка инструментов для новой модели TypeSafe AI 🤗
Jev - новая быстрая ИИ-модель от TypeSafe AI для принятия структурированных решений внутри программ. Она выбирает из заданных вариантов, оценивает вероятность и уверенность, вместо генерации длинного текста.
В одном репозитории собрали проекты, SDK, исследования и гайды для работы с Jev - моделью класса System One, созданной для быстрых типизированных решений внутри программ.
В подборке уже есть:
- агенты для macOS, Android и браузера;
- семантический поиск по кодовой базе;
- инструменты для проверки кода и ответов LLM;
- плагины для Codex и Claude Code;
- MCP-серверы и SDK для Python, TypeScript, Go, Rust, .NET и других языков;
- демо с Doom, Mario, StarCraft, Civilization II и управлением дроном.
Jev возвращает структурированные решения с вероятностями и оценкой уверенности. Заявленная скорость ответа - 70–500 мс, стоимость - $0,042 за 1 млн входных токенов, выходные токены бесплатны.
🔗 GitHub: https://github.com/AnotiaWang/awesome-jev
Jev - новая быстрая ИИ-модель от TypeSafe AI для принятия структурированных решений внутри программ. Она выбирает из заданных вариантов, оценивает вероятность и уверенность, вместо генерации длинного текста.
В одном репозитории собрали проекты, SDK, исследования и гайды для работы с Jev - моделью класса System One, созданной для быстрых типизированных решений внутри программ.
В подборке уже есть:
- агенты для macOS, Android и браузера;
- семантический поиск по кодовой базе;
- инструменты для проверки кода и ответов LLM;
- плагины для Codex и Claude Code;
- MCP-серверы и SDK для Python, TypeScript, Go, Rust, .NET и других языков;
- демо с Doom, Mario, StarCraft, Civilization II и управлением дроном.
Jev возвращает структурированные решения с вероятностями и оценкой уверенности. Заявленная скорость ответа - 70–500 мс, стоимость - $0,042 за 1 млн входных токенов, выходные токены бесплатны.
🔗 GitHub: https://github.com/AnotiaWang/awesome-jev
🐞 Когда логов недостаточно: дамп памяти из C#
Баг возникает только на проде, а локально всё работает? Дамп позволяет сохранить состояние процесса и позже изучить стеки потоков и значения переменных, не воспроизводя проблему заново.
В .NET Blog разбирают создание дампа текущего процесса из C# на Windows через нативную библиотеку
Полезно для тех, кто разбирается с трудноуловимыми сбоями и хочет видеть больше, чем сообщение об исключении.
https://devblogs.microsoft.com/dotnet/creating-a-memory-dump-in-csharp/
Баг возникает только на проде, а локально всё работает? Дамп позволяет сохранить состояние процесса и позже изучить стеки потоков и значения переменных, не воспроизводя проблему заново.
В .NET Blog разбирают создание дампа текущего процесса из C# на Windows через нативную библиотеку
dbghelp.dll. Это способ встроить сбор диагностических данных прямо в приложение.Полезно для тех, кто разбирается с трудноуловимыми сбоями и хочет видеть больше, чем сообщение об исключении.
https://devblogs.microsoft.com/dotnet/creating-a-memory-dump-in-csharp/
⚡ .NET 11 ускорили почти везде - от JIT и GC до LINQ и networking
Stephen Toub выпустил огромный разбор производительности .NET 11. Главная идея релиза — сотни небольших оптимизаций, которые вместе заметно уменьшают allocations, количество инструкций и стоимость горячих участков кода.
Что улучшили:
- JIT лучше деvirtualизирует вызовы и инлайнит код;
- расширили escape analysis - больше временных объектов остаётся на stack вместо heap;
- убираются лишние boxing и allocations;
- ускорены коллекции, LINQ, sorting и JSON;
- улучшены SIMD, threading и networking;
- многие оптимизации работают без изменения исходного кода приложения.
-
Показательный пример: в одном из тестов обработка nullable-значения ускорилась примерно с 9,6 нс до 2 нс, а временная allocation на 24 байта исчезла полностью. В другом случае
Разбор Microsoft: https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-11/
Stephen Toub выпустил огромный разбор производительности .NET 11. Главная идея релиза — сотни небольших оптимизаций, которые вместе заметно уменьшают allocations, количество инструкций и стоимость горячих участков кода.
Что улучшили:
- JIT лучше деvirtualизирует вызовы и инлайнит код;
- расширили escape analysis - больше временных объектов остаётся на stack вместо heap;
- убираются лишние boxing и allocations;
- ускорены коллекции, LINQ, sorting и JSON;
- улучшены SIMD, threading и networking;
- многие оптимизации работают без изменения исходного кода приложения.
-
Показательный пример: в одном из тестов обработка nullable-значения ускорилась примерно с 9,6 нс до 2 нс, а временная allocation на 24 байта исчезла полностью. В другом случае
foreach по IEnumerable<int> стал примерно в 5 раз быстрее и тоже перестал создавать лишний объект. Разбор Microsoft: https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-11/
🌦️ Красивый пример того, как может выглядеть современное приложение на Aspire
Команда показала полноценную интерактивную карту погоды на Node.js с живыми прогнозами и анимированным радаром.
Под капотом:
⚡ Express + OpenTelemetry API
⚛️ React 19 + Vite
🗺️ Leaflet для карты
🛰️ анимированный погодный радар и актуальные прогнозы
🧩 всё приложение оркестрируется через TypeScript AppHost
Хороший пример Aspire не в виде очередного
https://aspire.dev/reference/samples/
@csharp_ci
Команда показала полноценную интерактивную карту погоды на Node.js с живыми прогнозами и анимированным радаром.
Под капотом:
⚡ Express + OpenTelemetry API
⚛️ React 19 + Vite
🗺️ Leaflet для карты
🛰️ анимированный погодный радар и актуальные прогнозы
🧩 всё приложение оркестрируется через TypeScript AppHost
Хороший пример Aspire не в виде очередного
Hello World, а как основа для полноценного приложения из нескольких сервисов.https://aspire.dev/reference/samples/
@csharp_ci
Автор
ttfx портировал инструмент на C# и получил:- до 140× быстрее Python
- до 2,12× быстрее Rust-версии 0.3.3, на которую ранее ссылался DHH
И всё это на Linux.
Современный C# здесь особенно интересен не только для backend: он отлично подходит для CLI, утилит, bash-подобных скриптов, сервисов и обычных приложений, при этом без заметной жертвы в производительности.
Хороший пример того, насколько далеко .NET ушёл от старого образа «Windows-only и тяжёлый runtime».
https://github.com/devmobasa/ttfx
Please open Telegram to view this post
VIEW IN TELEGRAM