Wo kommt der business-Logik gehen in rails?
Ich bin ein ASP.NET MVC-Entwickler beginnen gerade mit meiner ersten großen Projekt auf Schienen Im jedoch verwirrt, da wo Sie Ihre business-Logik? auf ASP.NET ich erstelle eine Bibliothek, die Dienstleistungen(Domain driven design), die sich mit business-Logik, ich habe gehört, dass die Schienen verwendet ein Konzept der fat-Modell skinny controller, aber ich habe einige Projekte in ASP.NET die addition aller Logik auf den controller erstellen ein großes Durcheinander, gibt es eine andere Möglichkeit?
- was meinst du mit "business-Logik"?
- Sie können auch versuchen, erstellen von Modulen und setzen Sie in Ihrem lib-directory
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gehen mit dem Konzept der FatModels und SkinnyControllers. Ihre Modelle sollten wissen, wie Sie sich Verhalten und was Sie tun sollten.
Wenn Sie Ihre Modelle zu Fett, extrahieren Sie diese in re-verwendbar, Module und integrieren Sie Sie in Ihr Modul ein.
Können Sie ganz einfach testen Verhalten von Modellen unter Verwendung von RSpec (oder test - /Einheit oder shoulda). Dann können Sie testen, ob die Anwendung verhält sich korrekt mit Gurke.
"Business-Logik" oder manche nennen es "domänenlogik" der gehört nicht irgendwo in der Nähe von Schienen und/oder Ihren .NET-MVC-Projekt. Rails und MVC sollten, hängt von Ihrer Domain nicht die andere Weise herum. Ich würde empfehlen, das Lesen auf der Zwiebel Architektur von Jeffery Palermo oder watch "- Architektur, die Verlorenen Jahre" von Robert Martin. (Ich denke, das ist, dass reden sowieso). Es gibt wahrscheinlich mehr Ressourcen als das, aber du wirst danken Sie sich später für die Behandlung sowohl die Schienen und .NET MVC, wie der 3rd-party-frameworks, die Sie sind und nicht das Haupthaus der Anwendung.
Ich denke, dieser blog-Artikel bietet einen guten überblick über eine Strategie der Einbeziehung von domain-driven design mit in das rails-framework: http://www.smashingboxes.com/domain-logic-in-rails/
TL;DR
Umgestalten klassischen Schienen-Modellen in repositories, und verwenden Sie eine Fassade Schicht, in der die Controller für die Interaktion mit dem domänenmodell.
Ich bin mit diesen zu kämpfen, ein wenig meiner selbst, und so viel wie die Fat Controller-Muster zu herrschen scheint, alles, was "Fett" in der software zu sein scheint, ein Geruch, verletzen einzelne Verantwortung.
Können Sie setzen Sie business Logik, wohin Sie wollen (sogar in Aussicht! wenn das eine schlechte Idee).
Ich würde sagen, wenn die Logik ist geknüpft an ein real-Welt-Objekt, dann legen Sie es auf das Modell. Sonst, verwenden Sie den controller. Aber es ist bis zu Ihnen, um zu bestimmen, wie es zu tun für Ihre app. Modelle sind für die Modellierung Dinge, und die Controller sind für die Steuerung der Dinge.