2009-04-05 29 views
6

Trước khi tôi hỏi câu hỏi này, tôi đã xem qua các kết quả tìm kiếm cho 'Ruby on Rails' ở đây trên SO. không thể tìm thấy nhiều, nhưng sau (found on this page) thích thú tôiTính năng Ruby on Rails thú vị nhất là gì, tại sao lại chọn nó?

Cá nhân, tôi bắt đầu sử dụng .html, di chuyển lên php, cố gắng ruby ​​(ghét nó), phát hiện Python/Django .. và đã hạnh phúc mãi mãi kể từ đó.

Bây giờ, đây là giao dịch. Tôi chưa có ý định cá nhân về việc học Ruby on Rails, nhưng đó là chủ đề của một bài thuyết trình nhóm mà tôi đang làm tại Uni (và những người bạn của tôi đã chọn chủ đề RoR). Những người có mối hận thù chống lại các sinh viên hỏi các câu hỏi về bài tập về nhà nên rời khỏi ngay lập tức.

Câu hỏi này dành cho những người tìm thấy những người tìm thấy nó tuyệt vời. Tôi hy vọng sẽ tìm thấy những người yêu cầu RoR là tốt nhất (tác giả của những lời chứng thực ngoạn mục được tìm thấy tại trang web của RoR). Điều gì làm cho RoR nổi bật như vậy? Những gì bạn muốn các bạn trẻ của ngày hôm nay để tìm hiểu về nó ngay trước khi họ rời Uni với một mức độ. Hãy thử đề xuất điều gì đó có thể bắt nguồn từ tâm trí của họ và có thể điều hướng chúng theo cách RoR sau khi rời Uni.

Câu trả lời của bạn sẽ không chỉ giúp thuyết trình của tôi, mà còn có thể là nguồn sáng ngộ cho nhiều người.

+0

Cách thử ASP.NET MVC đã được phát hành chỉ vài ngày trước, nó kết hợp tất cả các tính năng thú vị của Django, Ruby on Rails và các khung tương tự khác. http://www.asp.net/mvc/ –

+0

Sau đó, đây phải là cộng đồng wiki. – Geo

+3

ASP.NET MVC có tất cả các tính năng thú vị của Rails? Có thật không? –

Trả lời

8

Tôi đã viết blog chi tiết về why I love Rails ba năm trước, nhưng đối với tôi đối với tính năng thú vị nhất là nó làm cho việc phát triển các ứng dụng web trở nên dễ dàng và thú vị.

+0

Tôi thực sự thích blog. Bắt đầu với Delphi vì những lý do tương tự như tôi đã làm. Tôi vẫn thích nó nhưng sử dụng nó ít hơn và ít hơn ... cảm ơn cho các liên kết –

+0

Cảm ơn, vui vì bạn thích nó! –

+0

+1 cho yếu tố vui nhộn. Tôi cũng sử dụng Delphi trong những ngày của phiên bản 4 & 6. –

4

Để tên một vài hạng mục:

  • cộng đồng nhà phát triển lớn (không nói python mà không)
  • ước qua những tảng đá cấu hình
  • có thể được sử dụng với JRuby/Chim chích để làm đường ray chạy trên Máy chủ ứng dụng Java. Rất quan trọng khi cố gắng kéo Enterprise vào thế kỷ 21 (Django có thể được sử dụng với Jython để làm việc với các máy chủ ứng dụng, nhưng ít trưởng thành hơn).
  • Khuôn khổ MVC giúp giữ cho ứng dụng của bạn được cấu trúc.
  • Giàn giáo và máy phát điện để di chuyển dự án của bạn.

Đường ray không cố gắng là cách duy nhất để thực hiện các ứng dụng web, đó không phải là mục đích. Nó đáp ứng một bộ nhu cầu cụ thể.

1

Động lực chính của tôi khi sử dụng Rails là ruby. Tôi chạm vào rất nhiều ngôn ngữ trước khi tôi tìm thấy ruby ​​và tôi không bao giờ cảm thấy mình có bất kỳ điều gì tốt trong bất kỳ ngôn ngữ nào. Khi tôi gặp tất cả mọi thứ ruby ​​chỉ có ý nghĩa. Đó là một ngôn ngữ đẹp; Dễ học nhưng khó làm chủ.

