2014-05-19 11 views
12

Một số Rails' bộ phận bắt đầu với "Active":Quy tắc đặt tên đằng sau các phần của Rails là gì?

  • ActiveRecord
  • ActiveModel
  • ActiveSupport

Và một số Rails' bộ phận bắt đầu với "Action":

  • ActionPack
  • ActionView
  • ActionMailer

Tại sao lại như vậy? Tại sao tất cả chúng không có cùng tiền tố? Và "Active" và "Action" có ý nghĩa gì trong bối cảnh này?

DHH hiện đang xây dựng "ActiveJob" và làm sao anh biết nếu nó không được coi là "ActionJob"?

+3

ActiveRecord được đặt tên sau khi Active Record mẫu (Martin Fowler PEAA), http: //en.wikipedia.org/wiki/Active_record_pattern –

+0

Vâng, đó là điều tôi biết. Nhưng những gì về những người khác? :) –

+1

Vâng, tôi cũng thế. Câu hỏi hay. :) –

Trả lời

15

Con đường tôi nhìn vào nó, một lần nữa đây chỉ là quan điểm của tôi (là người duy nhất có thể cung cấp một câu trả lời khẳng định là DHH :)),

Khi tôi nhìn thấy Action* như ActionPack (ActionViewActionController là hai thành phần chính của ActionPack) hoặc ActionMailer, chúng liên quan đến hành động được thực hiện trong ứng dụng Rails có thể là hành động cụ thể của bộ điều khiển hoặc hiển thị một chế độ xem cụ thể hoặc thậm chí gửi email. Vì vậy, Action có vẻ là tiền tố chính xác ở đây vì các gói này biểu thị việc gì đó.

Khi tôi nhìn thấy Active* như ActiveRecord, ActiveSupport hoặc ActiveModel vv, nó bằng cách nào đó liên quan đến cung cấp một số chức năng hữu ích cho logic kinh doanh Rails ứng dụng của bạn có thể là phương pháp hữu ích, kiểu hỗ trợ ORM loại thích add-ons để thuận lợi cho việc phát triển ứng dụng Rails .

Hy vọng sẽ thấy các câu trả lời thú vị hơn về câu hỏi này. Đây là nơi chúng tôi có thể bắt đầu phân tích.

+1

Đây là một câu trả lời thực sự tốt. Ví dụ: cả ActionPack và ActionMailer hoạt động trong "hành động" và chúng không thể sử dụng được, ví dụ: Nhiệm vụ Rake, nhưng các phần Active * là. –

+0

@ janko-m Tôi không biết, cuốn sách nào, bạn đang đọc cho Rails. Nhưng nếu bạn thực sự muốn hiểu, hãy thực hiện chuyến lưu diễn đầu tiên 2 chaps của * part-3 * của [book] này (http://pragprog.com/book/rails4/agile-web-development-with-rails-4) . Tôi có thể cấp cho bạn không cần phải nhìn lại. Nó giải thích tất cả.Những gì bạn muốn biết, có mặt trong cuốn sách. Câu trả lời này không giải thích được điều này và nó nằm ngoài phạm vi. –

+1

@ArupRakshit cuốn sách không nói bất cứ điều gì về lý do tại sao tiền tố Active */Action *. Đó là những gì OP muốn biết. Cuốn sách hoặc hướng dẫn Rails chính thức giải thích ActiveRecord hoặc ActionPack ... là nền tảng cơ bản của khung Rails. Tôi đồng ý với quan điểm của Kirti. – HackerKarma

0

ActiveRecord dựa trên mẫu phần mềm được Martin Fowler đặt tên là "Bản ghi hoạt động" (wiki).

Tôi biết điều đó không giải thích chính xác quy ước đặt tên, nhưng nó giải thích tên của nó đến từ đâu.

1

Action * là dành cho người dùng phải đối mặt với những thứ (lượt xem, điều khiển, bưu phẩm) và * là những thành phần phụ trợ tích cực hỗ trợ các hành động * linh kiện

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