Skip to content

Quality — Non-Functional Requirements ​

Các yêu cầu về tốc độ, độ tin cậy, bảo mật và khả năng truy cập cho mọi domain của danghong.me. Cột Hiện trạng ghi rõ điều gì đã đạt, điều gì mới là mục tiêu, để tài liệu không mô tả thứ chưa có.


1. HIỆU NĂNG ​

Yêu cầuMục tiêuHiện trạng
Lighthouse (Performance, A11y, Best Practices, SEO)≥ 90 mọi mụcChưa đo định kỳ
LCP< 2.5s (lý tưởng < 1.2s)Chưa đo định kỳ
INP< 200msChưa đo định kỳ
CLS< 0.1Chưa đo định kỳ
Không có server lúc chạy cho website, docs, mediaStatic export✅ Đạt
Thời gian phản hồi API ở edge< 50msAPI chưa chạy (xem Infrastructure)

2. ĐỘ TIN CẬY ​

  • Hosting: Cloudflare Pages và Workers, không tự quản lý máy chủ. ✅
  • Khôi phục: Code và tài liệu nằm trong Git; site nào hỏng thì deploy lại từ main. Nội dung nằm trong D1 (Time Travel 30 ngày) và R2 (chưa có sao lưu, xem Infrastructure I4). ⚠️
  • Kiểm tra trước khi phát hành: CI chạy lint và build cho website, docs, media trên mọi PR. ✅

3. BẢO MẬT & QUYỀN RIÊNG TƯ ​

Yêu cầuHiện trạng
Không bắt đăng nhập (Trial-all), không lưu dữ liệu người dùng phía server✅ Đạt. Tương tác cá nhân chỉ lưu localStorage
HTTPS cho mọi domain✅ Đạt (SSL tự động của Cloudflare)
Header bảo mật X-Frame-Options, X-Content-Type-Options, Referrer-Policy❌ Chưa có. website/public/_headers mới chỉ có header cache
API kiểm tra dữ liệu đầu vào (schema validation)❌ Chưa có. POST /api/v1/contact mới kiểm tra các trường bắt buộc
Không commit secret✅ .env*, api/.dev.vars nằm trong .gitignore

4. KHẢ NĂNG TRUY CẬP & SEO ​

  • Tương phản màu: tối thiểu 4.5:1 cho chữ thường (WCAG 2.1 AA).
  • Bàn phím: mọi menu, nút, modal dùng được bằng Tab/Enter/Esc.
  • HTML ngữ nghĩa: dùng <header>, <main>, <nav>, <article>, <footer>.
  • SEO: mỗi trang có title, description, Open Graph.

Các mục này là chuẩn bắt buộc cho trang mới; chưa có đợt kiểm tra tổng thể nào trên toàn website.


5. TIÊU CHUẨN TÍNH NĂNG (CHUNG) ​

  • Interactive Evidence: site không phải CV tĩnh. Người xem "Chạm - Bấm - Thấy kết quả" ngay.
  • Outcome-Driven: một yêu cầu chỉ được chấp nhận nếu có Outcome (kết quả người dùng nhận), Path (lộ trình Home → Action → Result) và Evidence (bằng chứng).
  • Frictionless Trial: ưu tiên dùng thử không cần đăng nhập.

Áp đầy đủ cho danghong.me. Site cửa sổ (ai, ielts, nextstep) theo mục tiêu ghi trong brief của site.


6. CỔNG KIỂM DOCS ​

CổngLệnhBắt
QG-001 Frontmattercd docs && npm run checkThiếu trường, description quá 160 ký tự, status sai, ngày không tuyệt đối
QG-002 Linknpm run check và npm run buildLink chết, link trỏ ra ngoài docs/
QG-003 Cỡ trangnpm run checkTrên 40 KB cảnh báo, trên 80 KB lỗi
QG-004 Docs đi cùng codeCI docs-syncPR sửa website/, media/, api/ mà không sửa docs/