Mein Team hat eine Reihe von Modulen in einer monolithischen Rails-App für den internen Gebrauch entwickelt. Die Module sind zum Beispiel Urlaubsantrag, Mitarbeiterinformationen, Aufgaben / Aufgaben usw. Jedes Modul hat seinen eigenen Zweck, ist aber irgendwie mit allgemeinen Informationen wie Mitarbeiterprofil und Benutzerauthentifizierung verknüpft. Jedem Modul ist ein Entwickler zugewiesen, und sie stellen Code für die gleiche Rails-App fest. Derzeit ist es sehr schwierig, den Code und die Skalierung zu verwalten. Jetzt forsche ich daran, die App in kleine verteilte Apps zu zerlegen und sie zu einem Ökosystem zu machen. Hier ist das Konzept, nach dem ich suche:
Ich lese Service-Oriented Design mit Ruby on Rails Buch, aber es scheint, als ob sie sich darauf konzentrieren, eine App in kleine verschiedene Dienste zu zerlegen, während ich kleine verschiedene Apps haben möchte. Ich frage mich nur, ob es noch andere Möglichkeiten gibt.
Entschuldige eine lange Frage und bitte zu viel. Ich möchte nur wissen, ob du in der gleichen Situation warst und mich zu einigen Artikeln, Gemeinschaften und Büchern führen kannst, damit ich weiter an meiner Forschung arbeiten kann.
Ah die Freuden des Refactorings. Es kann ein schwieriger Tanz sein, eine Anwendung in logische Gruppen zu strukturieren, so dass Teile entkoppelt werden können.
Ich würde dringend vorschlagen, Engines mit dem Engines vs Mountable ist sehr informativ. Auf diese Weise können Sie eine Mini-Rails-App (auch als Engine bezeichnet) erstellen, die als Schmuckstück verpackt werden kann. Die benutzerdefinierten Engine-Edelsteine werden in einer Rails-App gebündelt und bieten eine vollständige Reihe konfigurierbarer Funktionen (Modelle, Controller, Ansichten usw.).
Die Nützlichkeit von serviceorientierter Architektur hängt stark davon ab, welche Art von Daten Sie herumschieben und ziehen. Das heißt, Rails ist wirklich für RESTful verdrahtet, so dass Sie mit dieser Route viel Geld für das Geld bekommen.
Tags und Links ruby-on-rails ruby-on-rails-3.1 soa