- Năm nay, sau khi thực hiện một dự án cá nhân bằng Go, HTMX và Templ, tôi đã quyết định từ bỏ việc dùng React
- Có thể tìm thấy nhiều lập luận thuyết phục trên trang web chính thức của HTMX về việc từ bỏ React để chọn HTMX, nhưng tôi cảm thấy không nhiều người nói về sự mệt mỏi khi quản lý phụ thuộc
- "Mệt mỏi với việc quản lý phụ thuộc" là gì?
- Trong dự án cá nhân cuối cùng dùng React của tôi (một từ điển tiếng Catalunya tương tác), tôi nhận ra mình đã dành quá nhiều thời gian chủ yếu cho việc cập nhật các phụ thuộc của gói React
- Khi cập nhật các gói lên bản phát hành mới nhất, những thay đổi lớn trong API xuất hiện và tôi phải dành thời gian để refactor mã
- Vì ứng dụng web đã được triển khai công khai trên một instance EC2, tôi muốn tiếp tục duy trì việc cập nhật phụ thuộc
- Liệu các bản phát hành major mới có thực sự cần thiết?
- Các gói như wouter (gói router cho React) và TanStackQuery (được dùng để lấy dữ liệu từ backend, cache và quản lý trạng thái) đã làm ứng dụng web hỏng nghiêm trọng do các bản cập nhật major
- Khi bản cập nhật major đầu tiên làm ứng dụng bị hỏng, tôi đã refactor mã mà không thắc mắc gì, nhưng đến lần thứ hai thì tôi bắt đầu đặt câu hỏi
- Tôi tự hỏi ứng dụng web thực sự nhận được lợi ích gì từ các bản phát hành major, ngoài các bản vá bảo mật
- Tôi tự hỏi việc phá vỡ API của các thành phần cốt lõi tới 5 lần có thật sự cần thiết hay không
- Tôi suy nghĩ về việc đã đánh mất bao nhiêu thời gian đáng lẽ có thể dùng để phát hành tính năng mới hoặc ra mắt sản phẩm khác
- Vấn đề thiếu thời gian
- Vì tôi không có nhiều thời gian dành cho các dự án lập trình cá nhân, tôi không muốn lãng phí thời gian refactor mã sau các bản cập nhật major của phụ thuộc
- Nếu bạn đang xây dựng sản phẩm cho khách hàng và dự định tính phí cho công việc bảo trì trong tương lai, thì việc dùng nhiều phụ thuộc không ổn định cũng không sao
- Tuy nhiên, nếu muốn tạo ra một sản phẩm chỉ cần bảo trì ở mức tối thiểu, tôi sẽ tránh xa hệ sinh thái JS
- Dùng Go+HTMX+Templ
- Lý do chính tôi dùng Go+HTMX+Templ cho các dự án cá nhân là vì các dự án Go cho phép tôi tập trung vào việc phát hành tính năng mà vẫn không bỏ qua các bản cập nhật phụ thuộc/bảo mật thông thường
- Bản thân ngôn ngữ Go vẫn duy trì thư viện chuẩn và đặc tả ngôn ngữ ổn định.
7 bình luận
HTMX có vẻ đang nhận được khá nhiều đánh giá tích cực.
Có lẽ nhiều người đang tìm đến HTMX như một giải pháp bổ trợ cho các ứng dụng dựa trên SSR.
Chắc tôi cũng nên thử một lần trong dự án phụ.
Tôi không chọn các thư viện TanStack vì chúng phức tạp quá mức cần thiết và chất lượng tài liệu trong vài năm gần đây cũng kém. Ngoài ra, chu kỳ thay thế của các gói npm quá ngắn nên tôi cũng thấy không nhất thiết lúc nào cũng phải cố bám vào phiên bản mới nhất.
Tuy vậy, khi làm việc ở công ty thì có lẽ không thể bỏ React được. Còn nếu là dự án cá nhân thì dùng gì cũng không quan trọng.
Nếu chỉ cần không nâng cấp các bản cập nhật major version thì vấn đề phụ thuộc cũng đâu quá lớn...?
Cách đây không lâu, tôi thấy có một tác vụ lập lịch chạy nội bộ công ty vẫn đang chạy bằng Python 2, và thật sự ngột ngạt.
Sau khi cân nhắc, tôi quyết định cứ để nguyên vì hiện tại nó vẫn chạy tốt. Nhưng chắc chắn không thể cầm cự mãi mà không cập nhật được.
Sự mệt mỏi vì quản lý dependency VS sự ngán ngẩm khi phải tự phát minh lại bánh xe
Đây là một cuộc tranh luận đã có từ lâu. Đúng là không nên dùng những bánh xe không cần thiết, nhưng thứ hôm nay chưa cần liệu ngày mai cũng sẽ không cần...
Tôi chưa từng dùng GO, nhưng dạo này thấy khá nhiều server được làm bằng GO. Dù chưa dùng ngay, có lẽ tôi cũng nên thử đụng vào một lần.
Có lẽ vì HTMX đang đi đầu trong nhóm công nghệ hợp thời nên cũng có khá nhiều người thử áp dụng, nhưng tôi nghĩ biết đâu hướng như
go + vecty + goxlại còn tốt hơn.Ý kiến Hacker News
Chia sẻ trải nghiệm từ bỏ các thư viện như React và phát triển ứng dụng web bằng Actix, Tera, HTMX; cho rằng stack này dễ bảo trì và được người dùng đón nhận tốt
Đánh giá các thư viện của Tanner có nhiều tính năng nhưng thiết kế API còn thiếu sót
Cảm thấy các ví dụ về HTMX chỉ chuyển sự phức tạp sang chỗ khác, và mô tả JSX là một cách thanh lịch để tránh dùng template
Cảm thấy việc nói rằng từ bỏ React là điều kỳ lạ, và cho rằng vấn đề không nằm ở React mà ở các phụ thuộc khác
Nhấn mạnh rằng khi cập nhật lên major version tiếp theo của một gói thì phải dự đoán trước sẽ có thay đổi
Chia sẻ trải nghiệm migrate một dự án SPA sang Django và HTMX, đồng thời cho biết đã giảm đáng kể sự phụ thuộc vào JavaScript
Cho rằng React không phải chịu trách nhiệm cho các gói bên thứ ba được bảo trì kém
Nghĩ rằng v5 của react-query lẽ ra phải tương thích với API của v3, nhưng cũng nói rằng việc migrate dễ và không bắt buộc
Đặt câu hỏi vì sao lại nâng cấp dù ứng dụng web không nhận thêm lợi ích nào
Cho biết sau khi từ bỏ React và nextjs để chuyển sang stack khác, mức độ căng thẳng giảm xuống và các bản cập nhật không còn gây cảm giác chán nản nữa