Tôi biết câu hỏi tương tự đã được trả lời trước đây - chẳng hạn như:Đường ray: Bộ điều khiển Skinny so với Mô hình chất béo, hoặc tôi có nên làm cho Bộ điều khiển của tôi bị Anorexic không?
- đâu logic nên đi
- nơi để làm nhiệm vụ nhất định, vv
Nhưng tôi có một câu hỏi cụ thể hơn - Làm thế nào xa tôi nên dùng tiên đề này: giữ cho bộ điều khiển của bạn gầy, làm cho chất béo mô hình của bạn!
Dưới đây là một ví dụ:
Ví dụ giả sử tôi có nhiều nguồn dữ liệu xác minh. Một ví dụ tốt sẽ là số VIN - Tôi có thể xác minh nó, nguồn dữ liệu của nhà sản xuất, nguồn dữ liệu của DMV, cũng như cơ sở dữ liệu cục bộ của tôi - để xem những gì tôi có trong hồ sơ. Vì vậy, tôi có một mô hình được gọi là Vin và vins_controller. Bên trong mô hình tôi có 5 phương pháp:
- check_against_local_db
- check_against_dmv
- check_against_car_maker_1
- check_against_car_maker_2 vv
Trong điều khiển của tôi phù hợp với REST, trong chương trình hành động - Tôi có một câu lệnh case đơn giản xem xét các params [: source], và dựa trên nguồn được chỉ định - sẽ gọi phương thức kiểm tra cụ thể.
Bây giờ, đây là câu hỏi: Tôi có nên rời khỏi logic điều chỉnh nguồn dữ liệu để gọi trong bộ điều khiển hay tôi chuyển nó sang mô hình và sau đó trong bộ điều khiển chỉ cần thực hiện điều gì đó như check_vin (nguồn, vin)?
Tôi có nên làm cho bộ điều khiển của tôi gây độc không?
EDIT
Tôi đang chuyển đổi này để trả lời chính thức từ @ jay-Godse (cảm ơn bạn - vào thời điểm đó nó là một câu trả lời tốt). Mọi thứ đã thay đổi rất nhiều kể từ năm 2010 và câu hỏi này vẫn nhận được một số lượt xem - vì vậy hy vọng điều này sẽ hướng một số người đi đúng hướng và giúp họ tổ chức mã của họ đúng cách.
Trailblazer gem giải quyết các vấn đề nảy sinh trong câu hỏi thực sự tốt.
Tôi đang chuyển điều này thành câu trả lời chính thức. Mọi thứ đã thay đổi rất nhiều kể từ năm 2010 và câu hỏi này vẫn nhận được một số quan điểm - vì vậy hy vọng điều này sẽ chỉ ra một số người đi đúng hướng. Trailblazer giải quyết các vấn đề nảy sinh trong câu hỏi thực sự tốt. – konung