2010-06-18 43 views
9

Gần đây tôi đã học khuôn khổ web Ruby Sinatra và tôi đang tìm kiếm nó tuyệt vời để sử dụng. Hầu hết các bài viết và blog tôi đã đọc về nó dường như giả định rằng nó chỉ tốt cho các trang web nhỏ hoặc các ứng dụng web 'nhỏ'. Điều này có đúng không? Một ứng dụng web hoàn chỉnh có thể được xây dựng ở Sinatra hay Ruby on Rails không?Giới hạn của Sinatra là gì?

+0

Tôi muốn nói không có giới hạn. ;-) – Derek

Trả lời

9

Bạn có thể, về lý thuyết, xây dựng một ứng dụng web hoàn chỉnh bằng Sinatra, và nó sẽ cung cấp cho bạn khả năng kiểm soát chính xác hơn Ruby on Rails.

Điều đó nói rằng, nó cũng loại bỏ tất cả các tính năng đẹp trên các đường ray mang lại cho bạn, chẳng hạn như kiến ​​trúc Model-View-Controller.

Nếu bạn đang tìm cách xây dựng một ứng dụng web với tương tác cơ sở dữ liệu, tôi khuyên bạn nên sử dụng Ruby on Rails.

Nếu bạn đang tìm cách xây dựng một API rất đơn giản hoặc một cái gì đó chỉ lấy một số dữ liệu và ném nó lên Twitter hoặc một cái gì đó, hãy tiếp tục và sử dụng Sinatra.

+4

Chính xác những gì về lực lượng Sinatra khiến bạn mất đi cấu trúc MVC? Tôi sẽ lập luận rằng bạn bị mất làm những điều "đường ray" nhưng không có gì ngăn cản bạn tổ chức ứng dụng của bạn theo cách MVC. Hơn nữa, nếu bạn yêu cầu đá quý ActiveRecord trong ứng dụng sinatra của bạn, bạn có tất cả các tương tác cơ sở dữ liệu từ các đường ray mà bạn có thể muốn. Sinatra cho phép bạn làm mọi thứ theo cách _your_. Tôi không nghĩ rằng nó giới hạn bạn trong bất kỳ cách nào. – Derek

+4

Tôi đã nói nó loại bỏ kiến ​​trúc cho nó, chứ không phải khả năng sử dụng nó. Tôi cũng không bao giờ nói nó giới hạn bạn (trên thực tế tôi đã nói nó cung cấp sự kiểm soát chính xác hơn). Quan điểm của tôi là Rails _provides_ (và phần nào bắt buộc) một kiến ​​trúc MVC vững chắc trong khi Sinatra thì không. –

5

Không có lý do gì mà không thể sử dụng để xây dựng trang web doanh nghiệp. Nó nhanh và trực quan. Hai điều quan trọng trong việc xây dựng một ứng dụng web lớn hơn. Trong khi nó thiếu nhiều tính năng của Rails, tôi vẫn chưa chạy vào một khối đường.

Cá nhân tôi thích bản chất mỏng của Sinatra. Nó bao gồm định tuyến thay vì làm cho nó đau đầu.

Tôi thường thấy mình đang vật lộn với Rails, trong khi tôi định cấu hình Sinatra theo ý thích của mình.

Đối với tương tác cơ sở dữ liệu, mongo_mapper + Sinatra hoạt động rất tốt.

Các vấn đề liên quan