Tôi là một nhà phát triển ASP.NET MVC chỉ mới bắt đầu với dự án lớn đầu tiên của tôi trên đường ray tuy nhiên Im nhầm lẫn là nơi để đặt logic kinh doanh của bạn? trên ASP.NET tôi tạo một thư viện chứa các dịch vụ (Domain driven design) xử lý logic nghiệp vụ, tôi đã nghe nói rằng đường ray sử dụng một khái niệm về bộ điều khiển mô hình chất béo gầy nhưng tôi có một số dự án trong ASP.NET. điều khiển sẽ tạo ra một mớ hỗn độn lớn, có cách nào khác không?Logic kinh doanh ở đâu trong đường ray?
Trả lời
Đi với khái niệm về FatModels và SkinnyControllers. Mô hình của bạn nên biết cách họ cư xử và họ nên làm gì.
Khi mô hình của bạn quá béo, hãy giải nén chúng ra thành các mô-đun có giá trị lại và đưa chúng vào mô-đun của bạn.
- Example of taking a fat controller (with logic) and moving to a model
- Example of taking code from the views and moving into the model
Bạn có thể dễ dàng kiểm tra hành vi của các mô hình sử dụng RSpec (hoặc test/unit hoặc shoulda). Sau đó, bạn có thể kiểm tra xem ứng dụng có hoạt động chính xác bằng cách sử dụng Cucumber hay không.
Xin chào những người đọc tương lai! Điều trên có ý nghĩa, nhưng đúng hơn là giữ cho mô hình của bạn trở nên béo hơn, hãy xem http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/ –
I tìm https://github.com/orgsync/active_interaction rất hứa hẹn. –
Bạn có thể đặt logic nghiệp vụ ở bất cứ nơi nào bạn muốn (ngay cả trong chế độ xem! Mặc dù đó là ý tưởng tồi).
Tôi muốn nói nếu logic được gắn với một đối tượng trong thế giới thực, sau đó đặt nó trên mô hình. Nếu không, hãy sử dụng bộ điều khiển. Nhưng tùy thuộc vào bạn để xác định cách thực hiện nó cho ứng dụng của bạn. Mô hình là để mô hình hóa mọi thứ và Bộ điều khiển dành cho việc kiểm soát mọi thứ.
"Business Logic" hoặc một số có thể gọi là "Domain Logic" không thuộc bất kỳ đâu gần Rails và/hoặc dự án .NET MVC của bạn. Rails và MVC sẽ phụ thuộc vào tên miền của bạn không phải là cách khác. Tôi khuyên bạn nên đọc trên Kiến trúc Onion từ Jeffery Palermo hoặc xem "Kiến trúc những năm bị mất" của Robert Martin. (Tôi nghĩ rằng đó là nói chuyện anyway). Có lẽ có nhiều tài nguyên hơn thế, nhưng bạn sẽ cảm ơn bản thân sau này để xử lý cả Rails và .NET MVC như khuôn khổ của bên thứ 3 mà chúng là, và không phải là ngôi nhà chính của ứng dụng của bạn.
Tôi đã nhìn thấy cuộc nói chuyện và đã nghe ý tưởng này thể hiện nhiều lần, nhưng tôi chưa bao giờ thấy một ví dụ cụ thể hoặc trình diễn về cách đạt được điều này. như một người mới, nó có ý nghĩa về mặt nguyên tắc, nhưng tôi không thể thực sự khái niệm hóa cách đưa điều này vào thực hành. bạn có một ví dụ về một ứng dụng đường ray tuân theo thực hành này mà tôi có thể xem, hoặc một bài báo với một ví dụ cụ thể hơn không? –
Tôi nghĩ rằng bài viết trên blog này cung cấp một cái nhìn tổng quan tốt của một chiến lược kết hợp thiết kế miền driven với trong đường ray khung: http://www.smashingboxes.com/domain-logic-in-rails/
TL; DR
Refactor ray mô hình cổ điển của bạn vào kho, và sử dụng một lớp mặt tiền trong bộ điều khiển để tương tác với mô hình miền của bạn.
Tôi đang vật lộn với điều này một chút về bản thân, và nhiều như mô hình Bộ điều khiển chất béo dường như chiếm ưu thế, bất cứ thứ gì "béo" trong phần mềm có vẻ là một mùi, vi phạm trách nhiệm duy nhất.
- 1. Quy tắc kinh doanh ở đâu trong MVC
- 2. Các Lớp Logic Kinh doanh Đặt tên
- 3. Một từ khác cho Logic kinh doanh?
- 4. Logic kinh doanh và ứng dụng?
- 5. Multi Tenant Cấp chất lượng API cho các tổ chức kinh doanh và logic kinh doanh
- 6. Đường ray asset_host 3 ở đâu?
- 7. MVVM: ViewModel và Logic kinh doanh kết nối
- 8. nơi để mã logic kinh doanh trong nodejs với expressjs, mongoosejs và redis
- 9. Đường ray tuyến tính logic
- 10. Logic kinh doanh trong bộ xử lý Camel vs điểm cuối dịch vụ
- 11. Đường ray: Bạn đặt mã phi mô hình ở đâu?
- 12. ray cào các tuyến đường ở đâu họ từ
- 13. Logic kinh doanh có nên được đặt trong miền hoặc dịch vụ không?
- 14. Làm thế nào để viết logic kinh doanh tái sử dụng trong các mô hình MVC?
- 15. Xác nhận Logic Kinh doanh trong Asp.net MVC Sử dụng Ngoại lệ
- 16. Quy tắc kinh doanh động
- 17. Nơi đặt logic kinh doanh như vậy? Dịch vụ vs DAO?
- 18. Lớp logic kinh doanh có nên thực hiện ủy quyền và xác thực không?
- 19. Số tuần kinh doanh python
- 20. FOSUserBundle và ACL Vai trò kinh doanh
- 21. Quy tắc kinh doanh động trong ứng dụng web
- 22. Đối tượng kinh doanh Thiết kế DAL
- 23. Đường ray - Tôi nên tính các thuộc tính bắt nguồn ở đâu?
- 24. Xây dựng một ứng dụng kinh doanh cao với WPF?
- 25. Đường ray: Địa chỉ new_ * something * _path biến được thiết lập ở đâu?
- 26. # TODO trong đường ray
- 27. Đối tượng kinh doanh - Thùng chứa hoặc chức năng?
- 28. Đường ray: Sử dụng lớn hơn/ít hơn với tuyên bố ở đâu
- 29. Ghi chú phát hành hoặc thay đổi đường ray ở đâu
- 30. Tôi có thể tìm danh sách các phiên bản đường ray khác nhau ở đâu?
ý của bạn là "logic nghiệp vụ"? – sethvargo
bạn cũng có thể thử tạo mô-đun và đặt chúng vào thư mục lib của bạn – stephenmurdoch