date
Dec 12, 2025
slug
docs-traning-be-intern-week-1
status
Published
tags
NestJs
Backend
summary
Tổng hợp docs trainning back-end Intern Week 1
type
Post
TUẦN 1 – NỀN TẢNG BACKEND
Mục tiêu tuần
- Hiểu backend là gì trong toàn bộ hệ thống web
- Hiểu request đi như thế nào từ client → server → DB → trả về
- Tự tạo được backend project chuẩn production
- Biết viết API đúng chuẩn, dễ mở rộng
- Không bị bỡ ngỡ khi bước sang Web3 backend
1. Backend là gì? (Hiểu đúng ngay từ đầu)
Backend KHÔNG phải:
- Chỉ là “viết API”
- Chỉ là “lấy dữ liệu từ DB”
Backend LÀ:
- Xử lý business logic
- Kiểm soát dữ liệu
- Đảm bảo bảo mật
- Kết nối các hệ thống (DB, Blockchain, Queue, Cache, 3rd-party)
👉 Trong Web3:
- Smart contract xử lý logic on-chain
- Backend xử lý logic off-chain
2. Web hoạt động như thế nào? (BẮT BUỘC hiểu)
Luồng chuẩn
Browser / Mobile / dApp
↓
HTTP Request
↓
Backend Server
↓
(Auth, Logic, DB, Blockchain)
↓
HTTP Response
Các khái niệm cần nắm
- Client – Server
- Stateless server
- Request / Response
- JSON
3. HTTP Protocol – Đào sâu (không học thuộc)
HTTP Method
Method | Dùng khi nào |
GET | Lấy dữ liệu |
POST | Tạo mới |
PUT | Cập nhật toàn bộ |
PATCH | Cập nhật một phần |
DELETE | Xóa |
👉 Vì sao dùng đúng method rất quan trọng:
- Cache
- Security
- API standard
HTTP Status Code
- 200 OK
- 201 Created
- 400 Bad Request
- 401 Unauthorized
- 403 Forbidden
- 404 Not Found
- 500 Internal Server Error
👉 Backend chuyên nghiệp không trả status code bừa.
4. RESTful API – Không chỉ là “viết endpoint”
REST là gì?
- Resource-based
- Không gắn action vào URL
❌ Sai:
POST /createUser
✅ Đúng:
POST /users
Quy ước REST chuẩn
- URL: danh từ số nhiều
- Method: thể hiện hành động
- Response: nhất quán
5. Node.js – Hiểu để không viết backend “ngu”
Node.js là gì?
- Runtime chạy JS
- Dựa trên event loop
- Non-blocking I/O
Event Loop (cực kỳ quan trọng)
- Node xử lý nhiều request trên 1 thread
- Không được block thread
❌ Sai:
while(true) {}
👉 Backend blockchain rất dễ bị block nếu không hiểu cái này.
6. Async / Await – BẮT BUỘC thuần thục
Vì sao backend toàn async?
- DB
- Blockchain RPC
- Network call
Hiểu bản chất:
- async = Promise
- await = chờ Promise resolve
7. Express / Fastify – Framework backend
Khái niệm cần hiểu
- App
- Route
- Controller
- Middleware
- Error handler
Middleware là gì?
- Chạy trước controller
- Dùng cho:
- Auth
- Logging
- Validate
- Rate limit
8. Cấu trúc project CHUẨN (quan trọng)
Cấu trúc gợi ý
src/
├── app.ts
├── server.ts
├── routes/
├── controllers/
├── services/
├── middlewares/
├── utils/
├── config/
👉 Vì sao phải tách?
- Dễ test
- Dễ scale
- Dễ bảo trì
9. Environment & Config
Vì sao không hard-code?
- API key
- DB URL
- Private key
Dùng:
- .env
- process.env
10. Error Handling – Backend “xịn” khác backend thường
Sai lầm phổ biến
- try/catch khắp nơi
- Trả lỗi không rõ ràng
Chuẩn:
- Centralized error handler
- Custom error class
11. Logging – Bắt buộc cho production
Vì sao cần log?
- Debug
- Audit
- Security
Log những gì?
- Request
- Error
- Performance
12. Git & Workflow cơ bản
Bắt buộc biết
- init repo
- commit
- branch
- .gitignore
13. Bài tập BẮT BUỘC (Hands-on)
Bài 1 – Setup project
- Node.js + TypeScript
- Express
- Env
- ESLint + Prettier
Bài 2 – Viết API
- GET /health
- POST /auth/login
- GET /users/me
Bài 3 – Middleware
- Logger middleware
- Auth middleware (fake token)
14. Checklist TỰ KIỂM TRA
- Backend khác frontend thế nào?
- Stateless server là gì?
- Middleware chạy khi nào?
- Vì sao không xử lý logic trong route?
- Event loop ảnh hưởng gì tới backend?
Vì sao Web3 backend càng cần backend tốt?