3 điểm bởi GN⁺ 2025-01-07 | 1 bình luận | Chia sẻ qua WhatsApp
  • Htmx ban đầu bắt nguồn từ intercooler.js, một thư viện ban đầu dựa trên jQuery cung cấp các tính năng động chỉ thông qua thuộc tính HTML
  • Một trong những lý do khiến jQuery được sử dụng lâu dài trên nhiều trang web là việc triển khai đơn giản, API nhất quán và khả năng sử dụng từng phần linh hoạt

htmx is the New jQuery

  • Htmx cũng hướng đến một thư viện ổn định có thể dùng trong thời gian dài như jQuery
  • Đặt mục tiêu tạo ra dịch vụ web “sẽ được duy trì trong 100 năm”, được thiết kế để luôn hữu ích và bền vững ngay cả khi không có những thay đổi lớn
  • Stability as a Feature
    • Chính sách cập nhật chính của htmx là duy trì tính ổn định của API và phần triển khai
    • Khi nâng cấp từ phiên bản cũ lên phiên bản mới, nhóm theo đuổi cách tiếp cận “ưu tiên người dùng hiện tại” để đảm bảo rằng nó vẫn hoạt động giống như cũ
  • No New Features as a Feature
    • Htmx hướng tới việc không thêm tính năng mới tùy tiện vào lõi htmx
    • Khi cần, những API mới mà trình duyệt hỗ trợ hoặc các phần mở rộng (extensions) sẽ giải quyết; lõi vẫn giữ nguyên tính đơn giản
  • Quarterly Releases
    • Dự kiến phát hành phiên bản mới theo quý (khoảng 3 tháng/lần)
    • Không ép buộc nâng cấp, và nếu đang dùng phiên bản 1.x ổn định thì vẫn nên giữ nguyên nếu không cần thiết

Promoting Hypermedia

  • Htmx không phải là giải pháp toàn diện cho toàn bộ ứng dụng web mà mục tiêu cốt lõi là phổ biến hóa điều khiển hypermedia
  • Vì vậy, cần cải thiện cách tích hợp với các template engine, backend, cơ sở dữ liệu và các công cụ khác bên ngoài htmx
  • Ngay cả khi không thêm tính năng mới cho htmx, nếu các công cụ xung quanh làm giàu hệ sinh thái hypermedia thì htmx cũng sẽ trở nên hữu dụng hơn
  • Supporting Supplemental Tools
    • Htmx cung cấp một số tính năng bằng thuộc tính HTML, nhưng việc chọn backend hay DB vẫn hoàn toàn thuộc về người dùng
    • Nó được thiết kế để tương thích với nhiều backend khác nhau, hỗ trợ các mẫu phát triển tập trung vào hypermedia
    • Bằng cách nhấn mạnh khái niệm “template fragment” giúp thay thế dễ dàng một phần trang, đóng góp cho sự trưởng thành của hệ sinh thái template engine
    • Ngày nay có nhiều trường hợp các template engine cung cấp tính năng fragment hơn trước
    • Vẫn còn nhiều cách để nâng cao trải nghiệm viết ứng dụng web dựa trên hypermedia
    • Htmx tập trung kích thích sự phát triển của các công cụ và công nghệ phụ trợ hơn là mở rộng lõi, để toàn bộ hệ sinh thái cùng tăng trưởng
  • Writing, Research, and Standardization
    • Htmx dự định lan tỏa và phát triển các ý tưởng về hypermedia nói chung hơn là mở rộng chính mình
    • Thông qua các dự án như Triptych v.v., họ nỗ lực đưa các ý tưởng của htmx vào chuẩn HTML
      • Mục tiêu cuối cùng là nền tảng web tự thân sẽ hỗ trợ các tính năng tương tự như htmx theo chuẩn
    • Mã htmx được viết hôm nay sẽ tiếp tục tương thích ổn định, nhưng vẫn kỳ vọng một ngày nào đó có thể tạo ra các mẫu giao diện người dùng tương tự mà không cần thư viện

Intercooler Was Right

  • Ngay từ thời intercooler.js, nhóm đã duy trì theo mô hình “stewardship” để tránh thay đổi lớn và không làm hỏng mọi thứ
  • Htmx cũng kế thừa triết lý này và hướng đến việc tồn tại lâu dài như một “công cụ chắc chắn và đáng tin cậy”

1 bình luận

 
GN⁺ 2025-01-07
Ý kiến từ Hacker News
  • Có người chia sẻ kinh nghiệm port hoàn tất từ HTMX sang Hotwire, cho rằng ý tưởng của HTMX rất hay nhưng việc thực thi còn thiếu sót. Họ nhấn mạnh HTMX có nhiều lỗi, không tương thích tốt với tính năng web và trình duyệt, và tài liệu còn thiếu. Sau khi chuyển sang Turbo và Stimulus, họ có được nền tảng mã ổn định hơn và dễ hiểu hơn.

  • Đồng ý với xu hướng đề cao độ ổn định và chỉ ra rằng xây dựng trên một lớp trừu tượng không ổn định có thể dẫn tới nhiều lỗi phát sinh trong tương lai. Dự án nhỏ thường không gặp vấn đề, nhưng nếu tính hữu ích được chứng minh thì có thể phát triển thành dự án lớn.

  • Có người chia sẻ kinh nghiệm xây dựng ứng dụng với Django và HTMX, nói rằng họ thích React hoặc Vue hơn nhưng HTMX có thể phù hợp với lập trình viên backend. Theo họ, HTMX không dễ kiểm thử bằng các thư viện frontend hiện đại.

  • Bày tỏ lo ngại về khả năng truy cập của HTMX và cho rằng họ muốn chắc chắn rằng nó tương thích với trình đọc màn hình. Họ cho rằng điều quan trọng không chỉ là dùng đúng thuộc tính ARIA mà là trải nghiệm thực tế của người dùng.

  • Họ cảm ơn vì HTMX đã giúp giảm khối lượng công việc của lập trình viên bằng cách xử lý một số tác vụ JavaScript theo hướng trừu tượng thanh nhã. Họ cho rằng HTMX đưa ra bài học hay về quản lý độ phức tạp.

  • Có người cho biết mình đang cố áp dụng HTMX tại một công ty phát triển phần mềm quy mô lớn và đang sử dụng nó như một bài tập tư duy trong mentor. Điều này khiến họ suy nghĩ lại liệu thực sự có cần SPA hay không.

  • Đồng ý với quan điểm “không có tính năng mới cũng là một tính năng”, đồng thời đánh giá tích cực việc không cần cập nhật phần mềm thường xuyên.

  • Họ bày tỏ hy vọng các tính năng của HTMX sẽ được tích hợp vào chuẩn HTML và đang thúc đẩy điều này thông qua dự án Triptych. Họ mong nó sẽ được tích hợp sẵn trong trình duyệt.