Содержание курса
Модуль 1. Внутренности .NET и CLR
8 уроков
1.
Что такое CLR: устройство, JIT, AOT, Tiered Compilation
↗
2.
IL и JIT: путь от метода к нативному коду
↗
3.
Сборки, метаданные и формат PE
↗
4.
AssemblyLoadContext: загрузка, выгрузка и плагины
↗
5.
Garbage Collector: поколения, LOH, паузы
↗
6.
Исключения: устройство, стоимость, паттерны
↗
7.
Value types, reference types и boxing
↗
8.
Итоговая практика: мини runtime-инспектор
↗
Модуль 2. Память: Span, Memory, ArrayPool, ref struct
8 уроков
1.
Span и ReadOnlySpan: безопасный взгляд в память
↗
2.
Memory, IMemoryOwner и MemoryPool
↗
3.
ArrayPool: переиспользование массивов
↗
4.
ref struct, ref-параметры и ref-возвраты
↗
5.
stackalloc, unsafe и fixed
↗
6.
Строки, StringBuilder, string.Create
↗
7.
IBufferWriter и System.IO.Pipelines
↗
8.
Итоговая практика: быстрый CSV-парсер
↗
Модуль 3. Асинхронность глубоко: async, Task, ValueTask
8 уроков
1.
Как устроено async/await: state machine изнутри
↗
2.
Task vs ValueTask: когда какой использовать
↗
3.
SynchronizationContext и ConfigureAwait
↗
4.
CancellationToken и правильная отмена операций
↗
5.
IAsyncEnumerable: асинхронные потоки
↗
6.
Кастомные awaitable: пишем свой await
↗
7.
Композиция задач: WhenAll, WhenAny, Task.Run
↗
8.
Итоговая практика: rate-limited клиент к внешнему API
↗
Модуль 4. Многопоточность: TPL, lock-free, Channel
8 уроков
1.
Threads, ThreadPool и TaskScheduler
↗
2.
lock, Monitor и борьба с deadlock
↗
3.
Interlocked, volatile и memory model
↗
4.
ReaderWriterLockSlim, SemaphoreSlim, AsyncLocal
↗
5.
Channel: producer-consumer на стероидах
↗
6.
Parallel.ForEachAsync, PLINQ, Concurrent коллекции
↗
7.
Продвинутая синхронизация: Lazy, Barrier, CountdownEvent
↗
8.
Итоговая практика: многопоточный crawler
↗
Модуль 5. Reflection, Expression Trees, Source Generators
8 уроков
1.
Reflection: типы, методы, атрибуты, кэширование
↗
2.
Expression Trees: код как данные
↗
3.
Атрибуты: декларативные метаданные
↗
4.
Source Generators: генерация кода в compile-time
↗
5.
Roslyn API: SyntaxTree, SemanticModel, Symbols
↗
6.
Пишем собственный Source Generator
↗
7.
dynamic, DLR и ExpandoObject
↗
8.
Итоговая практика: мини-маппер DTO в трёх вариантах
↗
Модуль 6. Производительность и профилирование
18 уроков
1.
Методология измерений: правильный подход
↗
2.
BenchmarkDotNet: стандарт замеров в .NET
↗
3.
dotnet-counters, dotnet-trace, dotnet-dump
↗
4.
6.3 dotnet-counters и мониторинг рантайма
↗
5.
6.3 dotnet-counters и мониторинг рантайма
↗
6.
6.3 dotnet-counters и мониторинг рантайма
↗
7.
JIT-оптимизации и подсказки JIT
↗
8.
JIT-оптимизации и подсказки JIT
↗
9.
JIT-оптимизации и подсказки JIT
↗
10.
6.4 dotnet-trace и профилирование CPU
↗
11.
Снижение аллокаций: практические приёмы
↗
12.
6.5 Профилирование памяти и анализ дампов
↗
13.
6.6 JIT оптимизации: inlining, devirtualization, PGO
↗
14.
Диагностика памяти: утечки, фрагментация, LOH
↗
15.
6.7 Паттерны оптимизации и анти-паттерны
↗
16.
CPU-профилирование: flame graph и SpeedScope
↗
17.
6.8 Итоговая практика: оптимизация реального сервиса
↗
18.
Итоговая практика: оптимизация парсера логов
↗
Модуль 7. Архитектура: Clean Architecture, DDD, CQRS
8 уроков
1.
Эволюция архитектур: layered, hexagonal, Clean Architecture
↗
2.
DDD: entities, value objects, aggregates
↗
3.
Repository и Unit of Work: когда нужны и когда нет
↗
4.
CQRS: разделение чтения и записи
↗
5.
Event Sourcing: состояние как лента событий
↗
6.
Outbox pattern: надёжная публикация событий
↗
7.
Bounded Contexts и Anti-corruption Layer
↗
8.
Итоговая практика: проектирование mini-CRM
↗
Архитектура: Clean, DDD, CQRS, Event Sourcing
8 уроков
1.
7.1 SOLID и Clean Architecture на практике
↗
2.
7.2 Domain-Driven Design: тактические паттерны
↗
3.
7.3 Bounded Contexts и Context Map
↗
4.
7.4 CQRS: разделение команд и запросов
↗
5.
7.5 Event Sourcing: история как источник истины
↗
6.
7.6 MediatR и Pipeline Behaviors
↗
7.
7.7 Vertical Slice Architecture
↗
8.
7.8 Итоговая практика: сервис книжного магазина
↗
Микросервисы: gRPC, MassTransit, Saga, Outbox
8 уроков
1.
8.1 Микросервисы: когда, зачем и какого размера
↗
2.
8.2 gRPC: контракт, стримы, версионирование
↗
3.
8.3 Message brokers и MassTransit
↗
4.
8.4 Outbox Pattern: атомарность БД и брокера
↗
5.
8.5 Saga Pattern: оркестрация распределённых процессов
↗
6.
8.6 Resilience: timeout, retry, circuit breaker
↗
7.
8.7 Observability: логи, метрики, distributed tracing
↗
8.
8.8 Итоговая практика: маркетплейс из трёх сервисов
↗
Модуль 8. Микросервисы и распределённые системы
8 уроков
1.
Когда нужны микросервисы и когда вредят
↗
2.
gRPC в .NET: типизированный RPC
↗
3.
MassTransit и RabbitMQ: pub-sub
↗
4.
Saga: распределённые транзакции с компенсациями
↗
5.
Distributed tracing и OpenTelemetry
↗
6.
Resilience: Polly, retry, circuit breaker
↗
7.
API Gateway и BFF: фасад для внешнего мира
↗
8.
Итоговая практика: распределённая система оформления заказа
↗
Модуль 9. Безопасность .NET-приложений
7 уроков
1.
OWASP Top 10 в контексте .NET
↗
2.
Аутентификация: JWT и cookies
↗
3.
Авторизация: роли, политики, requirements
↗
4.
OAuth 2.0 и OpenID Connect: SSO без своей crypto
↗
5.
ASP.NET Data Protection и криптография
↗
6.
XSS, CSRF, security headers
↗
7.
Secret management: где хранить секреты
↗
Безопасность: аутентификация, OWASP, защита API
8 уроков
1.
9.1 Аутентификация и авторизация: JWT, OAuth, Policy
↗
2.
9.2 OWASP Top 10 в .NET-приложениях
↗
3.
9.3 Криптография в .NET: AES, HMAC, ECDSA
↗
4.
9.4 Защита API: rate limiting, CORS, CSRF, headers
↗
5.
9.5 Управление секретами: User Secrets, Vault, ротация
↗
6.
9.6 Secure SDLC: threat modeling и security pipeline
↗
7.
9.7 Безопасность контейнеров и Kubernetes
↗
8.
9.8 Итоговая практика: security audit и hardening
↗
Капстон-проект: финальная сборка
8 уроков
1.
10.1 Постановка задачи и архитектура верхнего уровня
↗
2.
10.2 Инфраструктура и общая обвязка сервисов
↗
3.
10.3 Сервис Identity и общая аутентификация
↗
4.
10.4 Сервис Orders: DDD + Event Sourcing + CQRS
↗
5.
10.5 Сервис Catalog: товары, поиск, резерв остатков
↗
6.
10.6 API Gateway: маршрутизация, auth, rate limiting
↗
7.
10.7 Observability: OTel, Serilog, метрики, алерты
↗
8.
10.8 Деплой, CI/CD и финальный обзор системы
↗
Модуль 10. Данные и EF Core: оптимизация и продвинутые сценарии
8 уроков
1.
10.1 Модели и DbContext
↗
2.
10.2 Change Tracker и состояния сущностей
↗
3.
10.3 Query Pipeline и план выполнения
↗
4.
10.4 Оптимизация запросов: N+1, Split Query, проекции
↗
5.
10.5 Миграции, схема, конкурентные изменения
↗
6.
10.6 Interceptors, Value Converters, Owned Types
↗
7.
10.7 Compiled Queries, AsNoTracking, кэширование
↗
8.
10.8 Итоговая практика: профилирование и оптимизация EF Core
↗
Модуль 14. Native AOT, Trimming и оптимизация публикации .NET
8 уроков
1.
14.1 Native AOT: компиляция без JIT и CLR
↗
2.
14.2 Trimming: удаление мёртвого кода и совместимость
↗
3.
14.3 ReadyToRun: ускорение старта без потери гибкости
↗
4.
14.4 Single-file и self-contained публикация
↗
5.
14.5 Cross-compilation и multi-platform публикация
↗
6.
14.6 AOT и рефлексия: ограничения и workarounds
↗
7.
14.7 Оптимизация размера: анализ и инструменты
↗
8.
14.8 Итоговая практика: AOT-совместимый микросервис
↗
Модуль 11. Production: Observability, диагностика, надёжность
8 уроков
1.
11.1 Структурное логирование: Serilog, ILogger, scope
↗
2.
11.2 Метрики: System.Diagnostics.Metrics, Prometheus
↗
3.
11.3 Distributed Tracing: OpenTelemetry, Activity, W3C
↗
4.
11.4 Health Checks и readiness/liveness probes
↗
5.
11.5 Диагностика в проде: dotnet-counters, dotnet-trace, dumps
↗
6.
11.6 Resilience: Polly, retry, circuit breaker, timeout
↗
7.
11.7 Graceful shutdown, IHostedService, BackgroundService
↗
8.
11.8 Итоговая практика: production-ready сервис с observability
↗
Модуль 12. Тестирование .NET: unit, integration, contract, load
8 уроков
1.
12.1 Пирамида тестов и стратегия проекта
↗
2.
12.2 Unit-тесты: xUnit, FluentAssertions, паттерны
↗
3.
12.3 Моки и стабы: NSubstitute, Moq, ловушки
↗
4.
12.4 Property-based и data-driven тесты
↗
5.
12.5 Integration-тесты: WebApplicationFactory, Testcontainers
↗
6.
12.6 Contract-тесты: WireMock, Pact, snapshot-тесты
↗
7.
12.7 Performance и нагрузочное тестирование: BenchmarkDotNet, k6
↗
8.
12.8 Итоговая практика: полный test suite production-сервиса
↗
Модуль 13. CI/CD для .NET: pipelines, Docker, релизные стратегии
8 уроков
1.
13.1 CI/CD: принципы, артефакты, окружения
↗
2.
13.2 GitHub Actions: workflow, jobs, secrets, matrix
↗
3.
13.3 GitLab CI и Azure DevOps Pipelines для .NET
↗
4.
13.4 Docker для .NET: multi-stage, slim, distroless
↗
5.
13.5 Версионирование, NuGet, артефакты сборки
↗
6.
13.6 Релизные стратегии: blue-green, canary, feature flags
↗
7.
13.7 GitOps, ArgoCD, Helm и Kubernetes-деплой
↗
8.
13.8 Итоговая практика: полный CI/CD pipeline для микросервиса
↗