Define "necessary." This does not need to be done in .NET or Java, it is convenient.
Rails applications often publish only a web application and related services in a single application.
Testing is similar; there is no need to break the functionality of the application to test the code separately, and testing in Rails is no different: there are unit tests, specifications, etc. that can work at any level of the code, and various mechanisms for extracting arbitrary parts of the functionality.
Retention levels are usually processed by the AR level, although in practice it is rather unusual to actually switch retention levels (I did this exactly once every thirty years of development, but this, of course, is anecdotal). In addition, some of these switches in Ruby are transparent at the code level due to duck text input (for example, I switched one application from the local database to the service almost transparently, switching to ActiveResource instead of ActiveRecord, although I did not try to optimize something later , and the data model was pretty simple.)
All this suggests that the IMO the Rails community often overlooks the practice of "corporate" stores, because the Ruby language simplifies assembly without the need for redesign. The limitations of this only become clear after applications have reached a certain size.
Recent trends in the development of Ruby and Rails include the things that I have been doing in the enterprise for many years (and it’s much easier to implement in Ruby than, say, Java). However, using functionality in libraries alone is not particularly useful. Identification of the code that needs to be broken, but this happens in different environments when necessary.
source share