
Isolating Rails Engines with RuboCop - evtothedev
https://flexport.engineering/isolating-rails-engines-with-rubocop-210feaba3164
======
choward
> However, the modularity they provide out of the box is mostly cosmetic

Isn't being cosmetic pretty much true with everything in Ruby/Rails? You can
override constants/classes, override method definitions (public/private),
access "private" variables, call "private" methods, etc. There are gems that
prevent these types of things, but then you're just fighting the language.

I feel like they are solving the standard problem that happens with Rails
apps. You use Rails so you can iterate quickly when you don't know exactly
what you're building. Eventually you reach the point where your code is hard
to reason about and maintain, but the core of you business logic is now more
understood. So then you want to start turning knobs to tighten up your code
and disallow the shortcuts that used to make you more productive but are now
slowing you down. Then you start adding more code that fights back against
Ruby/Rails and disallows you from doing things in your application code that's
making it hard to reason about.

