2011-12-12 35 views
9

Tôi đang trong quá trình phát triển một trang web mới. Mức độ phức tạp của trang web sẽ ở đâu đó theo thứ tự của Yelp.com. Tôi khá mới với Ruby nhưng quyết định tôi muốn phát triển phụ trợ bằng cách sử dụng nó. Trong quá trình tôi tình cờ gặp Sinatra. Tôi thực sự yêu sự đơn giản của định tuyến trong Sinatra và quyết định sử dụng nó làm điểm khởi đầu cho sự phát triển của tôi. Có vẻ như hầu hết mọi nơi đều nói rằng Sinatra rất tuyệt vời để phát triển nhanh và cho "các ứng dụng web nhỏ". Có một vấn đề mở rộng vốn có với Sinatra hay là những nhận xét xuất phát từ thực tế là bạn về cơ bản phải xây dựng mọi thứ từ đầu? Mọi nhận xét về ý kiến ​​của bạn về việc sử dụng Sinatra làm cơ sở cho một ứng dụng web có quy mô lớn sẽ được đánh giá cao.Có gì sai khi sử dụng Sinatra để phát triển một trang web đầy đủ không?

Tôi không chắc liệu stackoverflow có phải là nơi chính xác để đặt câu hỏi ý kiến ​​như thế này hay không, nhưng đó là tài nguyên duy nhất mà tôi hiện đang sử dụng để thực sự nhận được phản hồi về điều gì đó như thế này.

Trả lời

8

Tôi đã xây dựng hai dự án khá phức tạp của mình bằng Sinatra và rất thích quá trình này. Điều tôi thích là nó khuyến khích bạn xem xét API của ứng dụng web mà bạn đang xây dựng phía trước hơn là suy nghĩ.

Điều tôi có xu hướng làm bây giờ là làm cho API hoạt động và được thử nghiệm và sau đó xây dựng giao diện người dùng đối mặt với trình duyệt bằng cách sử dụng jQuery. Tất cả tương tác giữa giao diện người dùng và mặt sau được thực hiện thông qua API.

Bằng cách chia nhỏ các phương thức trợ giúp thành các thư viện riêng biệt và tận dụng lợi thế của các thư viện Ruby on Rails như ActiveRecord, v.v ... tôi thấy mã không khó bảo trì hơn bất kỳ mã nào khác mà tôi đã viết và rất dễ kiểm tra.

Tôi đã viết một số tuyến đường chung đơn giản cho phép tôi phân cụm nội dung cấp trang (viết bằng markdown, textile hoặc haml) bằng cách sử dụng ý tưởng tương tự cho dự án Nesta có nghĩa là 99% tuyến đường của tôi là API so với cuộc gọi hiển thị trang. Tôi đã thêm một số trợ giúp gọn gàng để xây dựng điều hướng dựa trên quy tắc quá thực sự giúp đỡ quá.

Vì vậy, trong ngắn gọn câu trả lời là không, không có gì sai khi xây dựng các trang web lớn với Sinatra, và trên thực tế tôi tin rằng nó có thể dẫn đến các ứng dụng web được thiết kế tốt hơn.

+0

Tôi hơi xa lạ với triết lý gọi điện api so với trang này. Bạn có thể chỉ cho tôi một nguồn để đọc thêm? Cảm ơn bạn đã trả lời, btw. – wuliwong

3

Xây dựng một trang web lớn với Sinatra sẽ không gặp phải vấn đề về quy mô, nhưng chắc chắn sẽ cung cấp cho bạn một thời gian rất khó duy trì mã. Mặc dù tôi yêu Sinatra, quy ước về cấu hình trong đường ray thắng tay. Cũng lưu ý rằng nó không phải là sai/xấu/không thể sử dụng Sinatra cho một trang web lớn, chỉ là nó là khó làm điều đó đúng và bạn sẽ không muốn mình hối hận sau này. Nếu bạn vẫn bướng bỉnh khi sử dụng Sinatra, bạn có thể thử Padrino về cơ bản là một trình bao bọc trên Sinatra (tôi chưa bao giờ sử dụng nó để giúp bạn về điều đó)

+0

Tôi đã nghe nói về Padrino và những gì bạn đang nói về quy ước là điều tôi lo lắng. Tôi chắc chắn sẽ nhìn vào Padrino. Cảm ơn! – wuliwong

+0

Chỉ cần một chút bình luận thêm về Padrino, họ khuyên bạn nên học Sinatra trước và họ nói rằng bạn thường có thể bao gồm những gì bạn đã làm với Sinatra vào một ứng dụng Padrino. Nghe có vẻ quá huyền diệu, nhưng Padrino khá mô-đun để bạn có thể chọn và chọn các phần của nó mà không cần phải sử dụng toàn bộ khung nếu bạn chọn. – wuliwong

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