Содержание курса
Введение: современный backend на Node.js и NestJS
6 уроков
1.
Что мы будем строить
↗
2.
Почему Node.js всё ещё силён в backend
↗
3.
Где Node.js уместен, а где лучше выбрать другой стек
↗
4.
Node.js 26, NestJS 11 и TypeScript 6 как основной стек
↗
5.
Архитектура финального проекта CourseFlow Nest API
↗
6.
Как проходить курс, если пришли из Java, C#, Go, PHP, Python
↗
Node.js 26 для backend-разработчика
10 уроков
1.
Runtime, V8, libuv и event loop
↗
2.
Single-threaded model: правда и мифы
↗
3.
Async I/O, callbacks, promises, async/await
↗
4.
Microtasks, macrotasks и очереди событий
↗
5.
Timers, streams, buffers
↗
6.
Worker threads: когда нужны
↗
7.
Built-in test runner обзорно
↗
8.
Permission model обзорно
↗
9.
Что нового и важного в Node.js 26
↗
10.
Практика: диагностика event loop blocking
↗
TypeScript для backend-а
10 уроков
1.
Почему NestJS пишут на TypeScript
↗
2.
types, interfaces, enums, literal types
↗
3.
DTO-типы и domain-типы
↗
4.
Generics
↗
5.
Utility types
↗
6.
Narrowing и discriminated unions
↗
7.
unknown вместо any
↗
8.
strict mode
↗
9.
tsconfig для backend-проекта
↗
10.
Практика: типы CourseFlow domain model
↗
NestJS 11: базовая ментальная модель
10 уроков
1.
Что такое NestJS
↗
2.
Modules
↗
3.
Controllers
↗
4.
Providers
↗
5.
Dependency Injection
↗
6.
Injectable services
↗
7.
Lifecycle hooks
↗
8.
Request lifecycle
↗
9.
Express v5 по умолчанию в NestJS 11
↗
10.
Практика: первый CourseFlow Nest API
↗
Project setup, pnpm и структура проекта
10 уроков
1.
Nest CLI и ручной setup
↗
2.
pnpm workspace обзорно
↗
3.
package.json scripts
↗
4.
eslint, prettier, tsconfig
↗
5.
ConfigModule
↗
6.
Environment variables
↗
7.
Secrets handling
↗
8.
src layout
↗
9.
Feature-based modules
↗
10.
Практика: каркас CourseFlow Nest API
↗
REST API на NestJS
10 уроков
1.
Controllers и routes
↗
2.
GET, POST, PATCH, DELETE
↗
3.
Route params
↗
4.
Query params
↗
5.
Request body
↗
6.
Response shape
↗
7.
Status codes
↗
8.
REST resource design
↗
9.
OpenAPI / Swagger
↗
10.
Практика: REST API для Courses и Lessons
↗
DTO, validation, pipes и error model
10 уроков
1.
DTO как публичный контракт
↗
2.
class-validator и class-transformer
↗
3.
ValidationPipe
↗
4.
Zod как альтернатива обзорно
↗
5.
Request validation vs domain validation
↗
6.
Exception filters
↗
7.
Единый JSON error format
↗
8.
Business errors
↗
9.
Mapping errors into HTTP
↗
10.
Практика: validation и ошибки CourseFlow
↗
Архитектура NestJS-приложения
10 уроков
1.
Почему не складывать всё в service
↗
2.
Controller layer
↗
3.
Application service layer
↗
4.
Domain layer
↗
5.
Infrastructure layer
↗
6.
Feature modules
↗
7.
Shared modules
↗
8.
Repository pattern: когда нужен
↗
9.
Transaction boundary
↗
10.
Практика: modular monolith CourseFlow
↗
PostgreSQL и Prisma
12 уроков
1.
Почему PostgreSQL
↗
2.
Почему Prisma как основной ORM/data mapper
↗
3.
Prisma schema
↗
4.
Migrations
↗
5.
Prisma Client
↗
6.
CRUD queries
↗
7.
Relations
↗
8.
Transactions
↗
9.
Constraints и indexes
↗
10.
Pagination и filtering
↗
11.
N+1 и query shape
↗
12.
Практика: persistence для Users, Courses, Lessons
↗
Auth и security basics
12 уроков
1.
Authentication vs authorization
↗
2.
Password hashing через Argon2
↗
3.
Registration
↗
4.
Login
↗
5.
JWT access tokens
↗
6.
Refresh tokens
↗
7.
Passport strategy в NestJS
↗
8.
Guards
↗
9.
Current user decorator
↗
10.
Roles and permissions
↗
11.
CORS, helmet, rate limiting
↗
12.
Практика: защищённый API
↗
Redis: cache, rate limiting, idempotency
9 уроков
1.
Где Redis нужен в backend
↗
2.
Подключение Redis в NestJS
↗
3.
Cache-aside pattern
↗
4.
Cache key design
↗
5.
TTL и invalidation
↗
6.
Rate limiting login endpoint
↗
7.
Idempotency keys
↗
8.
Distributed locks обзорно
↗
9.
Практика: Redis cache и idempotent purchase endpoint
↗
External HTTP integrations
10 уроков
1.
Почему внешние API ненадёжны
↗
2.
HttpModule / fetch / axios-подходы
↗
3.
Typed client layer
↗
4.
Timeouts
↗
5.
Retry и backoff
↗
6.
Circuit breaker обзорно
↗
7.
Webhooks
↗
8.
Signature verification
↗
9.
Replay protection
↗
10.
Практика: mock billing provider
↗
Background jobs и queues
10 уроков
1.
Зачем нужны фоновые задачи
↗
2.
Cron jobs в NestJS
↗
3.
BullMQ
↗
4.
Redis-backed queues
↗
5.
Producer и processor
↗
6.
Retry
↗
7.
Dead-letter подход
↗
8.
Idempotent consumers
↗
9.
Outbox pattern
↗
10.
Практика: notification worker
↗
WebSocket и real-time API
9 уроков
1.
Когда нужен WebSocket
↗
2.
WebSocket Gateway в NestJS
↗
3.
Connection lifecycle
↗
4.
Event protocol
↗
5.
JWT auth для WebSocket
↗
6.
Rooms
↗
7.
User-specific notifications
↗
8.
Scaling через Redis adapter обзорно
↗
9.
Практика: CourseFlow notifications
↗
GraphQL API на NestJS
10 уроков
1.
Зачем GraphQL рядом с REST
↗
2.
Code-first vs schema-first
↗
3.
@nestjs/graphql
↗
4.
Object types
↗
5.
Queries
↗
6.
Mutations
↗
7.
Resolver layer
↗
8.
Auth в GraphQL
↗
9.
N+1 и DataLoader
↗
10.
Практика: Course details и progress summary через GraphQL
↗
Observability: logs, metrics, traces
10 уроков
1.
Почему console.log недостаточно
↗
2.
Structured logging
↗
3.
Request ID / correlation ID
↗
4.
Interceptors для logging
↗
5.
Exception logging
↗
6.
OpenTelemetry overview
↗
7.
Metrics overview
↗
8.
Health checks
↗
9.
Readiness/liveness
↗
10.
Практика: observability для API и worker
↗
Testing NestJS backend-а
11 уроков
1.
Unit tests
↗
2.
TestingModule
↗
3.
Service tests
↗
4.
Controller tests
↗
5.
E2E tests через Supertest
↗
6.
PostgreSQL Testcontainers
↗
7.
Redis Testcontainers
↗
8.
Mock external API
↗
9.
Auth tests
↗
10.
Worker tests
↗
11.
Практика: test suite CourseFlow
↗
Docker и локальное окружение
10 уроков
1.
Dockerfile для NestJS API
↗
2.
Multi-stage build
↗
3.
node_modules, pnpm и кеширование
↗
4.
Docker Compose
↗
5.
PostgreSQL
↗
6.
Redis
↗
7.
Worker process
↗
8.
Migrations in containers
↗
9.
Health checks
↗
10.
Практика: запуск всего CourseFlow через Compose
↗
CI/CD и production-дисциплина
10 уроков
1.
Что должен проверять pipeline
↗
2.
pnpm install/cache
↗
3.
lint
↗
4.
typecheck
↗
5.
unit tests
↗
6.
integration tests
↗
7.
Docker image build
↗
8.
Smoke test
↗
9.
GitHub Actions
↗
10.
Практика: CI pipeline для CourseFlow
↗
Финальный проект: CourseFlow Nest API
15 уроков
1.
Финальная архитектура
↗
2.
Users module
↗
3.
Courses module
↗
4.
Lessons module
↗
5.
Enrollment module
↗
6.
Progress module
↗
7.
Billing mock module
↗
8.
Notifications module
↗
9.
REST API
↗
10.
GraphQL API
↗
11.
WebSocket notifications
↗
12.
Background jobs
↗
13.
Tests
↗
14.
Docker Compose запуск
↗
15.
README и финальная проверка
↗