Wir suchen nach einer sehr großen Schienenanwendung und erwägen den Einsatz von Motoren zur besseren Trennung von "Modulen" aus der Hauptanwendung heraus.Workflow für den Bau von Schienenmotoren als Edelsteine
Wir haben diesen Prozess gestartet, indem wir eine kleine Engine mit dem Edelstein-Motorhead (die Idee seiner active_if-Komponente wird gesucht) erstellt. Diese Engine wurde dann aus der Haupt-App entfernt und mit git init versehen und dann zu github geschoben.
die Haupt-App konnte dann den Edelstein innerhalb der Gemfile ziehen.
Während dieser Proof of Concept, es funktioniert, aber nicht sehr effizient, und auch die Aktualisierung der neuen Engine/Edelstein ist ein bisschen peinlich auf diese Weise, wie es ein Submodul in gewisser Weise ist. Was ist der richtige Arbeitsablauf für den Bau und die Wartung von Motoren/Edelsteinen beim Bau einer solchen modularen App?
Vielen Dank im Voraus
Sie können Ihre Motor-Edelsteine nehmen und sie in Ihre Haupt-Rails-App einbetten; zum Beispiel unter 'app/engines' oder' lib/engines'; Verwenden Sie dann Ihre Gemdatei, um den Edelstein direkt von diesem relativen Pfad zu laden (mit der Option 'path:'). Dies hält alles in einem Repository, aber logisch vollständig getrennt, und Sie haben die Möglichkeit, jede Engine auf Wunsch zu einem echten Juwel zu extrahieren. –
Danke Robert, und ja, wir haben beide Möglichkeiten ausprobiert. Die Hauptfrage ist, WENN wir sie komplett getrennte Edelsteine haben möchten, wie kann man sie am besten weiterentwickeln? d. h. sie haben derzeit keine gemfile usw. und können nicht alleine über den rail server gestartet werden. Auch wenn eine Änderung an dem Edelstein vorgenommen wird (erneut während der Entwicklung), muss die Haupt-App neu gestartet werden oder Edelsteinfeder – Rockman
Ihr Kommentar ist das Argument für Monolithen statt SOA. DHH's Position: https://m.signalvnoise.com/the-majestic-monolith-29166d022228 – toddmetheny