Cộng đồng phát triển web một lần nữa chia rẽ trên một chiến trường quen thuộc: liệu các framework JavaScript có làm cho các website trở nên phức tạp một cách không cần thiết hay không. Một bài viết gần đây chỉ trích các thực hành phát triển web hiện đại đã khơi mào những cuộc thảo luận sôi nổi giữa các nhà phát triển, bộc lộ những khác biệt triết lý sâu sắc về cách các website nên được xây dựng.
Cuộc tranh luận tập trung xung quanh mối lo ngại ngày càng tăng rằng nhiều website đã trở nên cồng kềnh, chậm chạp và khó bảo trì. Những người chỉ trích cho rằng các nhà phát triển đã ưu tiên trải nghiệm của chính họ hơn nhu cầu người dùng, dẫn đến các trang web yêu cầu các gói JavaScript khổng lồ chỉ để hiển thị nội dung đơn giản.
Các vấn đề hiệu suất website đã được xác định:
- Nút quay lại bị lỗi trong các ứng dụng một trang
- Markup không thể truy cập và các vấn đề điều hướng bằng bàn phím
- URL không hoạt động như các liên kết web truyền thống
- Nội dung không thể được chọn hoặc sao chép
- Vị trí cuộn trang bị đặt lại một cách bất ngờ
- Sự không nhất quán trong theo dõi phân tích
- Thời gian tải chậm do các gói JavaScript có dung lượng lớn
Vấn Đề Mỉa Mai
Một trong những lời chỉ trích gay gắt nhất đến từ các nhà phát triển khi họ nhận ra website của bài viết gốc tải 754 kilobyte JavaScript qua 13 yêu cầu riêng biệt. Điều này đã châm ngòi cho những cáo buộc về sự đạo đức giả, với một số người đặt câu hỏi về mức độ nghiêm túc của tác giả đối với những lập luận của chính họ về tình trạng phình to của JavaScript .
Phản ứng này làm nổi bật một mô thức phổ biến trong những cuộc tranh luận này: ngay cả những người ủng hộ các phương pháp đơn giản hơn thường dựa vào chính những công nghệ mà họ chỉ trích. Trang web sử dụng WordPress , jQuery và nhiều plugin khác nhau cho các tính năng như điều chỉnh kiểu chữ mà có thể được xử lý chỉ bằng CSS hiện đại.
Mệt Mỏi Framework Đối Đầu Với Sự Ổn Định
Cuộc thảo luận đã bộc lộ những khác biệt thế hệ trong trải nghiệm của các nhà phát triển. Một số người chỉ ra giai đoạn từ 2015 đến 2020 là đặc biệt hỗn loạn, khi các nhà phát triển thường xuyên chuyển đổi giữa Angular , Ember , React và Vue . Trong thời gian này, các thực hành tốt nhất thay đổi quá nhanh đến nỗi các ứng dụng được xây dựng theo các khuyến nghị hiện tại sẽ được coi là lỗi thời trong vòng vài tháng.
Tuy nhiên, nhiều nhà phát triển hiện tại phản bác lại câu chuyện này. Họ lập luận rằng sự bất ổn của framework thường bị phóng đại, và các đội ngũ thực dụng không đuổi theo mọi xu hướng mới. Hệ sinh thái JavaScript được báo cáo là đã ổn định đáng kể kể từ năm 2020, với các mô thức đã được thiết lập và ít thay đổi đột ngột hơn trong các phương pháp được khuyến nghị.
Dòng thời gian phát triển của các framework:
- 2015-2020: Giai đoạn "mệt mỏi với framework" với những thay đổi liên tục giữa Angular , Ember , React , và Vue
- 2020-Hiện tại: Sự ổn định gia tăng trong hệ sinh thái JavaScript với các mẫu thiết kế đã được thiết lập
- Xu hướng hiện tại: Quay trở lại với server-side rendering và các nguyên tắc cơ bản của web truyền thống trong các framework hiện đại
Khoảng Cách Đào Tạo
Một phần đáng kể của cuộc tranh luận tập trung vào giáo dục nhà phát triển và thực hành tuyển dụng. Một số nhà phát triển có kinh nghiệm cho rằng vấn đề thực sự không phải là JavaScript , mà là đào tạo không đầy đủ và các công ty cố tình thuê những người không đủ năng lực để làm công việc phức tạp.
Không ai đào tạo các nhà phát triển JavaScript đúng cách và các nhà tuyển dụng cố tình thuê những người không đủ năng lực để làm công việc. Tất nhiên kết quả sẽ tệ.
Quan điểm này cho rằng những vấn đề tương tự sẽ xảy ra bất kể công nghệ nào nếu các nguyên tắc phát triển web cơ bản không được hiểu đúng cách.
Trải Nghiệm Người Dùng Đối Đầu Với Trải Nghiệm Nhà Phát Triển
Cộng đồng vẫn chia rẽ về việc liệu các framework JavaScript hiện đại có thực sự cải thiện trải nghiệm người dùng hay không. Những người ủng hộ chỉ ra các ứng dụng như Gmail và các ứng dụng email trên web khác như những ví dụ về JavaScript cho phép trải nghiệm người dùng thực sự tốt hơn so với các lựa chọn thay thế trên desktop truyền thống.
Những người chỉ trích phản bác rằng hầu hết các website không cần chức năng giống như ứng dụng và sự phức tạp được đưa vào bởi các framework hiện đại tạo ra nhiều vấn đề hơn là giải quyết. Họ lập luận rằng các tính năng như nút quay lại bị hỏng, markup không thể truy cập và thời gian tải chậm là hậu quả trực tiếp của việc đối xử với các website đơn giản như các ứng dụng phức tạp.
Cuộc tranh luận đã trở thành chu kỳ, với các bài viết và thảo luận tương tự xuất hiện thường xuyên trong các cộng đồng nhà phát triển. Một số nhà phát triển bày tỏ sự thất vọng với tính chất lặp đi lặp lại của những cuộc trò chuyện này, cho rằng cộng đồng đã bị mắc kẹt trong một vòng lặp vô tận của chỉ trích mà không có tiến bộ có ý nghĩa hướng tới các giải pháp.
Bất chấp những cuộc trao đổi gay gắt, ngày càng có sự công nhận rằng cả phương pháp đơn giản và phức tạp đều có chỗ đứng của chúng. Thách thức nằm ở việc chọn công cụ phù hợp cho từng trường hợp sử dụng cụ thể, thay vì mặc định sử dụng tùy chọn tinh vi nhất có sẵn.
Tham khảo: Javascript broke the web (and called it progress)