2010-03-14 34 views
6

Tôi đã làm việc quá lâu với PHP và chán với nó. Tôi cũng muốn học một ngôn ngữ mới.Đường ray hoặc Sinatra? Điều gì là tốt để bắt đầu học cho một lập trình viên PHP?

Tôi đã sử dụng Ruby và thích nó. Tôi phải quyết định giữa Rails và Sinatra, vậy bạn muốn giới thiệu cái nào? Có đúng là Sinatra không thể được sử dụng để xây dựng các ứng dụng phức tạp, và nó chỉ dành cho các ứng dụng đơn giản?

+0

Đúng như xác nhận rằng Rails không thể được sử dụng để xây dựng các ứng dụng đơn giản và chỉ dành cho các ứng dụng phức tạp. –

+0

Rails có thể được sử dụng để xây dựng bất kỳ loại ứng dụng web thực sự. – fivetwentysix

Trả lời

8

Đi kèm với Rails, nó có nhiều tài liệu/sách hơn Sinatra. Nó cũng là "chủ đạo" hơn và nhiều IDE xử lý đường ray theo cách đặc biệt của công dân hạng nhất, vì vậy bạn nên bắt đầu với nó.

Trong khi người ta có thể viết bất kỳ loại ứng dụng nào trên hai thiết bị, Sinatra được thiết kế đơn giản hơn, do đó, trên Sinatra, một ứng dụng phức tạp có thể cần thêm nỗ lực.

+0

Từ những gì tôi đã đọc cho đến nay, Sinatra chỉ đưa ra những điều cơ bản và thoát ra khỏi con đường, trong khi Rails buộc bạn phải làm mọi thứ theo một cách nhất định. Làm thế nào là đúng? –

+0

Thật vậy Sinatra đưa ra những điều cơ bản (định tuyến và kiểm soát trong một DSL đơn giản), nhưng Rails không "cản trở bạn", * au contraire *. Và btw, một ứng dụng Sinatra có thể được nhúng trong một ứng dụng Rails: http://gist.github.com/81199 – clyfe

+0

có nghĩa là, rằng tôi không thể sử dụng Sinatra cho các dự án phức tạp? –

4

bạn chắc chắn nên biết cả hai vì chúng được tạo ra cho các mục đích khác nhau. sinatra là một khung vi mô cho các ứng dụng nhỏ. đường ray là một khung mvc toàn diện với nhiều người trợ giúp cho hầu hết mọi thứ.

tôi sẽ nói rằng sinatra dễ học hơn nếu bạn biết ruby, vì nó rất nhỏ và tuân theo các thành ngữ ruby ​​phổ biến. nhưng cũng không khó để học đường ray nữa. tài liệu là rất tốt và bạn sẽ tìm thấy rất nhiều hướng dẫn và howto trên web.

như tôi đã nói, thật sự rất tốt khi biết cả hai để bạn có thể chọn đúng công cụ cho công việc.

16

Nếu bạn là một "người mới chơi" với Ruby có lẽ bạn nên tiếp cận Sinatra trước: nó thực sự nhỏ, được ghi chép và dễ học. Sau đó, đối với các ứng dụng web phức tạp hơn, bạn nên thử Ruby On Rails.

http://railsmagazine.com/issues/5 là bài viết giới thiệu PDF miễn phí mà tôi đã viết cho Tạp chí Rails.

4

Lần đầu tiên với Sinatra. Nó thực sự đơn giản và dễ hiểu, cộng với nó bao gồm các nguyên tắc cơ bản của Rails (kiến trúc MVC, vv). Sau đó, bạn có thể chuyển sang Rails. Ngoài ra, với kiến ​​thức Sinatra của bạn, bạn có thể viết các ứng dụng Sinatra trong Rails metal, điều này có thể giúp dễ dàng tạo các API.

0

Bạn có thể muốn xem Ramaze ngoài hoặc thay vì Sinatra. Ramaze có vẻ như đang ngồi giữa Ruby on Rails và Sinatra đến tận các tính năng và khả năng sử dụng.

+0

oh, bây giờ tôi thậm chí còn bối rối hơn ... Tôi phải lựa chọn giữa ba, thay vì hai :( –

8

Oh xin vui lòng Oh đừng bắt đầu với đường ray. Nó giống như đi vào trận chiến lần đầu tiên chống lại một bộ phận Panzer. Tốt hơn để bắt đầu với một số người bản địa bồn chồn và làm việc theo cách của bạn. Được rồi, đó không phải là một sự tương tự tuyệt vời nhưng đường ray là thời gian quá lớn để học hỏi. Bạn có thể nhặt Sinatra rất nhanh và sau đó di chuyển đến ray là một bước tiến hợp lý. Cùng một thứ chỉ là những thứ hữu ích hơn. Với đường ray có rất nhiều điều khó hiểu. Họ thêm nhiều thứ vào ngôn ngữ, vv Nếu bạn không biết Ruby và các lớp nền tảng thì chỉ cần làm Sinatra. Thật nhanh chóng, dễ dàng và bạn không phải tìm hiểu về di chuyển, cào, v.v.

1

Hoặc Rails hoặc Sinatra là một lựa chọn học tập tuyệt vời.

Tôi bắt đầu làm việc trên một dự án ở Rails nơi tôi không biết gì về phát triển web hoặc Ruby October 2009 (đồng sáng lập của tôi đã giúp tôi phá vỡ một số rào cản ban đầu và đưa tôi đến RTFM). Tôi gặp phải một số vấn đề nhưng có thể mã hóa logic kinh doanh khá dễ dàng. Gần đây tôi bắt đầu chuyển một dự án sang công cụ ứng dụng và sử dụng Sinatra như một khuôn khổ và nó là một quá trình học tập đáng kinh ngạc. Chủ yếu là để tìm hiểu về tất cả những điều mà Rails đã làm tự động.Nó cũng hữu ích khi nhìn thấy một định nghĩa đơn giản của các thành viên lớp và phương pháp kiên trì của chúng (mặc dù việc di chuyển không may là một pita, các quá trình nền để thay đổi định dạng).

Bạn có thể xem xét nơi bạn sẽ triển khai.

Vì tôi chủ yếu quan tâm đến các ứng dụng thẳng về phía trước với chi phí thấp nên cả Heroku và Google App Engine đều phù hợp. Đường ray/ActiveRecord/Sqlite và Heroku hoạt động sưng lên Sinatra/Datamapper/Datastore trên luồng công cụ Google App.

Rails cũng đang chạy thành công trên công cụ ứng dụng nên lựa chọn này cũng đang mở. IMO Heroku dễ triển khai hơn một chút.

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