2 điểm bởi GN⁺ 2024-06-03 | 1 bình luận | Chia sẻ qua WhatsApp

HTML over the wire

Hotwire là một cách tiếp cận thay thế để xây dựng ứng dụng web hiện đại bằng cách truyền HTML thay vì JSON, qua đó giảm thiểu việc sử dụng JavaScript. Nhờ vậy, nó mang lại tốc độ tải trang đầu tiên nhanh, duy trì việc render template trên máy chủ và đem đến trải nghiệm phát triển đơn giản, hiệu quả hơn.

Nội dung chính

  • Tải trang đầu tiên nhanh: Truyền HTML để tăng tốc độ tải ban đầu.
  • Render template trên máy chủ: Render template trên máy chủ mà không cần mã JavaScript phức tạp ở phía client.
  • Trải nghiệm phát triển hiệu quả: Cung cấp môi trường phát triển đơn giản và hiệu quả hơn trong nhiều ngôn ngữ lập trình.
  • Framework của đội ngũ 37signals: Có thể sử dụng framework do đội ngũ 37signals, những người đứng sau HEY, thiết kế.

Ý kiến của GN⁺

  • Nâng cao năng suất phát triển: Giảm sử dụng JavaScript để nhà phát triển có thể xây dựng ứng dụng web đơn giản hơn.
  • Khả năng tăng tải máy chủ: Vì render template trên máy chủ nên tải máy chủ có thể tăng lên.
  • So sánh với SPA hiện có: Cần cân nhắc ưu và nhược điểm khi so với các ứng dụng single-page application (SPA) truyền thống.
  • Hỗ trợ nhiều ngôn ngữ: Có thể dùng trong nhiều ngôn ngữ lập trình nên có độ linh hoạt cao.
  • Các điểm cần cân nhắc khi áp dụng công nghệ: Cần xem trước các vấn đề về tương thích với hệ thống hiện có và hiệu năng.

1 bình luận

 
GN⁺ 2024-06-03
Ý kiến trên Hacker News
  • Với tư cách là người dùng ứng dụng web Hey, trải nghiệm trên kết nối chậm không tốt. Có thể là do lập trình viên không thêm trạng thái tải hoặc lỗi, hoặc cũng có thể do độ phức tạp hay bug.
  • htmx cung cấp tính năng chỉ với một tệp JavaScript duy nhất và chủ yếu được dùng cùng backend Go. Nó khá linh hoạt nên muốn thử.
  • Trước đây từng có cái nhìn tiêu cực về Hotwire/Livewire, nhưng giờ đã hiểu rằng điều đó còn tùy tình huống. Vì không viết ứng dụng hypermedia, nên chỉ sau khi đọc lại htmx và bài luận REST mới nhận ra điểm này.
  • Nếu đang tìm thứ gì đó tương tự trong PHP/Laravel thì khuyên dùng Livewire. Với các dự án phức tạp thì dùng React, nhưng việc có thể viết mọi thứ bằng Blade/PHP mang lại cảm giác mới mẻ.
  • Đây là một cách dễ triển khai PWA và thiên về phía lập trình viên hơn so với React/Vue/Svelte. Yếu tố quyết định cạnh tranh là có tích hợp được với framework backend hay không.
  • Chia sẻ liên kết tới một cuộc thảo luận trên HN năm 2020.
  • Nhớ lại cách tiếp cận từng dùng vào năm 2005 hoặc 2006: chặn click, thêm tham số và trả về một phần HTML đã được render.
  • Với các ứng dụng web không cần frontend có mức độ tương tác quá cao, Turbo và Stimulus giúp giảm bớt những thứ mà lập trình viên mới phải học.
  • Đã hiện thực một ý tưởng tối giản hơn gọi là Swap JS từ 2 năm trước, và nó hoạt động tốt trong một vài dự án.
  • Gần đây, một bài đăng online về việc modal của Hey bị chậm đã làm bùng lên tranh luận về Hotwire và Rails. DHH cho rằng video gốc đã bị giới hạn tốc độ, còn những người khác chỉ trích Hotwire vì phụ thuộc quá nhiều vào mạng.