Tôi sử dụng đường ray vì nó phù hợp với nhu cầu của tôi với tư cách là nhà phát triển web và rất giàu tính năng.

+0

Tôi đọc blog của John Topley về lý do tại sao anh ấy yêu thích Rails và tôi đã phát triển một số thứ thích cho nó (mặc dù tôi chưa bao giờ thử nó). Thật tốt khi nghe bạn, tìm thấy nó tuyệt vời. Nhưng bất cứ điều gì đặc biệt? Ngôn ngữ Ruby - dễ học. Sẽ thêm vào bản trình bày của tôi. Còn động cơ nào để giới trẻ thử RoR? –

+0

Đó là một ngôn ngữ tuyệt vời để học lập trình oo. Tôi đã có một số java và php trong quá trình nghiên cứu của tôi nhưng tôi thực sự có oo-lập trình khi tôi làm ruby ​​/ rails, nơi tất cả mọi thứ là một đối tượng. Tại sao lại là Rails? Cộng đồng trẻ trung và sôi nổi, vô số plugin để bạn không phải phát minh lại bánh xe mọi lúc, db-agnostic vv. – Maran

4

Đây không phải là so sánh với Python - đó là danh sách chung những thứ tôi thích.

  • tôi viết ít hơn rất nhiều mã hơn tôi sẽ trong Java
  • ... Và đoạn code tôi làm ngay là rất có thể đọc được và duy trì
  • Tôi rất hiếm khi cần phải suy nghĩ mà một số mã đang sống hoặc làm thế nào để xử lý một nhiệm vụ chung - nó chỉ có vị trí của nó (ví dụdi cư được xây dựng trong)
  • Bạn không kết thúc bằng việc sử dụng nhiều công nghệ khác nhau trên một dự án (Java, EJB, Hibernate, JSP, SQL DDL, Ant, XML, taglibs)
  • Giải thích thay vì biên dịch giúp bạn tiết kiệm rất nhiều của thời gian phát triển
+0

Đây thực sự là một số điểm thực sự thú vị. Có lẽ nên nêu điều này như một câu hỏi riêng biệt, nhưng sẽ không. Chỉ cần sự tò mò của riêng tôi, bạn nghĩ sẽ mất bao lâu để một người có kinh nghiệm Delphi/Java/PHP/SQL học RoR? –

+0

Nó thực sự phụ thuộc vào người đó.Tôi đã có một nền tảng Java và tôi đã làm việc hiệu quả trong một tuần và có một sự hiểu biết rất tốt trong một vài tháng. Nếu bạn bắt đầu từ đầu, việc học RoR sẽ dễ dàng hơn nhiều so với JSP/Struts/Spring/Hibernate. – RichH

2

Thành thật mà nói, tôi thích thiết kế của Django nhiều hơn sau đó đường ray, nhưng tôi thích ruby ​​hơn sau đó python. Đó là một điều cá nhân, bởi vì tôi biết rất nhiều người cảm thấy ngược lại, nhưng tôi thấy ruby ​​là một trong những ngôn ngữ tao nhã nhất mà tôi từng sử dụng. Finders động

13
  • ActiveRecord của:

    Person.find_by_name_and_company_id('Jorge Luis Borges', 42) 
    
  • RJS, viết javascript trong ruby: Phạm vi

    page['element_id'].insert_html :bottom, :partial => 'comment' 
    
  • ActiveRecord của

    class Shirt < ActiveRecord::Base 
        named_scope :red, :conditions => {:color => 'red'} 
        named_scope :dry_clean_only, :joins => :washing_instructions, :conditions => ['washing_instructions.dry_clean_only = ?', true] 
    end 
    
.210

gọi Shirt.red sẽ truy vấn db với "color = 'đỏ'" điều kiện phần mát mẻ, đó là nếu bạn kết hợp nhiều hơn một phạm vi ví dụ:

 Shirt.red.dry_clean_only 

nó sẽ xây dựng chỉ là một truy vấn , với tất cả các điều kiện và tham gia cần thiết để đáp ứng cả hai phạm vi.

  • Di chuyển của ActiveRecord, có thể quản lý cấu trúc và dữ liệu db bằng bản ghi hoạt động, giống như trong mã của ứng dụng, với mức sử dụng tối thiểu sql.
