Một lập trình viên đã chia sẻ cách tiếp cận không truyền thống để đọc RSS, bỏ qua các ứng dụng phía client truyền thống để ủng hộ việc render phía server. Thay vì sử dụng các ứng dụng đọc RSS chuyên dụng, phương pháp này tích hợp việc tổng hợp feed trực tiếp vào quy trình xây dựng blog cá nhân, tạo ra một blogroll có thể truy cập công khai và tự động cập nhật.
Vấn đề với các trình đọc RSS truyền thống
Sự thất vọng của lập trình viên với các trình đọc RSS hiện có xuất phát từ tính phức tạp và quá nhiều tính năng của chúng. Hầu hết các trình đọc RSS tập trung vào khả năng đọc offline, lưu trữ nội dung đầy đủ và đồng bộ hóa giữa các thiết bị. Tuy nhiên, nhiều người dùng chỉ đơn giản muốn nhận thông báo về các bài viết mới thay vì một môi trường đọc hoàn chỉnh. Các giải pháp phía client truyền thống cũng gặp phải các rào cản kỹ thuật, đặc biệt là các hạn chế CORS ngăn JavaScript tải feed từ các domain bên ngoài.
Thảo luận cộng đồng cho thấy sự hiểu biết không đồng nhất về cách tiếp cận này. Một số lập trình viên ngay lập tức nắm bắt được sự tinh tế của giải pháp, trong khi những người khác đặt câu hỏi về tính cần thiết của nó khi đã có các lựa chọn thay thế như The Old Reader hoặc Liferea.
Các giải pháp RSS thay thế được đề cập:
- The Old Reader: Công cụ tổng hợp RSS trực tuyến với khả năng đồng bộ offline
- Liferea: Trình đọc RSS dành cho Linux với tính năng nhập/xuất OPML
- GReader: Ứng dụng di động để đọc RSS offline
- Các trình đọc desktop truyền thống: Ứng dụng đầy đủ tính năng với trình duyệt tích hợp
Tạo trang tĩnh như giải pháp RSS
Giải pháp được triển khai xây dựng một bộ tổng hợp feed cá nhân hóa như một phần của quy trình tạo trang tĩnh. Hệ thống đọc từ một tệp văn bản đơn giản chứa các URL feed RSS, tải ba bài viết mới nhất từ mỗi feed, và tạo ra một trang HTML hiển thị tất cả các bài viết gần đây được sắp xếp theo ngày. Cách tiếp cận này loại bỏ nhu cầu quản lý trạng thái phía client hoặc đồng bộ hóa giữa các thiết bị.
Một quy trình GitHub Actions xây dựng lại blogroll hàng ngày vào lúc nửa đêm, đảm bảo nội dung mới mà không cần can thiệp thủ công. Toàn bộ hệ thống chỉ yêu cầu mã tối thiểu - khoảng 50 dòng TypeScript sử dụng Deno và một thư viện phân tích RSS cơ bản.
Ngăn xếp công nghệ:
- Runtime: Deno v2.x
- Thư viện phân tích cú pháp: @rss để xử lý feed
- Triển khai: GitHub Actions với cron job hàng ngày (0 0 * * *)
- Đầu ra: HTML tĩnh được lưu trữ trên GitHub Pages
- Định dạng Feed: Hỗ trợ cả RSS và Atom feeds
Phản hồi cộng đồng và các lựa chọn thay thế
Phản hồi của cộng đồng lập trình viên làm nổi bật tính liên quan đang diễn ra của các feed RSS trong năm 2025. Nhiều lập trình viên vẫn phụ thuộc nhiều vào RSS để tiêu thụ tin tức hàng ngày, đặc biệt trong các lĩnh vực kỹ thuật nơi hầu hết các blog duy trì feed RSS. Tuy nhiên, cuộc thảo luận cũng tiết lộ sự thất vọng với độ phức tạp của giải pháp được đề xuất.
Hãy nói với tôi rằng bạn là lập trình viên JavaScript thích phát minh lại bánh xe, mà không cần nói với tôi rằng bạn là lập trình viên JavaScript thích phát minh lại bánh xe
Những người chỉ trích lập luận rằng các giải pháp hiện có đã giải quyết các vấn đề đã nêu. Các dịch vụ như The Old Reader cung cấp tổng hợp trực tuyến với khả năng đọc offline, trong khi các ứng dụng desktop như Liferea cung cấp quản lý RSS mạnh mẽ mà không có chi phí xây dựng các giải pháp tùy chỉnh.
Chi tiết triển khai kỹ thuật
Giải pháp sử dụng runtime Deno với thư viện phân tích RSS của bên thứ ba để tải và xử lý feed. Hệ thống xử lý lỗi một cách khéo léo, tiếp tục xây dựng blogroll ngay cả khi các feed riêng lẻ không tải được. HTML được tạo ra tích hợp liền mạch với thiết kế blog hiện có, tạo ra trải nghiệm người dùng gắn kết.
Cách tiếp cận này mang lại một số lợi thế: độc lập thiết bị, cập nhật tự động, khả năng chia sẻ công khai và lợi ích SEO tiềm năng cho các blog được theo dõi. Tuy nhiên, nó đòi hỏi chuyên môn kỹ thuật để triển khai và duy trì, khiến nó không phù hợp với người dùng không am hiểu kỹ thuật.
Triển khai Code:
- Xử lý Feed: ~30 dòng TypeScript để fetch và parse các RSS feed
- Tạo HTML: ~20 dòng code kiểu JSX để render
- Tự động hóa Build: GitHub Actions workflow với ubuntu-latest runner
- Lưu trữ Dữ liệu: File text đơn giản (blogroll.txt) với một URL trên mỗi dòng
- Xử lý Lỗi: Xử lý lỗi một cách nhẹ nhàng cho các lỗi fetch feed riêng lẻ
Kết luận
Mặc dù cách tiếp cận RSS phía server này đại diện cho một giải pháp kỹ thuật thú vị, nhưng lợi ích thực tế của nó vẫn còn gây tranh cãi. Phương pháp này hoạt động tốt cho các lập trình viên thoải mái với các trình tạo trang tĩnh và quy trình xây dựng tự động, nhưng các trình đọc RSS truyền thống vẫn tiếp tục phục vụ hầu hết người dùng một cách hiệu quả. Cuộc thảo luận làm nổi bật cách mà các người dùng khác nhau có nhu cầu khác nhau từ công nghệ RSS, từ thông báo đơn giản đến hệ thống quản lý nội dung toàn diện.
Tham khảo: RSS Server Side Reader