Cách xây dựng frontend vững chắc: cải tiến lũy tiến
-
Bắt đầu với HTML
- Dịch vụ của chính phủ phải vẫn hoạt động chỉ với HTML
- Lớp HTML có khả năng chịu lỗi, nên vẫn có thể hoạt động trên các trình duyệt cũ
- Cần dùng semantic markup đúng cách và tổ chức cấu trúc tài liệu một cách hợp lý
-
Sử dụng CSS
- Có thể dùng CSS để tạo kiểu cho dịch vụ
- Lớp CSS có khả năng chịu lỗi vì có thể bỏ qua từng khai báo riêng lẻ
- Nên tránh các kỹ thuật như 'CSS-in-JS'
-
Sử dụng JavaScript
- JavaScript được dùng để thêm các yếu tố tương tác
- Lớp JavaScript không có khả năng chịu lỗi và có thể phát sinh lỗi
- Có thể tăng khả năng tương thích thông qua phát hiện tính năng cho browser API, bổ sung polyfill, transpiling, v.v.
- JavaScript nên đóng vai trò bổ trợ cho HTML và CSS
-
Các lựa chọn thay thế cho JavaScript
- Cần cân nhắc các giải pháp đơn giản có thể đáp ứng nhu cầu người dùng mà không cần JavaScript
- Các lựa chọn thay thế gồm hiển thị bảng dữ liệu, xuất dữ liệu, và dựng sẵn biểu đồ dưới dạng hình ảnh
-
Sử dụng framework JavaScript phía client
- Nếu không phải giao diện người dùng phức tạp thì nên tránh dùng framework
- Khi dùng framework, có thể phát sinh các vấn đề như tăng kích thước codebase, vấn đề hiệu năng và phụ thuộc vào mã của bên thứ ba
- Nếu dùng framework thì nên thiết kế từng giao diện người dùng thành các component riêng biệt
-
Lý do CSS hoặc JavaScript không được tải hoặc không chạy
- Nguyên nhân có thể là lỗi mạng, tiện ích mở rộng trình duyệt, thời gian ngừng hoạt động của nhà cung cấp bên thứ ba, lỗi tra cứu DNS, hoặc bug do cập nhật trình duyệt
- Một số người dùng có thể cố ý tắt các tính năng của trình duyệt
-
Ứng dụng một trang (SPA)
- Không nên xây dựng dịch vụ dưới dạng ứng dụng một trang
- SPA làm giảm khả năng truy cập, đồng thời có thể gây ra các vấn đề như xử lý focus khi chuyển trang, không thể dùng nút quay lại/tiến tới
-
Kiểm thử dịch vụ
- Các thành phần phụ thuộc nhiều vào JavaScript hoặc framework JavaScript phải hoạt động trên nhiều trình duyệt và thiết bị khác nhau
- Cần kiểm thử về khả năng truy cập
-
Nghiên cứu tình huống và hướng dẫn liên quan
- Lý do nên dùng cải tiến lũy tiến
- Thiết kế cho nhiều loại thiết bị
- Cách kiểm thử hiệu năng frontend
- Hiểu về WCAG 2.2
Tóm tắt của GN⁺
- Cải tiến lũy tiến là phương pháp xây dựng website theo thứ tự HTML, CSS, rồi JavaScript
- Phương pháp này giúp tăng khả năng chịu lỗi của dịch vụ và giúp nó hoạt động trên nhiều trình duyệt, thiết bị khác nhau
- JavaScript nên đóng vai trò bổ trợ và cần cân nhắc các giải pháp thay thế
- Nên tránh ứng dụng một trang do các vấn đề về khả năng truy cập
- Việc kiểm thử dịch vụ phải bảo đảm khả năng truy cập trong nhiều môi trường khác nhau
1 bình luận
Ý kiến trên Hacker News
Khi sử dụng framework JavaScript, cần phải chứng minh được nó mang lại lợi ích gì cho người dùng
Những nhược điểm thường được chỉ ra của SPA
Ước gì toàn bộ Internet đều làm theo lời khuyên này
Nên ưu tiên các giải pháp đơn giản
Tò mò vì sao Linux không có trong danh sách
Có vẻ nhiều người thích cách tiếp cận này
Sử dụng HTML và dữ liệu được tải sẵn từ máy chủ, còn những gì có thể làm ở phía client thì xử lý ở phía client
Nhiều SPA có vấn đề, nhưng không phải mọi SPA đều có vấn đề
Kết xuất phía máy chủ cũng không phải lúc nào cũng tốt