🔥 Лучшая фича C# за последние годы? Pattern Matching
Зачем он нужен:
Pattern matching позволяет элегантно проверять объект на определённые свойства:
- ✅ Является
- ✅ Является объектом конкретного типа
- ✅ Имеет свойство с определённым значением
В связке со switch-выражениями и record-типами это превращает код в лаконичный и выразительный.
📌 Пример:
Зачем он нужен:
Pattern matching позволяет элегантно проверять объект на определённые свойства:
- ✅ Является
null
или не null
- ✅ Является объектом конкретного типа
- ✅ Имеет свойство с определённым значением
В связке со switch-выражениями и record-типами это превращает код в лаконичный и выразительный.
📌 Пример:
static string PrintShape(object shape) =>
shape switch
{
null => "Нет объекта",
Circle c => $"Круг с радиусом {c.Radius}",
Rectangle { Width: > 0, Height: > 0 } r => $"Прямоугольник {r.Width}x{r.Height}",
_ => "Неизвестная фигура"
};
В .NET 8 и выше есть библиотеки от Microsoft и обновлённый API Polly — популярной библиотеки для повышения надёжности и обработки сбоев.
С Polly можно легко настроить стратегии:
- повтор запросов (Retry)
- резервные сценарии (Fallback)
- ограничение времени (Timeout)
- контроль частоты (Rate-limiting)
- автоматическое отключение при сбоях (Circuit breaker)
Эти механизмы помогают облачным приложениям оставаться живыми даже в условиях ошибок и перегрузок.
Подробный разбор тут
Please open Telegram to view this post
VIEW IN TELEGRAM
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
Что мне нравится в **.NET Aspire** 👇
👉 С ним невероятно просто запускать полезные сервисы. Всего в несколько строк кода можно поднять:
- базу данных
- Redis
- LLM
- reverse proxy
- message broker
Можно даже масштабировать сервисы, чтобы проверить сценарии с конкурентной нагрузкой.
Если вы ещё не пробовали построить своё первое Aspire-приложение — у меня есть подробный гайд о том, как я мигрировал свой .NET проект в Aspire.
🟠 Читать здесь: https://milanjovanovic.tech/blog/dotnet-aspire-a-game-changer-for-cloud-native-development
👉 С ним невероятно просто запускать полезные сервисы. Всего в несколько строк кода можно поднять:
- базу данных
- Redis
- LLM
- reverse proxy
- message broker
Можно даже масштабировать сервисы, чтобы проверить сценарии с конкурентной нагрузкой.
Если вы ещё не пробовали построить своё первое Aspire-приложение — у меня есть подробный гайд о том, как я мигрировал свой .NET проект в Aspire.
Please open Telegram to view this post
VIEW IN TELEGRAM