Jestem programistą ASP.NET MVC, zaczynając od mojego pierwszego dużego projektu na szynach, ale czy jestem zdezorientowany, gdzie umieścić swoją logikę biznesową? na ASP.NET tworzę bibliotekę, która zawiera usługi (projektowanie oparte na domenie), które obsługują logikę biznesową, słyszałem, że szyny używają koncepcji chudego kontrolera modelu tłuszczu, ale mam kilka projektów w ASP.NET, które dodają całą logikę do kontroler spowodowałby wielki bałagan, czy jest jakiś inny sposób?Skąd logika biznesowa idzie w szynach?
Odpowiedz
Przejdź do koncepcji FatModels i SkinnyControllers. Twoje modele powinny wiedzieć, jak się zachowują i co powinny robić.
Gdy modele stają się zbyt grube, wyodrębnij je do modułów, które można ponownie wymieniać i dołącz je do modułu.
- 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
można łatwo przetestować zachowanie modeli wykorzystujących rspec (lub test/unit lub shoulda). Następnie możesz przetestować, czy aplikacja zachowuje się poprawnie przy użyciu ogórka.
Czytelnicy Hi Future! Powyższe ma sens, ale raczej, że nadal buduj swój model, sprawdź http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/ –
I znaleźć bardzo obiecujący https://github.com/orgsync/active_interaction. –
Możesz umieścić logikę biznesową w dowolnym miejscu (nawet w widokach !, ale to zły pomysł).
Powiedziałbym, że jeśli logika jest powiązana z obiektem świata rzeczywistego, to umieść go na modelu. W przeciwnym razie użyj kontrolera. Ale od Ciebie zależy, jak to zrobić w swojej aplikacji. Modele służą do modelowania rzeczy, a kontrolery do kontrolowania rzeczy.
"Business Logic" lub niektórzy mogą to nazwać "Domain Logic" nie należy nigdzie w pobliżu Rails i/lub twojego projektu .NET MVC. Railsy i MVC powinny zależeć od twojej domeny, a nie odwrotnie. Polecam lekturę "Onion Architecture" autorstwa Jeffery Palermo lub obejrzenie "Architecture the Lost Years" Roberta Martina. (Myślę, że to i tak rozmowa). Prawdopodobnie istnieje więcej zasobów niż to, ale później podziękujesz sobie, że traktujesz zarówno Railsy, jak i .NET MVC, takie jak struktury stron trzecich, a nie główny dom twojej aplikacji.
Widziałem tę rozmowę i wielokrotnie słyszałem ten pomysł, ale nigdy nie widziałem konkretnego przykładu lub demonstracji, jak to osiągnąć. jako nowicjusz ma z zasady sens, ale nie potrafię sobie wyobrazić, jak to urzeczywistnić. czy masz przykład aplikacji szyny, która podąża za tą praktyką, na którą mógłbym spojrzeć, lub artykułu z bardziej konkretnym przykładem? –
Myślę, że ten artykuł napisany zapewnia dobry przegląd strategii włączania domeny Driven Design ze w ramach poręcze: http://www.smashingboxes.com/domain-logic-in-rails/
TL; DR
byłaby swoich klasycznych modeli szyn w repozytoriach, i używać warstwa elewacji w kontrolerach do interakcji z Twoim modelem domeny.
Sam się z tym zmagam i wydaje mi się, że wszystko, co jest "grube" w oprogramowaniu, wydaje się zapachem, naruszającym jedną odpowiedzialność.
- 1. Złożona logika biznesowa w repozytorium
- 2. Czy cała logika biznesowa powinna być w modelach domenowych czy?
- 3. Aplikacje WCF/Client - gdzie powinna iść logika biznesowa?
- 4. logika ruby na szynach dla częściowego w układzie
- 5. Czy moja logika biznesowa powinna znajdować się we fragmencie lub w powyższej czynności?
- 6. Skąd bierze się logika nawigacji, View, ViewModel lub gdziekolwiek indziej?
- 7. Gdzie powinna być umieszczona logika biznesowa podczas używania Doctrine 2 i Zend Framework
- 8. Obsługa wyjątków w PHP: gdzie idzie $ e?
- 9. Reguła biznesowa i zarządzanie procesami?
- 10. odejmowanie tęskni idzie źle
- 11. modele django = logika biznesowa + dostęp do danych? Lub warstwę dostępu do danych należy oddzielić od modelu django?
- 12. Logika warunkowa w sterowaniu repeterem?
- 13. Logika gry Libgdx w Renderowanie?
- 14. Logika podzielonego łańcucha w J2ME
- 15. Logika rozgałęziania w widoku MVC
- 16. Powtarzające ustawiaczy logika w Delphi
- 17. Logika warunkowa w ASP.net strona
- 18. logika logiczna w szablonie kierownicy
- 19. Vim idzie walnięcie z tmux
- 20. LISTEN/NOTIFY pgconnection idzie w dół java?
- 21. Logika po stronie klienta LUB logika po stronie serwera?
- 22. Logika programowania obiektowego
- 23. Zaawansowana logika szablonowa Django
- 24. Logika operatorzy zamknięciem Szablony
- 25. Cztery z rzędu logika
- 26. Logika rozmyta pasująca do
- 27. Logika za złożonymi liniami
- 28. logika zatrzymania zegarka
- 29. Logika wewnątrz BuilderPattern
- 30. Biznes klasa logika
co masz na myśli przez "logikę biznesową"? – sethvargo
możesz także spróbować tworzyć moduły i umieszczać je w swoim katalogu lib – stephenmurdoch