2009-05-03 9 views
6

Tôi muốn sử dụng một khung công tác nhẹ hơn Rails (Sinatra/Ramaze/Camping) nhưng lo ngại rằng bằng cách làm như vậy tôi sẽ không thể sử dụng nhiều thư viện được chia sẻ với Rails dưới dạng plugin. Đây có phải là mối quan tâm lớn hoặc hầu hết các plugin này có thể sử dụng được trên các khung công tác Ruby khác nhau không?Có bất kỳ nhược điểm tiềm ẩn nào trong việc sử dụng khung công tác Ruby ngoài Rails không?

Có bất kỳ nhược điểm tiềm năng nào khác trong việc sử dụng khung công tác Ruby ngoài Rails không?

Trả lời

9

Bạn vẫn có thể sử dụng gems trong tất cả các khung mà bạn đã đề cập, vì vậy, rất nhiều thứ có thể sử dụng lại được. Bạn muốn trao đổi trong một ORM mới, không có vấn đề gì. Muốn một cú pháp shmacy ưa thích làm nổi bật, không có vấn đề. Rails đã thực hiện một bước tiến lớn để chuyển khỏi mô hình plugin cũ để sử dụng đá quý độc quyền.

Nếu một trong các khung công tác khác phù hợp với nhu cầu của bạn, hãy sử dụng nó tốt hơn. Hãy ghi nhớ rằng khi nói đến tài liệu và mẫu ray có nhiều hơn nữa.

Nếu tôi đang học Ruby và muốn thử một khuôn khổ web tôi có thể sẽ đi với Rails không phải vì nó tốt hơn, nhưng vì nó có công cụ và tài liệu tốt hơn nhiều.

+0

+1 Rất nhiều plugin đường ray cũng có thể được tái cấu trúc làm đá quý với nỗ lực gần như không có. Chúng được phát hành dưới dạng plugin chỉ vì điều đó thuận tiện cho tác giả gốc. –

1

Hầu hết các mô-đun Ruby được Rails sử dụng (kể cả ActiveRecord) đều có thể được sử dụng mà không có Rails. Nhưng sau đó bạn mất thêm lợi ích của tích hợp được cung cấp bởi Rails. Bạn có thể phải làm việc nhiều hơn để dán các mô-đun Ruby vào khung bạn chọn. Cũng xin lưu ý rằng hầu hết tài liệu về các mô-đun Ruby được Rails sử dụng chỉ cho bạn biết cách sử dụng mô-đun đó với Đường ray.

0

Tôi nghĩ rằng không có plugin rails sẽ làm việc ra khỏi hộp với bất kỳ khuôn khổ thay thế, ngoại trừ ActiveRecord plugins (chẳng hạn như actions_as_nested_set vv) mà vẫn sẽ cần một số công việc ống nước (thiết lập $ LOAD_PATH và yêu cầu đúng tệp). Tôi muốn giới thiệu DataMapper cho ORM, không chỉ là cách nhanh hơn ActiveRecord, nhưng nó cũng được xây dựng rất mô-đun và bổ sung là đá quý thực sự mà bạn có thể dễ dàng cài đặt. Sự khác biệt, các plugin ActiveRecord chủ yếu là các bản vá lỗi khỉ có xu hướng phá vỡ với mọi phiên bản mới.

Sinatra không đi kèm với bất kỳ "goodies", không có Rakefiles, không có bộ xương, không có kịch bản/tạo ra, nhưng thực sự đó là những gì nó được viết cho. Bạn có thể dần dần "plumb in" tất cả các công cụ bổ sung. Ngoài ra còn có skeletons cho các ứng dụng sinatra đi kèm với một số bố cục cơ bản và mặc định, bạn có thể thấy các tính năng này hữu ích.

1

Một vấn đề nảy sinh khi bạn sử dụng các khung công tác khác như Sinatra, cắm trại, vv là đường ray cung cấp cho bạn cấu trúc đã được chứng minh cho tệp của bạn trong ứng dụng của bạn. Khung nhỏ hơn khá cởi mở và miễn phí.

Điều này có thể là một nhược điểm khi bạn đang làm việc với nhiều nhà phát triển khi bạn cần phải có cuộc trò chuyện về việc tạo ra các quy ước thay vì chỉ đơn giản là theo dõi họ.

1

Nếu bạn đã sử dụng Ruby trong vòng chưa đầy một năm, hãy liên kết với Rails, trừ khi bạn có nhu cầu rất rõ ràng được xử lý tốt hơn bởi một trong các khung công tác khác.

Các khung công tác nhẹ hơn, đáng chú ý nhất là Sinatra, có xu hướng phổ biến với những người biết chính xác những gì họ cần và không thể có thêm bất kỳ chi phí nào từ mã không sử dụng. Về cơ bản, bạn chọn toolchain của bạn, thay vì thường bị mắc kẹt với những gì Rails mang lại cho bạn. (Có, trong Rails, bạn có thể thay thế ActiveRecord, et al. Với các thư viện khác, nhưng nó không chính xác dễ dàng.Vì vậy, các khung công tác nhẹ hơn cung cấp cho bạn sự tự do hơn đáng kể, nhưng bạn cũng có khá nhiều việc phải làm trong nhiều trường hợp.