SOFTWARE ENGINEERING / C# & .NET

Код должен быть понятным.
А решения — простыми.

Небольшая коллекция заметок о современном C#, асинхронности, архитектуре и инструментах платформы .NET.

Исследовать темы ↗
.NETC#ASP.NET CoreLINQ
01 / ОБЗОР

О чём стоит помнить

Небольшие практики, которые делают код надёжнее и удобнее в сопровождении.

01
↝

Асинхронность

Используйте async/await для операций ввода-вывода. Передавайте CancellationToken и не блокируйте поток без необходимости.

ASYNC / AWAIT
02
◇

Моделирование данных

Records и неизменяемые структуры помогают выражать смысл данных и уменьшать число побочных эффектов.

RECORDS
03
⌁

Работа с коллекциями

LINQ позволяет писать выразительные запросы. Следите за отложенным выполнением и лишними перечислениями.

LINQ
04
⊞

Веб-приложения

ASP.NET Core предоставляет маршрутизацию, middleware, внедрение зависимостей и инструменты наблюдаемости.

ASP.NET CORE
02 / ФРАГМЕНТ КОДА

Просто и предсказуемо

Асинхронный HTTP-запрос с поддержкой отмены и проверкой результата.

Example.csC#
public static async Task<string> GetContentAsync(
    HttpClient client,
    string url,
    CancellationToken cancellationToken)
{
    using var response = await client.GetAsync(
        url, cancellationToken);

    response.EnsureSuccessStatusCode();

    return await response.Content.ReadAsStringAsync(
        cancellationToken);
}
03 / ПРИНЦИПЫ

Меньше сложности. Больше смысла.

01 — Читаемость

Хорошие имена и небольшие функции полезнее хитроумных сокращений.

02 — Надёжность

Явные контракты, обработка ошибок и тесты помогают избежать сюрпризов.

03 — Измеримость

Оптимизируйте узкие места по результатам профилирования, а не догадок.