+0

+1 cho tính năng phạm vi của ActiveRecord và công cụ tìm kiếm đa nguyên; nhưng tôi không đồng ý với rjs vì tôi không dùng Scriptaculous. –

+0

Prototype/Scriptaculous không phải là một yêu cầu khi tôi hiểu nó. Tôi tin rằng jQuery cũng được hỗ trợ cho RJS bằng cách sử dụng một plugin. –

+0

+1 để tham khảo Borges – Dan

3

Một trong những lý do chính cho tôi là nó đặt niềm vui trở lại vào lập trình web. Đột nhiên mọi thứ trở nên đơn giản và trong tầm tay. bạn không cần hàng tháng viết mã và không cần viết mã tấn. bạn có thể làm một số điều khá tuyệt vời chỉ với một vài dòng.

Và nó cảm thấy tốt :)

10

Công cụ giải quyết các vấn đề. Cho dù bạn đang nói về các công cụ trong cửa hàng của một công nhân gỗ hay là lập trình viên thì cũng chẳng sao cả. Điều gây ấn tượng với tôi về Rails (và vẫn là) là nó được trích xuất từ ​​khung được sử dụng để xây dựng các ứng dụng web trong thế giới thực và đã được cải thiện nhiều lần bởi những người đã mở rộng hoặc thay đổi nó sau khi sử dụng nó để xây dựng các ứng dụng web trong thế giới thực. Đó không chỉ là một bài tập học thuật.

Một số trong những vấn đề cụ thể nó giải quyết:

  • Bắt đầu một cách nhanh chóng. Nếu bạn đang tìm kiếm một ứng dụng web đang được thực hiện nhanh chóng, bạn có thể có những lựa chọn nào tốt hơn khung công tác chỉ định cấu trúc thư mục hiện có (một dựa trên MVC), với nhiều trình tạo mã và các lựa chọn đã được tạo sẵn cho bạn Các thành phần như thư viện JavaScript, hỗ trợ kiểm tra, ORM, vv Bạn có thể không đồng ý với tất cả các lựa chọn nhưng bạn có thể giả định chúng và có thứ gì đó sẽ hoạt động cho 80% hoặc nhiều hơn dự án và trao đổi sau này nếu bạn có sở thích.

  • Bảo trì lâu dài.Việc di chuyển cung cấp cho bạn các cách di chuyển dữ liệu về phía trước khi mã của bạn thay đổi, điều gì đó xảy ra trong bất kỳ ứng dụng thực tế nào, nhưng hầu hết các khung công tác đều không tính đến điều đó. Tách tất cả các phần của ứng dụng của bạn thành một hệ thống phân cấp thư mục đã được thiết lập với các khu vực để thử nghiệm, cơ sở dữ liệu, cấu hình, vv hỗ trợ bảo trì lâu dài cho dự án của bạn.

  • Lỗi của con người bị giảm. Các tệp cấu hình cung cấp cho bạn thêm cơ hội cho lỗi của con người. Các quy ước hợp lý, một khi đã học có thể tránh được những sai lầm như tên tập tin nhập sai cổ điển hoặc tên lớp trong một lỗi tập tin cấu hình.

  • Công nhận các chế độ phát triển khác nhau. Rails đã xây dựng hỗ trợ cho ý tưởng có một bộ cài đặt khác nhau để phát triển so với thử nghiệm so với sản xuất. Các ứng dụng thực cũng có điều này, nhưng thường khung công tác xung quanh chúng không thích ứng và bạn sẽ phải trao đổi các tệp cấu hình trong và ngoài để đạt được hiệu ứng tương tự (xem lỗi của con người ở trên).

  • Thực tiễn tốt. Một số điều tôi đã đề cập ở trên nắm lấy và khuyến khích thực hành lập trình tốt (MVC, bố trí dự án tiêu chuẩn, vv) nhưng Rails thường rõ ràng trong việc khuyến khích họ và không chỉ ngầm. Đối với bằng chứng của rằng bạn cần nhìn không xa hơn hỗ trợ được xây dựng của nó để phát triển thử nghiệm hướng.

+0

wow, cảm ơn bài đăng này. +1 –

+0

+1 - đó cũng là lý do cho tôi. –

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