Khóa học Fullstack NodeJS với Encore
Khóa học Fullstack NodeJS với Encore
Khóa học lập trình Fullstack với NodeJS/Encore và React từ cơ bản đến nâng cao, tập trung vào microservices và cloud native development. Phù hợp cho người muốn làm chủ công nghệ backend hiện đại.
Tại sao chọn khóa học
- Chương trình cập nhật theo xu hướng công nghệ mới nhất
- Tập trung vào thực hành với các dự án thực tế
- Giảng viên có nhiều năm kinh nghiệm về microservices
- Hỗ trợ học viên 24/7 qua group chat riêng
- Cung cấp tài liệu học tập đầy đủ bằng tiếng Việt
- Chứng chỉ hoàn thành khóa học có giá trị
Mục tiêu khóa học
- Nắm vững kiến thức về phát triển frontend với React và TypeScript
- Thành thạo backend microservices với Encore và các công cụ DevOps
- Hiểu và áp dụng được cloud native development và các best practices
- Có khả năng tự xây dựng và triển khai ứng dụng fullstack hoàn chỉnh
Kết quả mong đợi
- Thành thạo lập trình frontend với React và TypeScript
- Làm chủ backend microservices với Encore
- Triển khai được ứng dụng lên AWS/GCP với CI/CD tự động
- Xây dựng được các service có khả năng mở rộng cao
- Có portfolio với các dự án thực tế để xin việc
Đối tượng hướng đến
- Người muốn học fullstack development hiện đại
- Backend developers muốn mở rộng sang frontend
- Frontend developers muốn học thêm về microservices
- Developers muốn cập nhật công nghệ mới
Nội dung chương trình học
Phần 1: Nền tảng Web Development
Cấu trúc cơ bản của trang HTML5
Các thẻ HTML5 semantic và cách sử dụng
Form và validation trong HTML5
Các thuộc tính HTML5 mới
Bài tập thực hành: Xây dựng layout chuẩn HTML5 (15 bài tập)
CSS Selectors và độ ưu tiên
Flexbox layout chi tiết
Grid system và cách triển khai
Media queries và responsive design
CSS Variables và Custom Properties
Bài tập thực hành: Responsive layout (20 bài tập)
Biến, kiểu dữ liệu và phạm vi
Cấu trúc điều khiển và vòng lặp
Functions và arrow functions
DOM manipulation
Event handling
Bài tập thực hành: JavaScript cơ bản (25 bài tập)
ES6+ features: destructuring, spread operator, modules
Promises và async/await
TypeScript types và interfaces
Generics và decorators
Error handling patterns
Bài tập thực hành: TypeScript (20 bài tập)
Advanced types và type manipulation
Utility types trong TypeScript
Decorators và metadata
Module system và namespaces
Testing TypeScript code
Bài tập thực hành: TypeScript nâng cao (15 bài tập)
Phần 2: Lập trình Frontend với React
JSX và React Elements
Components và Props
State và useState hook
Lifecycle và useEffect
Event handling trong React
Bài tập thực hành: React cơ bản (20 bài tập)
useContext và Context API
useReducer cho state phức tạp
useMemo và useCallback
useRef và DOM manipulation
Custom hooks development
Bài tập thực hành: React hooks (15 bài tập)
Controlled vs Uncontrolled components
Form validation với Formik
Yup schema validation
Custom validation rules
Error handling và display
Bài tập thực hành: Forms (10 bài tập)
Redux core concepts
Cài đặt và cấu hình Redux Toolkit
createSlice và reducers
Async thunks
Redux DevTools
Bài tập thực hành: Redux (15 bài tập)
Setup RTK Query APIs
Queries và mutations
Cache management
Optimistic updates
Error handling
Bài tập thực hành: RTK Query (10 bài tập)
React Query setup
Queries và mutations
Cache invalidation
Infinite queries
Prefetching data
Bài tập thực hành: React Query (10 bài tập)
File-based routing
Dynamic routes
Catch-all routes
Middleware
Navigation và linking
Bài tập thực hành: Next.js routing (10 bài tập)
getStaticProps và getStaticPaths
getServerSideProps
Incremental Static Regeneration
API Routes
SWR cho client-side fetching
Bài tập thực hành: Next.js data fetching (10 bài tập)
Build optimization
Environment variables
Static exports
Vercel deployment
Custom server setup
Bài tập thực hành: Deployment (5 bài tập)
Jest setup cho React
React Testing Library
Component testing
Integration tests
E2E testing với Cypress
Bài tập thực hành: Testing (10 bài tập)
Phần 3: Backend Development với Node.js và Express
Giới thiệu về kiến trúc Backend và vai trò của Node.js
Nguyên lý hoạt động của RESTful API
HTTP Methods: GET, POST, PUT, DELETE
Status codes và best practices
Thiết kế API endpoints chuẩn REST
Bài tập thực hành: Thiết kế RESTful API (10 bài tập)
Cài đặt và cấu hình Express.js
Middleware và cách sử dụng
Routing trong Express
Error handling
Static files và template engines
Bài tập thực hành: Express.js cơ bản (15 bài tập)
Cài đặt và kết nối MongoDB
Schema và Model trong Mongoose
CRUD Operations với Mongoose
Relationships và Population
Validation và Middleware
Bài tập thực hành: MongoDB & Mongoose (20 bài tập)
JWT (JSON Web Tokens)
Passport.js và các chiến lược xác thực
OAuth 2.0 và Social Login
Role-based Access Control (RBAC)
Security best practices
Bài tập thực hành: Authentication (15 bài tập)
Input validation với Joi/Yup
XSS và CSRF protection
Rate limiting và Brute force protection
CORS configuration
Security headers
Bài tập thực hành: API Security (10 bài tập)
Xử lý file upload với Multer
Image processing với Sharp
Cloud storage (AWS S3/Cloudinary)
File validation và security
Stream processing
Bài tập thực hành: File handling (10 bài tập)
Nodemailer setup và configuration
Email templates với Handlebars
Task queues với Bull
Background jobs
Scheduled tasks với node-cron
Bài tập thực hành: Email và Queue (10 bài tập)
Redis caching strategy
Memory caching với Node-cache
Database query optimization
Response compression
Performance monitoring
Bài tập thực hành: Caching (10 bài tập)
Unit testing với Jest
Integration testing
API testing với Supertest
Test coverage và reporting
Mocking và stubbing
Bài tập thực hành: Testing (15 bài tập)
Global error handling
Custom error classes
Logging với Winston/Morgan
Error monitoring và reporting
Debug strategies
Bài tập thực hành: Error handling (10 bài tập)
WebSocket protocol
Socket.io implementation
Real-time events và broadcasting
Room và Namespace
Scaling WebSocket applications
Bài tập thực hành: WebSocket (15 bài tập)
Swagger/OpenAPI specification
API documentation với Swagger UI
Automated documentation generation
API versioning
Documentation best practices
Bài tập thực hành: Documentation (5 bài tập)
Environment configuration
Process management với PM2
Nginx reverse proxy setup
SSL/TLS configuration
Monitoring và logging
Deployment checklist
Bài tập thực hành: Deployment (10 bài tập)
Phần 5: Tính năng nâng cao
Tổng quan về OAuth 2.0 và OpenID Connect
Các luồng xác thực OAuth 2.0
Triển khai OAuth 2.0 với Google, Facebook
Quản lý phiên và token
Xử lý callback và state
Bài tập thực hành: OAuth 2.0 (10 bài tập)
Cấu trúc và nguyên lý hoạt động của JWT
Mã hóa và xác thực JWT
Bảo mật API với JWT
Refresh token và access token
Xử lý token hết hạn
Bài tập thực hành: JWT (10 bài tập)
Giao thức HTTPS và TLS
Cài đặt và cấu hình SSL/TLS
Chứng chỉ SSL và Let's Encrypt
Best practices bảo mật HTTPS
Kiểm tra và debug HTTPS
Bài tập thực hành: HTTPS (5 bài tập)
Các lỗ hổng bảo mật phổ biến
Công cụ kiểm thử bảo mật
Penetration testing cơ bản
Xử lý và khắc phục lỗ hổng
Báo cáo và theo dõi vấn đề
Bài tập thực hành: Security testing (5 bài tập)
Tổng quan về OpenAI API
Thiết lập và cấu hình OpenAI API
Gọi API và xử lý response
Xử lý lỗi và rate limiting
Tối ưu chi phí API
Bài tập thực hành: OpenAI (8 bài tập)
Nguyên tắc thiết kế prompt
Kỹ thuật tối ưu prompt
Xử lý context và memory
Fine-tuning và customization
Đánh giá chất lượng prompt
Bài tập thực hành: Prompt (7 bài tập)
Giới thiệu Vector Database
Triển khai Retrieval Augmented Generation
Semantic search với Vector DB
Indexing và querying
Tối ưu hiệu suất truy vấn
Bài tập thực hành: Vector DB (5 bài tập)
Phân tích và đo lường hiệu năng
Tối ưu database queries
Memory leaks và debugging
Profiling và benchmarking
Công cụ monitoring
Bài tập thực hành: Performance (10 bài tập)
Chiến lược caching
Redis và Memcached
Load testing với k6/Artillery
Phân tích kết quả test
Xử lý bottleneck
Bài tập thực hành: Caching (10 bài tập)
Kiến trúc microservices
Container và Docker
Load balancing
Auto-scaling
Monitoring và alerting
Bài tập thực hành: Scaling (5 bài tập)