Let's say you have a rails app and you want to build a separate admin app for it. There are at least two ways to go about this:
The Good
- It is relatively simple to set up. You split out all you AR models into a gem. Share the gem between the app and the admin app and voila.
The Bad
- this breaks encapsulation. Meaning, that unless you plan carefully, admin will now need to know about things about the model that it shouldn't have to know. And vice versa.
- because of the violation above, you'll also have to run CI against both apps when you update the shared gem
- migrations will also have to be run on both apps.
The Good
The Bad