Tương lai của phần mềm web là HTML-over-WebSocket
(alistapart.com)-
SPA + API + JSON làm chậm quá trình phát triển và chu kỳ phát hành
-
Lập luận rằng bằng cách sử dụng WebSocket hai chiều, có thể render phía máy chủ, tạo mẫu nhanh, SEO trực quan và phát triển tính năng nhanh chóng
-> Truyền HTML thay đổi hoặc văn bản đơn giản qua socket
-> Để máy chủ thực hiện xác thực thay vì xử lý các kiểm tra giá trị phức tạp và các đối tượng lỗi ở phía client
-> Kiểm tra trạng thái kết nối của người dùng bằng việc xem kết nối socket có đang hoạt động hay không
-> Cũng có thể dễ dàng hỗ trợ chat nhiều người dùng hoặc cộng tác tài liệu
-
Sự trở lại của Rails: Turbolinks, Stimulus, StimulusReflex, CableReady và ViewComponent của GitHub
-
Hotwire của Basecamp cũng là cùng một công nghệ
7 bình luận
Có vẻ
serverside blazorcủa dotnet cũng hoạt động tương tự. Nhưng khi thực sự dùng cái này trong production thì thường gặp khá nhiều tình huống mệt mỏi...Ngoài việc đóng gói cả server lẫn client vào Electron để phân phối thì tôi thật sự không thấy có ưu điểm gì rõ rệt.
Bạn có thể chia sẻ trải nghiệm sử dụng cụ thể được không?
Tuy nhiên, một khi đã tạo sẵn API endpoint thì có thể dùng cho cả mobile, web lẫn desktop nên tính đa dụng rất tốt; vì vậy tôi không chắc có thể gọi WebSocket là tương lai hay không.
Elixir Phoenix LiveView và RoR Stimulus Reflex cũng là những khái niệm tương tự,
cũng có câu chuyện rằng Chris McCord ban đầu làm bằng Rails nhưng vì các vấn đề mang tính cấu trúc nên đã chuyển sang Elixir.
Lại là cái tiếng quay vòng vòng...
Có vẻ đây cũng là một góc nhìn đáng để tham khảo.
Tôi đồng ý rằng khi Javascript được dùng ở khắp mọi nơi, các khái niệm như SPA, SSR... đã trở nên quá nhiều và mọi thứ cũng trở nên phức tạp quá mức.
Vì WebSocket hỗ trợ xử lý hai chiều nên có vẻ nó sẽ được tận dụng nhiều hơn, nhưng cá nhân tôi vẫn hy vọng sẽ xuất hiện một thứ gì đó còn tiện hơn cả Hotwire.
(Có thể là do tôi không biết rõ lắm) nhưng dạo gần đây có một điểm tôi thấy khá buồn cười: với web app React + Laravel, nếu chỉ phía server thay đổi thì nội dung triển khai chỉ là ký hiệu phiên bản và vài dòng mã đã đổi, còn khi frontend thay đổi thì phải build frontend app và kích thước triển khai cũng tương đối lớn hơn nhiều nên tôi chỉ biết bật cười. Việc áp dụng tạm thời các tùy chỉnh gấp cũng khó nữa. Có lẽ là vì tôi cứ đem so với trải nghiệm phát triển trước đây.