2009-08-25 44 views

Trả lời

12

có hai chống mẫu lớn tôi đã nhìn thấy ở rất nhiều mã Rails:

  1. rất nhiều "nâng hạng nặng" trong quan điểm. Bất cứ điều gì phức tạp hơn lặp đi lặp lại đơn giản trên các bộ sưu tập hoặc nội suy của các chuỗi phải ở trong các trình trợ giúp hoặc các phương thức mô hình. Không truy vấn đối tượng mô hình, tạo các mảng JSON lớn hoặc cập nhật các biến phiên từ các mẫu ERB của bạn.

  2. Đối tượng mô hình không thể sử dụng để thực thi tập lệnh hoặc API. Mô hình của bạn xác định ngữ nghĩa miền cho ứng dụng của bạn. Bạn có thể kích hoạt script/console hoặc viết các trình bao bọc API dịch vụ, sử dụng lại các phương thức mô hình chức năng hiện có để thao tác tất cả dữ liệu khóa trong ứng dụng của bạn. Chức năng điều khiển chỉ khả dụng trong chu trình yêu cầu/phản hồi HTTP, chỉ là một phần của vòng đời của trang web đầy đủ tính năng.

1

Súp bảng chữ cái?

(Không kiểu được khai báo và đặt tên biến vô nghĩa mà dẫn đến mã gần un có thể đọc được)

tên Pattern xuất phát từ biến tên là 'a', 'b', 'c', 'd', vv

+5

là này bằng cách nào đó RoR cụ thể? – SilentGhost

+0

Không ít nhất. Đó là điều tôi đã chú ý nhiều hơn trong Ruby so với các ngôn ngữ khác (và phần lớn những gì tôi thấy Ruby được sử dụng là RoR). –

+1

tất nhiên không có loại khai báo, nó là một ngôn ngữ năng động. và bất cứ ai sử dụng một chữ cái như một biến như bất cứ điều gì nhưng một iterator trong bất kỳ ngôn ngữ cần một cái gì đó khó ném vào họ –

14

Không tìm hiểu Ruby.

+0

Heh, tôi không thể tin rằng tôi có một upvote cho điều này :-) –

+0

Đó là một trả lời thông minh :) – lucapette

2

SỬ DỤNG VỚI trừ khác

antipattern:

unless is_the_weekend? 
    do stuff that you do during the week 
else 
    do stuff that you do on weekends 
end 

Alternative:

if is_the_weekend? 
    do stuff that you do on weekends 
else 
    do stuff that you do during the week 
end