Каждая лишняя строка кода — это деньги.
Больше кода → больше багов → больше инцидентов → больше часов инженеров.
Pattern matching и switch expressions помогают уменьшить кодовую базу, ускорить ревью и снизить стоимость поддержки.Pattern Matching: меньше проверок, меньше каста
Используем property pattern: проверка + извлечение объекта в одну строку.
if (customer is { IsActive: true, Orders.Count: > 0 })
{
Process(customer);
}Компактные решения вместо длинных switch
Переписываем switch на expression switch:
var message = status switch
{
Status.Active => "Active",
Status.Inactive => "Inactive",
Status.Suspended => "Contact support",
_ => "Unknown"
};
Композиция правил: читаем как таблицу
Современные паттерны позволяют описывать правила декларативно.
Пример проверки транзакции:
var decision = (txn.Amount, user.Role, txn.Country) switch
{
(> 10_000, "Guest", not "US") => "Flag",
(<= 10_000, "Admin", _) => "Approve",
_ => "Review"
};
Это не синтаксический сахар, а инструмент управления сложностью.
🐸Библиотека шарписта
#буст
