Sự ra mắt của Rwf, một framework web toàn diện mới cho Rust, đã làm dấy lên những cuộc thảo luận trong cộng đồng lập trình viên về vai trò của các framework theo quan điểm riêng và các mô hình kiến trúc trong phát triển web hiện đại. Mặc dù Rust đã có một số framework web như Axum, Rocket và Actix, Rwf hướng đến việc lấp đầy khoảng trống bằng cách cung cấp cách tiếp cận tích hợp sẵn tương tự như Ruby on Rails hoặc Django.
Cuộc chiến Framework tiếp diễn
Cuộc tranh luận tập trung vào một số khía cạnh chính của phát triển web:
Tổ chức MVC và Logic nghiệp vụ
Một phần đáng kể của cuộc thảo luận xoay quanh việc logic nghiệp vụ nên đặt ở đâu trong các ứng dụng web hiện đại. Trong khi một số lập trình viên ủng hộ việc giữ logic nghiệp vụ trong tầng model theo mô hình Fat Model, Skinny Controller, những người khác lại cho rằng nên có một tầng service riêng để xử lý các hoạt động nghiệp vụ phức tạp.
Cộng đồng dường như chia rẽ về việc sử dụng callbacks và hooks, với nhiều lập trình viên cảnh báo về những thách thức trong việc gỡ lỗi mà chúng có thể gây ra. Như một lập trình viên đã nhận xét, những vấn đề tương tự đã được quan sát thấy với Django signals và Symfony events, cho thấy đây là một mô hình cần được xem xét cẩn thận.
Triết lý Framework
Rwf định vị mình là một giải pháp toàn diện, trái ngược với cách tiếp cận của Go là chủ yếu dựa vào thư viện chuẩn. Điều này đã làm dấy lên cuộc tranh luận về ưu điểm của cả hai cách tiếp cận:
- Tích hợp sẵn : Rwf cung cấp hỗ trợ tích hợp cho ORM, xác thực, phiên làm việc, templates và các tác vụ nền
- Hỗ trợ Migration : Độc đáo với khả năng tương thích WSGI server cho việc chuyển đổi dần dần từ các ứng dụng Python
- Template Engine : Bao gồm ngôn ngữ template riêng tương tự như ERB (Ruby)
Các vấn đề kỹ thuật
Một số khía cạnh kỹ thuật đã thu hút sự chú ý:
- Lựa chọn ORM : Quyết định tạo một ORM mới thay vì sử dụng các giải pháp hiện có như Diesel đã được thảo luận, với tác giả trích dẫn tính linh hoạt và công thái học là các yếu tố chính
- Hệ thống Template : Trong khi một số người đặt câu hỏi về sự cần thiết của một ngôn ngữ template mới, tác giả lập luận rằng sự tương đồng với ERB khiến nó quen thuộc với các lập trình viên Rails
- Ảnh hưởng đến hiệu suất : Việc tích hợp khả năng tương thích WSGI đã làm dấy lên lo ngại về triển khai sản phẩm, với các SRE khuyến nghị sử dụng reverse proxies trong môi trường production
Hướng phát triển
Framework này hiện đang trong giai đoạn phát triển ban đầu và chưa sẵn sàng cho môi trường sản xuất. Tuy nhiên, nó đã thu hút sự quan tâm đặc biệt từ các lập trình viên đang tìm cách chuyển đổi từ các framework Python/Ruby sang Rust trong khi vẫn duy trì các mô hình phát triển quen thuộc.
Dự án chào đón các đóng góp và bao gồm lộ trình cho các tính năng trong tương lai, bao gồm cải thiện tài liệu và bổ sung chức năng.
Tình trạng hiện tại
- Đang trong giai đoạn phát triển ban đầu
- Tài liệu đang được tích cực cải thiện
- Sự quan tâm ngày càng tăng từ cộng đồng, đặc biệt là từ các lập trình viên Python/Ruby
- Thảo luận tích cực về các quyết định kiến trúc và best practices
Sự xuất hiện của Rwf góp phần vào sự phát triển liên tục của hệ sinh thái phát triển web của Rust, đặc biệt là trong không gian của các framework đầy đủ tính năng nhằm cung cấp trải nghiệm phát triển có định hướng và theo quan điểm rõ ràng hơn.