1. Backend
- Xây dựng mô hình MVC chuẩn, dễ code, dễ maintain
- Xây dựng log, có module name cho từng file dễ phân biệt, đặt log phù hợp với các level debug - infor
- Middleware, nhóm các router vào các middleware phù hợp
- Response thống nhất. Http status phù hợp. Mã code lỗi để frontend xử lý logic, hiện message phù hợp (đa ngôn ngữ), có cấu trúc kiểu:
- {error_code: “user.edit.exists”, message: “User already exsits.”}
- {data: {payload}, other}
- Token:
- Nếu muốn quản lý, nên lưu active token với uuid gán vào token, truy xuất cho nhanh. Có định kỳ dọn dẹp
- refresh token: không gửi lên backend cùng với token, có api để refresh token riêng. Frontend có thể setInterval để kiểm tra token sắp hết hạn thì gọi api
- Queue
- Các tác vụ nặng nên có queue, tìm 1 lib hỗ trợ đầy đủ enqueue, get infor job, state đầy đủ
- Nếu có thời gian, nên có 1 table quản lý các job fail, đang run, …, đẻ có thể release resource dễ dàng nếu job fail
2. Frontend
- Dùng reactjs + shadcn-ui: dễ dàng, nhanh chóng, có thể dùng lib react/query, lưu trữ cache hiệu quả
- Xây dựng try / catch để xử lý error từ backend, hiện message (đa ngôn ngữ)
- Refresh token / access token: tính toán gần hết hạn access token thì gọi refresh token.
- Form: label - input focus đúng field
3. Other source
4. CICD