⚡DevPoolLearning Hub
Về chúng tôiAdmin
CHỦ ĐỀ ĐANG CHỌNNestJS
  • •Bài 1.1: Từ Node.js Thuần & Express Spaghetti Đến Kiến Trúc Hướng Module Của NestJS
  • •Bài 1.2: Giải Mã TypeScript Decorators & `reflect-metadata`: NestJS Lưu Trữ & Đọc Metadata Như Thế Nào?
  • •Bài 1.3: Giải Phẫu `main.ts`, `NestFactory.create()` & Cơ Chế Khởi Động Ứng Dụng
  • •Bài 1.4: So Sánh Chuyên Sâu Platform Adapters: Express Engine vs Fastify Engine
  • •Bài 1.5: Tổ Chức Cấu Trúc Thư Mục Dự Án Chuẩn Enterprise & Tối Ưu Hóa `tsconfig.json`
  • •Bài 2.1: Bản Chất Của NestJS IoC Container: Cách Quét & Xây Dựng Dependency Graph
  • •Bài 2.2: Hệ Thống Module Trong NestJS: `imports`, `exports`, `providers` & Shared Modules
  • •Bài 2.3: Làm Chủ Custom Providers: `useClass`, `useValue`, `useFactory` & `useExisting`
  • •Bài 2.4: Dependency Injection Nâng Cao: Non-Class Tokens, String Tokens & Symbol Tokens (`@Inject`)
  • •Bài 2.5: Provider Scopes (`DEFAULT`, `REQUEST`, `TRANSIENT`) & Hiểm Họa Sụt Giảm Hiệu Năng Của Request Scope
  • •Bài 2.6: Xử Lý Triệt Để Vấn Đề Phụ Thuộc Vòng (Circular Dependency) Với `forwardRef()` & Tái Cấu Trúc Kiến Trúc
  • •Bài 3.1: Bộ Điều Khiển Controller, Route Prefixing & Cơ Chế Định Tuyến (Routing Pattern)
  • •Bài 3.2: Trích Xuất Dữ Liệu Request Chuẩn Xác: `@Param()`, `@Query()`, `@Body()`, `@Headers()`, `@Ip()`
  • •Bài 3.3: Tùy Biến HTTP Status Codes, Response Headers & Truyền File Lớn Với `StreamableFile`
  • •Bài 3.4: Tự Xây Dựng Custom Route Parameter Decorator (`@CurrentUser()`, `@ClientIp()`)
  • •Bài 3.5: Tích Hợp OpenAPI / Swagger Tự Động Sinh Tài Liệu REST API Chuẩn Doanh Nghiệp
  • •Bài 4.1: Bản Đồ Vòng Đời Request-Response Lifecycle Toàn Diện Trong NestJS
  • •Bài 4.2: NestJS Middleware: Class-based vs Functional Middleware & Gắn Request ID
  • •Bài 4.3: Tự Động Hóa Kiểm Tra Dữ Liệu: `ValidationPipe`, `class-validator` & `class-transformer`
  • •Bài 4.4: Xây Dựng Custom Transformation Pipes: Ép Kiểu, Parse UUID & Làm Sạch Dữ Liệu (Sanitization)
  • •Bài 4.5: Xử Lý Lỗi Toàn Cục: `HttpException` & Xây Dựng Custom ExceptionFilter Chuẩn RFC 7807
  • •Bài 5.1: Làm Chủ `ExecutionContext` & `ArgumentsHost`: Xử Lý Đa Giao Thức (HTTP, WebSockets, Microservices)
  • •Bài 5.2: Cơ Chế Bảo Vệ Route Với Guards & Phương Thức `canActivate()`
  • •Bài 5.3: Đọc Dynamic Metadata Trong Guards & Interceptors Với `Reflector` & `SetMetadata`
  • •Bài 5.4: Interceptors: Can Thiệp Luồng Dữ Liệu Hai Chiều & Xây Dựng `TransformResponseInterceptor`
  • •Bài 5.5: Xử Lý Timeout & Tự Động Thử Lại (Retry) Bằng RxJS Operators Trong Interceptors
  • •Bài 6.1: Quản Trị Cấu Hình Ứng Dụng Với `@nestjs/config` & `ConfigService` Type-Safe
  • •Bài 6.2: Kiểm Tra Hợp Lệ Biến Môi Trường Với Joi & Zod: Cơ Chế Fail-Fast On Startup
  • •Bài 6.3: Thiết Kế Dynamic Modules: Làm Chủ Quy Ước `forRoot`, `forFeature` & `registerAsync`
  • •Bài 6.4: Xây Dựng Hoàn Chỉnh Một Custom Dynamic Module: `MailerModule.forRootAsync()`
  • •Bài 6.5: Vòng Đời Ứng Dụng & Module Lifecycle Hooks: `OnModuleInit`, `OnApplicationBootstrap`, `OnModuleDestroy`
  • •Bài 7.1: Tổng Quan Tầng Dữ Liệu Trong NestJS: So Sánh Toàn Diện Prisma vs TypeORM vs Drizzle
  • •Bài 7.2: Tích Hợp Prisma ORM Chuẩn Mực Trong NestJS: `PrismaService`, Connection Pooling & Graceful Shutdown
  • •Bài 7.3: Thiết Kế Prisma Schema: Quan Hệ 1-1, 1-N, N-N, Enums & Tối Ưu Hóa Indexes
  • •Bài 7.4: Tích Hợp TypeORM Trong NestJS: Data Mapper Pattern, Entities & Repositories
  • •Bài 7.5: Áp Dụng Repository Pattern Để Phân Tách Data Access Layer Khỏi Business Service
  • •Bài 8.1: Quản Lý Database Transactions Trong Prisma: Sequential Operations vs Interactive Transactions
  • •Bài 8.2: Giải Quyết Triệt Để Race Condition: Khóa Lạc Quan (Optimistic Lock) vs Khóa Bi Quan (Pessimistic Lock)
  • •Bài 8.3: Chiến Lược Database Migrations Trong CI/CD & Tự Động Hóa Data Seeding
  • •Bài 8.4: Kỹ Thuật Xóa Mềm (Soft Delete) & Phòng Ngừa Rò Rỉ Dữ Liệu Với Prisma Client Extensions
  • •Bài 8.5: Tối Ưu Hóa Truy Vấn: Xóa Sổ N+1 Query & Phân Trang Keyset / Cursor-Based Pagination
  • •Bài 9.1: Kiến Trúc Authentication Trong NestJS: Tích Hợp `@nestjs/passport` & `PassportStrategy`
  • •Bài 9.2: Băm Mật Khẩu An Toàn: So Sánh Argon2 vs BCrypt & Phòng Chống Tấn Công Brute-Force
  • •Bài 9.3: Xây Dựng Local Strategy: Đăng Ký, Đăng Nhập Với Email & Password
  • •Bài 9.4: Xây Dựng JWT Strategy & Thiết Lập Global Auth Guard Với Decorator `@Public()`
  • •Bài 9.5: Cơ Chế Refresh Token Rotation (RTR) & Quản Lý Thu Hồi Token Với Redis
  • •Bài 10.1: Phân Quyền Theo Vai Trò: Role-Based Access Control (RBAC) Với `@Roles()` & `RolesGuard`
  • •Bài 10.2: Phân Quyền Hạt Mịn Dựa Trên Quyền Hạn: Permission-Based Access Control (PBAC / Claims)
  • •Bài 10.3: Kiểm Tra Quyền Sở Hữu Tài Nguyên: Resource Ownership Guard (Bảo Vệ Dữ Liệu Khách Hàng)
  • •Bài 10.4: Phân Quyền Hướng Đối Tượng Động: Attribute-Based Access Control (ABAC) Với CASL
  • •Bài 11.1: Tại Sao NestJS Sử Dụng RxJS? Mental Model: Push vs Pull, Promise vs Observable
  • •Bài 11.2: Các RxJS Operators Cốt Lõi Thường Dùng Trong NestJS: `map`, `tap`, `switchMap`, `catchError`
  • •Bài 11.3: Triển Khai Retry Chiến Lược: Exponential Backoff & Jitter Với RxJS
  • •Bài 11.4: Truyền Dữ Liệu Thời Gian Thực 1 Chiều: Server-Sent Events (SSE) Với `@Sse()` & RxJS
  • •Bài 12.1: Xử Lý Tác Vụ Nặng Bất Đồng Bộ Trong NestJS Với `@nestjs/bullmq` & Redis
  • •Bài 12.2: Xây Dựng Producer, Consumer / Processor & Lắng Nghe Job Events Trong BullMQ
  • •Bài 12.3: Chiến Lược Thử Lại (Retries), Dead Letter Queue (DLQ) & Delayed Jobs Trong BullMQ
  • •Bài 12.4: Lên Lịch Tác Vụ Định Kỳ Trong NestJS Với `@nestjs/schedule`: Cron, Interval & Timeout
  • •Bài 12.5: Khóa Phân Tán Đa Node (Distributed Lock) Khi Chạy Cron Trên Nhiều Container Với Redis & Redlock
  • •Bài 13.1: Kiến Trúc WebSocket Gateway Trong NestJS: Socket.io, `@WebSocketGateway()` & `@SubscribeMessage()`
  • •Bài 13.2: Xác Thực Bảo Mật JWT Cho Kết Nối WebSocket (WsGuard & Handshake Auth)
  • •Bài 13.3: Quản Lý Phòng (Rooms), Namespaces & Kỹ Thuật Phát Sóng (Broadcasting) Trong Socket.io
  • •Bài 13.4: Mở Rộng WebSocket Đa Máy Chủ (Multi-Instance Scaling) Với Redis Adapter & Redis Streams
  • •Bài 14.1: Tổng Quan Kiến Trúc Microservices Trong NestJS: Pure Microservice vs Hybrid Application
  • •Bài 14.2: Giao Tiếp Giữa Các Services: `@MessagePattern()` vs `@EventPattern()` & `ClientProxy`
  • •Bài 14.3: Tích Hợp Message Brokers Chuyên Nghiệp: RabbitMQ (AMQP) & Apache Kafka
  • •Bài 14.4: Giao Tiếp RPC Hiệu Năng Cao Với gRPC & Protocol Buffers (`.proto`) Trong NestJS
  • •Bài 14.5: Triển Khai CQRS Pattern (`@nestjs/cqrs`): Commands, Queries, Events & Saga Pattern
  • •Bài 15.1: NestJS Cache Manager: In-Memory Cache vs Distributed Redis Cache
  • •Bài 15.2: Tự Động Hóa Caching HTTP Responses Với `CacheInterceptor` & Cache Key Tùy Biến
  • •Bài 15.3: Phòng Chống 3 Cạm Bẫy Caching Kinh Điển: Cache Penetration, Cache Avalanche & Cache Stampede
  • •Bài 15.4: Chuyển Đổi Sang Fastify Engine: Benchmarks & Giải Quyết Điểm Nghẽn Tương Thích
  • •Bài 16.1: Bảo Vệ HTTP Headers Với Helmet & Cấu Hình CORS Chuẩn An Ninh Doanh Nghiệp
  • •Bài 16.2: Giới Hạn Tần Suất Gọi API (Rate Limiting) Với `@nestjs/throttler` & Redis Storage
  • •Bài 16.3: Phòng Chống Các Lỗ Hổng Web Kinh Điển: CSRF, XSS, Parameter Pollution & SQL Injection
  • •Bài 16.4: Tải Lên Tập Tin An Toàn: Giới Hạn Kích Thước & Kiểm Tra Magic Bytes (File Signature)
  • •Bài 17.1: Structured JSON Logging Trong NestJS: Tích Hợp Winston / Pino Chuẩn ELK & Loki
  • •Bài 17.2: Quản Lý Ngữ Cảnh Yêu Cầu & Gắn Trace ID Xuyên Suốt Hệ Thống Với `AsyncLocalStorage`
  • •Bài 17.3: Thu Thập & Giám Sát Metrics Với Prometheus & Grafana (`prom-client`)
  • •Bài 17.4: Health Checks & Readiness / Liveness Probes Cho Kubernetes Với `@nestjs/terminus`
  • •Bài 18.1: Kim Tự Tháp Kiểm Thử (Testing Pyramid) Trong NestJS: Thiết Lập Jest & Vitest
  • •Bài 18.2: Viết Unit Test Chuyên Nghiệp Cho Services & Controllers: Mocking Providers & Spies
  • •Bài 18.3: End-to-End (E2E) Testing Trong NestJS Với Supertest: Kiểm Thử Trọn Vẹn Luồng HTTP
  • •Bài 18.4: Kiểm Thử Với Database Thật: Tích Hợp Testcontainers (PostgreSQL & Redis Trong Docker)
  • •Bài 19.1: Kiến Trúc Lục Giác (Hexagonal Architecture / Ports & Adapters) Trong NestJS
  • •Bài 19.2: Ứng Dụng Domain-Driven Design (DDD) Trong NestJS: Entities, Value Objects & Aggregates
  • •Bài 19.3: Quản Lý Dự Án Monorepo Với Turborepo / Nx: Chia Sẻ DTOs & Types Cho Frontend
  • •Bài 19.4: Thiết Lập Chuẩn Mã Nguồn: ESLint, Prettier, Husky Git Hooks & CI Pipeline Template
  • •Bài 20.1: Phân Tích Nghiệp Vụ, Thiết Kế Cơ Sở Dữ Liệu ERD & Kiến Trúc Dự Án Capstone
  • •Bài 20.2: Thiết Lập Môi Trường Phát Triển Chuẩn: Docker Compose (Postgres, Redis, Mailpit)
  • •Bài 20.3: Module 1: Xây Dựng Authentication, JWT Token Pair & Role-Based Access Control
  • •Bài 20.4: Module 2: Quản Lý Sản Phẩm, Tìm Kiếm Nâng Cao & Tối Ưu Hóa Bộ Nhớ Đệm Redis
  • •Bài 20.5: Module 3: Đặt Hàng, Giao Dịch ACID & Trừ Tồn Kho Với Optimistic Locking
  • •Bài 20.6: Module 4: Tích Hợp Hàng Đợi BullMQ Gửi Email Hóa Đơn & Thông Báo Realtime
  • •Bài 20.7: Xây Dựng Toàn Bộ Test Suite Cho Dự Án Capstone Với Jest & Testcontainers
  • •Bài 20.8: Đóng Gói Multi-Stage Dockerfile (Non-Root, Distroless) & Triển Khai Production
  • •Bài 0.1: Bài Toán Kinh Doanh Của FlashBazaar: Flash Sale Chớp Nhoáng, Đấu Giá Trực Tiếp & Thách Thức Chịu Tải 10.000 req/s
  • •Bài 0.2: Phân Tích Yêu Cầu Chức Năng (FR), Yêu Cầu Phi Chức Năng (NFR) & Cam Kết Dịch Vụ (SLA)
  • •Bài 0.3: Thiết Kế Kiến Trúc Tổng Thể Theo C4 Model & Sơ Đồ Cơ Sở Dữ Liệu ERD
  • •Bài 0.4: Kiến Trúc Tiến Hóa: Lộ Trình Từ Modular Monolith Đến Event-Driven & Microservices
  • •Bài 1.1: Khởi Tạo Môi Trường Phát Triển Chuẩn Mực Với Docker Compose: PostgreSQL 16, Redis 7 & Mailpit
  • •Bài 1.2: Quản Trị Cấu Hình Đa Môi Trường & Cơ Chế Fail-Fast On Startup Với Zod Schema
  • •Bài 1.3: Tích Hợp Prisma ORM: Cấu Hình Connection Pool & Cơ Chế Graceful Shutdown
  • •Bài 1.4: Thiết Lập Structured JSON Logging Với Pino & Global Exception Filter Chuẩn RFC 7807
  • •Bài 2.1: Hiện Thực Local Strategy & Mã Hóa Mật Khẩu An Toàn Tuyệt Đối Với Argon2id
  • •Bài 2.2: Xây Dựng Cơ Chế Stateless JWT Token Pair & Refresh Token Rotation (RTR) Trên Redis
  • •Bài 2.3: Phát Hiện Hành Vi Đánh Cắp Token (Token Reuse Detection) & Tự Động Vô Hiệu Hóa Phiên Đăng Nhập
  • •Bài 2.4: Triển Khai Phân Quyền Đa Tầng: Role-Based (RBAC), Permission Claims (PBAC) & Resource Ownership Guard
  • •Bài 3.1: Tải Lên Ảnh Sản Phẩm An Toàn: Kiểm Tra Magic Bytes Nhị Phân & Tích Hợp S3 Cloud Storage
  • •Bài 3.2: Xây Dựng API Duyệt Sản Phẩm Phân Trang Keyset Cursor-Based Tối Ưu $O(1)$
  • •Bài 3.3: Triển Khai Chiến Lược Redis Cache-Aside & Cơ Chế Tự Động Xóa Cache (Cache Invalidation)
  • •Bài 3.4: Thiết Lập Chốt Chặn Phòng Chống 3 Cạm Bẫy Caching: Penetration, Avalanche & Stampede Trong FlashBazaar
  • •Bài 4.1: Phân Tích Hiện Tượng Race Condition & Bán Âm Kho Khi 5.000 Requests Cùng Tràn Vào 1 Giây
  • •Bài 4.2: Giải Pháp 1: Triển Khai Khóa Lạc Quan (Optimistic Locking) Với Cột Version Trong Prisma
  • •Bài 4.3: Giải Pháp 2: Triển Khai Khóa Bi Quan (Pessimistic Locking `SELECT FOR UPDATE`) Cho Flash Sale Cực Nóng
  • •Bài 4.4: Giải Pháp 3: Tối Ưu Hóa Cực Hạn Với Redis Atomic Lua Script (Chịu Tải 20.000 req/s)
  • •Bài 4.5: Đóng Gói Toàn Vẹn Đơn Hàng Với Prisma Interactive Transaction & Bắn Event Đơn Mới
  • •Bài 5.1: Thiết Kế WebSocket Gateway: Quản Lý Phòng Đấu Giá (Auction Rooms) & Khởi Tạo Socket.io
  • •Bài 5.2: Xác Thực Bảo Mật JWT Token Cho Kết Nối WebSocket Ngay Khi Bắt Tay (Handshake Authentication)
  • •Bài 5.3: Xử Lý Nghiệp Vụ Đặt Giá Thầu (Bid Placement) & Phát Sóng Real-Time Tức Thời (< 50ms)
  • •Bài 5.4: Mở Rộng WebSocket Cluster Đa Máy Chủ Với Socket.io Redis Adapter & Redis Streams
  • •Bài 6.1: Tích Hợp Hàng Đợi BullMQ & Tách Biệt Tác Vụ Nặng Khỏi HTTP Request Thread
  • •Bài 6.2: Xây Dựng Chiến Lược Thử Lại (Job Retries) & Hàng Đợi Chết (Dead Letter Queue - DLQ)
  • •Bài 6.3: Áp Dụng Delayed Jobs: Tự Động Hủy Đơn Hàng & Hoàn Trả Tồn Kho Sau 15 Phút Quá Hạn
  • •Bài 6.4: Lên Lịch Tác Vụ Định Kỳ & Khóa Phân Tán Đa Node Với Redis Redlock
  • •Bài 7.1: Tích Hợp Cổng Thanh Toán & Xác Thực Tính Toàn Vẹn Với Chữ Ký Số HMAC-SHA256
  • •Bài 7.2: Thiết Kế Idempotent Webhook Consumer: Chống Trừ Tiền & Cập Nhật Trùng Lặp
  • •Bài 7.3: Giải Quyết Bài Toán Dual-Write Với Transactional Outbox Pattern
  • •Bài 8.1: Tách Biệt Notification Service & Inventory Service Thành Các Microservices Độc Lập
  • •Bài 8.2: Giao Tiếp Qua RabbitMQ Broker Với Cơ Chế Xác Nhận Thủ Công (Manual Acknowledgement - `noAck: false`)
  • •Bài 8.3: Giao Tiếp RPC Nội Bộ Hiệu Năng Cao Giữa Các Microservices Với gRPC & Protocol Buffers
  • •Bài 8.4: Áp Dụng Mô Hình CQRS & Điều Phối Chuỗi Giao Dịch Phức Tạp Với Saga Pattern
  • •Bài 9.1: Thiết Lập Jest Test Suite & Viết Unit Test Chuyên Nghiệp Cho Services & Controllers
  • •Bài 9.2: Viết Integration Test Cho Luồng Đặt Hàng & Đấu Giá Trực Tuyến Với Supertest
  • •Bài 9.3: Tích Hợp Testcontainers: Kiểm Thử Tranh Chấp Concurrency & Lock Trên PostgreSQL Thật Trong Docker
  • •Bài 9.4: Thiết Lập Ngưỡng Bao Phủ Kiểm Thử (Test Coverage > 85%) & Tự Động Hóa Trong CI
  • •Bài 10.1: Gia Cố Bảo Mật HTTP Headers Với Helmet & Cấu Hình CORS An Ninh Doanh Nghiệp
  • •Bài 10.2: Giới Hạn Tần Suất Gọi API (Rate Limiting) Đa Tầng Với `@nestjs/throttler` & Redis Storage
  • •Bài 10.3: Chuyển Đổi HTTP Engine Sang Fastify Adapter: Tăng Gấp 2.5 Lần Thông Lượng (Throughput Benchmark)
  • •Bài 11.1: Quản Lý Ngữ Cảnh Yêu Cầu & Gắn Trace ID Xuyên Suốt Hệ Thống Với `AsyncLocalStorage`
  • •Bài 11.2: Thu Thập & Giám Sát Metrics Hiệu Năng Với Prometheus & Grafana
  • •Bài 11.3: Health Checks, Readiness & Liveness Probes Cho Kubernetes Với `@nestjs/terminus`
  • •Bài 11.4: Đóng Gói Multi-Stage Distroless Dockerfile: Non-Root User & Dung Lượng Siêu Nhẹ (~110MB)
  • •Bài 11.5: Tự Động Hóa Quy Trình CI/CD Với GitHub Actions Pipeline
  • •Bài 12.1: Diễn Tập Sự Cố 1: Rò Rỉ Bộ Nhớ (Memory Leak) Do `Scope.REQUEST` & Cách Dùng Heap Snapshot Cứu Hộ
  • •Bài 12.2: Diễn Tập Sự Cố 2: Nghẽn Deadlock Trên PostgreSQL & Chuẩn Hóa Thứ Tự Khóa Tài Nguyên
  • •Bài 12.3: Diễn Tập Sự Cố 3: Redis Đột Ngột Sập Khiến Database Bị Sụp Đổ Dây Chuyền (Cache Stampede Drill)
  • •Bài 12.4: Soạn Thảo Báo Cáo Sự Cố (Post-Mortem Report) Chuẩn Kỹ Sư Senior & Tổng Kết Dự Án FlashBazaar